PageSourceSearch

https://qality.dev/docs/assets/js/561cfbf1.3d06f646.js

js qality.dev collected 2026-10-02 01:02:40 UTC 13,898 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkqality_docs=self.webpackChunkqality_docs||[]).push([[8545],{5120(e,r,i){i.r(r),i.d(r,{FlowStep:()=>c,InfoRow:()=>m,assets:()=>l,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"ai-features/case-variations","title":"Case Variations","description":"How Case Variations turn one recorded test case into multiple positive, negative, and boundary data scenarios with AI.","source":"@site/docs/ai-features/case-variations.mdx","sourceDirName":"ai-features","slug":"/ai-features/case-variations","permalink":"/docs/ai-features/case-variations","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"id":"case-variations","title":"Case Variations","description":"How Case Variations turn one recorded test case into multiple positive, negative, and boundary data scenarios with AI.","sidebar_position":2},"sidebar":"docs","previous":{"title":"AI Step Generation","permalink":"/docs/ai-features/ai-step-generation"},"next":{"title":"Auto-Heal","permalink":"/docs/ai-features/auto-heal"}}');var a=i(4848),n=i(8453),s=i(6449);const o={id:"case-variations",title:"Case Variations",description:"How Case Variations turn one recorded test case into multiple positive, negative, and boundary data scenarios with AI.",sidebar_position:2},d=void 0,l={},c=({num:e,title:r,children:i,last:t})=>(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2rem minmax(0, 1fr)",columnGap:"0.85rem",alignItems:"stretch"},children:[(0,a.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",alignSelf:"stretch"},children:[(0,a.jsx)("div",{style:{width:28,height:28,borderRadius:"50%",background:"#EBF0FA",border:"1px solid #C7D5EE",color:"#162d5d",fontWeight:"700",fontSize:"0.8rem",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,zIndex:1},children:e}),!t&&(0,a.jsx)("div",{style:{width:2,flexGrow:1,background:"#C7D5EE",marginTop:6,minHeight:20}})]}),(0,a.jsxs)("div",{style:{paddingBottom:t?0:"1.05rem"},children:[(0,a.jsx)("div",{style:{fontWeight:"700",color:"#162d5d",fontSize:"0.9rem",marginBottom:"0.2rem"},children:r}),(0,a.jsx)("div",{style:{color:"#4b5563",fontSize:"0.86rem",lineHeight:"1.55"},children:i})]})]}),m=({name:e,children:r,last:i})=>(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"8.5rem minmax(0, 1fr)",columnGap:"1rem",padding:"0.55rem 0",borderBottom:i?"none":"1px solid #eef2f7",alignItems:"start",fontSize:"0.88rem",lineHeight:"1.55"},children:[(0,a.jsx)("div",{style:{fontWeight:"600",color:"#162d5d"},children:e}),(0,a.jsx)("div",{style:{color:"#4b5563"},children:r})]}),p=[{value:"How it works",id:"how-it-works",level:2},{value:"What you get",id:"what-you-get",level:2},{value:"How to use Case Variations",id:"how-to-use-case-variations",level:2},{value:"Related",id:"related",level:2}];function h(e){const r={a:"a",admonition:"admonition",h2:"h2",p:"p",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.p,{children:"Case Variations let you record a flow once and let AI create multiple data scenarios for the same steps - valid logins, empty fields, invalid formats, boundary values, and more. You keep one case structure and cover many datasets instead of duplicating whole tests."}),"\n",(0,a.jsx)(r.admonition,{title:"AI requests",type:"info",children:(0,a.jsxs)(r.p,{children:["Generating case variations counts toward your plan\u2019s ",(0,a.jsx)(r.strong,{children:"shared AI request"})," quota (same pool as Auto-Heal, AI Step Generation, and API prompts). Discover 50 / Pro 500 / Business 1000 per billing cycle. See ",(0,a.jsx)(r.a,{href:"/docs/subscription/pro",children:"Pro plan"}),"."]})}),"\n",(0,a.jsxs)(r.p,{children:["New to recording? Start with ",(0,a.jsx)(r.a,{href:"/docs/recorder/",children:"Recorder"})," and ",(0,a.jsx)(r.a,{href:"/docs/getting-started/your-first-test",children:"Your first test"}),"."]}),"\n",(0,a.jsx)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem",margin:"0.85rem 0 1rem"},children:[["1","Record"],["2","Generate"],["3","Review"],["4","Execute"]].map(([e,r],i,t)=>(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.35rem"},children:[(0,a.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.4rem",padding:"0.4rem 0.7rem",borderRadius:"999px",background:"#EBF0FA",border:"1px solid #C7D5EE",color:"#162d5d",fontSize:"0.8rem",fontWeight:"700"},children:[(0,a.jsx)("span",{style:{width:18,height:18,borderRadius:"50%",background:"#ffffff",border:"1px solid #C7D5EE",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:"0.68rem"},children:e}),r]}),i<t.length-1&&(0,a.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.9rem",padding:"0 0.1rem"},"aria-hidden":"true",children:"\u2192"})]},r))}),"\n",(0,a.jsx)(r.h2,{id:"how-it-works",children:"How it works"}),"\n",(0,a.jsx)(r.p,{children:"Follow this flow: record a base case once, let AI generate datasets, then review and execute the variations."}),"\n",(0,a.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.4rem",margin:"0.75rem 0 0.85rem",fontSize:"0.78rem",fontWeight:"700",color:"#162d5d"},children:[(0,a.jsx)("span",{style:{padding:"0.3rem 0.55rem",borderRadius:8,background:"#EBF0FA",border:"1px solid #C7D5EE"},children:"Recorded case"}),(0,a.jsx)("span",{style:{color:"#94a3b8"},children:"\u2192"}),(0,a.jsx)("span",{style:{padding:"0.3rem 0.55rem",borderRadius:8,background:"#EBF0FA",border:"1px solid #C7D5EE"},children:"AI datasets"}),(0,a.jsx)("span",{style:{color:"#94a3b8"},children:"\u2192"}),(0,a.jsx)("span",{style:{padding:"0.3rem 0.55rem",borderRadius:8,background:"#EBF0FA",border:"1px solid #C7D5EE"},children:"Many runs"})]}),"\n",(0,a.jsx)("div",{style:{margin:"1rem 0 1.35rem",border:"1px solid #d8dee9",borderRadius:"14px",background:"#f8fafc",padding:"1.1rem"},children:(0,a.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(160px, 1fr))",gap:"0.75rem"},children:[(0,a.jsxs)("div",{style:{background:"#ffffff",border:"1px solid #C7D5EE",borderRadius:"12px",overflow:"hidden",boxShadow:"0 4px 14px rgba(22, 45, 93, 0.06)"},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.4rem",padding:"0.55rem 0.7rem",background:"#F5F8FC",borderBottom:"1px solid #E5EBF5"},children:[(0,a.jsx)("span",{style:{flex:1,fontWeight:"700",color:"#162d5d",fontSize:"0.72rem",lineHeight:1.3},children:(0,a.jsx)(r.p,{children:"Login Form Validation"})}),(0,a.jsx)("span",{style:{padding:"0.2rem 0.45rem",borderRadius:5,fontSize:"0.65rem",fontWeight:"700",background:"linear-gradient(90deg, #2563eb, #1e3a6e)",color:"#ffffff"},children:"\u2726 AI"})]}),(0,a.jsx)("ol",{style:{listStyle:"none",margin:0,padding:"0.65rem 0.75rem"},children:["Navigate to login page","Enter admin in username","Enter admin123 in password","Click login"].map((e,r)=>(0,a.jsxs)("li",{style:{fontSize:"0.72rem",color:"#334155",padding:"0.28rem 0",lineHeight:1.35},children:[(0,a.jsxs)("strong",{style:{color:"#2563eb"},children:[r+1,"."]})," ",e]},e))}),(0,a.jsx)("div",{style:{margin:"0 0.65rem 0.65rem",padding:"0.35rem 0.5rem",borderRadius:8,background:"#EBF0FA",color:"#1e3a6e",fontSize:"0.7rem",fontWeight:"600",textAlign:"center"},children:(0,a.jsx)(r.p,{children:"Recorded once"})})]}),(0,a.jsxs)("div",{style:{background:"#ffffff",border:"1px solid #C7D5EE",borderRadius:"12px",padding:"0.85rem 0.9rem",boxShadow:"0 4px 14px rgba(22, 45, 93, 0.06)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"0.55rem",textAlign:"center"}
1,children:[(0,a.jsx)("div",{style:{width:42,height:42,borderRadius:10,background:"linear-gradient(135deg, #2563eb, #1e3a6e)",color:"#ffffff",fontWeight:"800",fontSize:"0.75rem",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 0 0 4px rgba(37, 99, 235, 0.12)"},children:"AI"}),(0,a.jsx)("div",{style:{fontWeight:"700",color:"#162d5d",fontSize:"0.82rem"},children:"Generating variations\u2026"}),(0,a.jsx)("div",{style:{color:"#64748b",fontSize:"0.72rem",lineHeight:1.4},children:(0,a.jsx)(r.p,{children:"Positive, negative, and boundary datasets from your recorded steps"})})]}),(0,a.jsxs)("div",{style:{background:"#ffffff",border:"1px solid #C7D5EE",borderRadius:"12px",overflow:"hidden",boxShadow:"0 4px 14px rgba(22, 45, 93, 0.06)"},children:[(0,a.jsx)("div",{style:{padding:"0.55rem 0.75rem",background:"#EBF0FA",borderBottom:"1px solid #C7D5EE",fontWeight:"700",color:"#162d5d",fontSize:"0.78rem"},children:(0,a.jsx)(r.p,{children:"5 data variations"})}),(0,a.jsx)("ul",{style:{listStyle:"none",margin:0,padding:"0.45rem 0.65rem 0.55rem"},children:[["Valid Login","admin / admin123","Positive","#dcfce7","#166534"],["Empty Fields","(empty) / (empty)","Negative","#fee2e2","#991b1b"],["Invalid Format","John123 / 123-456","Negative","#fee2e2","#991b1b"],["Boundary Values","Very long values","Negative","#fee2e2","#991b1b"],["Special Characters","!@#$ / ***","Negative","#fee2e2","#991b1b"]].map(([e,r,i,t,n])=>(0,a.jsxs)("li",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) auto",gap:"0.35rem",alignItems:"center",padding:"0.4rem 0.2rem",borderBottom:"1px solid #f1f5f9",fontSize:"0.72rem"},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontWeight:"700",color:"#0f172a"},children:e}),(0,a.jsx)("div",{style:{color:"#64748b"},children:r})]}),(0,a.jsx)("span",{style:{padding:"0.15rem 0.4rem",borderRadius:999,background:t,color:n,fontWeight:"700",fontSize:"0.62rem"},children:i})]},e))})]})]})}),"\n",(0,a.jsx)(r.h2,{id:"what-you-get",children:"What you get"}),"\n",(0,a.jsxs)("div",{style:{margin:"0.75rem 0 1.25rem",border:"1px solid #d8dee9",borderRadius:"12px",background:"#ffffff",boxShadow:"0 6px 18px rgba(15, 23, 42, 0.05)",padding:"0.35rem 1.1rem 0.45rem"},children:[(0,a.jsx)(m,{name:"AI datasets",children:"Generated data variations from your recorded case - no manual row-by-row entry."}),(0,a.jsx)(m,{name:"Positive cases",children:"Happy-path scenarios with valid inputs that should succeed."}),(0,a.jsx)(m,{name:"Negative cases",children:"Empty fields, invalid formats, special characters, and similar failure paths."}),(0,a.jsx)(m,{name:"Boundary values",children:"Edge cases such as very long usernames or passwords."}),(0,a.jsx)(m,{name:"Same steps",children:"One step structure, many datasets - no duplicated test cases."}),(0,a.jsx)(m,{name:"Many runs",last:!0,children:"Execute the variations to cover more scenarios from a single recording."})]}),"\n",(0,a.jsx)(r.h2,{id:"how-to-use-case-variations",children:"How to use Case Variations"}),"\n",(0,a.jsx)(r.p,{children:"Use this path end to end after you have a recorded base case:"}),"\n",(0,a.jsxs)("div",{style:{margin:"0.75rem 0 1.25rem",border:"1px solid #d8dee9",borderRadius:"12px",background:"#ffffff",boxShadow:"0 6px 18px rgba(15, 23, 42, 0.05)",padding:"1rem 1.1rem 0.85rem"},children:[(0,a.jsx)(c,{num:"1",title:"Record a solid base case",children:(0,a.jsx)(r.p,{children:"Create or open a test case and record the main flow once - for example a login with valid credentials."})}),(0,a.jsx)(c,{num:"2",title:"Open AI Case Variations",children:(0,a.jsx)(r.p,{children:"In the test case, use the AI action to generate case variations from the recorded steps."})}),(0,a.jsx)(c,{num:"3",title:"Wait while AI builds datasets",children:(0,a.jsx)(r.p,{children:"QAlity analyzes the steps and creates multiple data variations. You may see a short Generating variations\u2026 state."})}),(0,a.jsx)(c,{num:"4",title:"Review each variation",children:(0,a.jsx)(r.p,{children:"Check names, sample data, and Positive / Negative tags. Keep what you need and discard or adju
1st what you do not."})}),(0,a.jsx)(c,{num:"5",title:"Run the variations",last:!0,children:(0,a.jsx)(r.p,{children:"Execute the variations to cover many datasets with the same underlying steps - record once, execute many."})})]}),"\n",(0,a.jsx)(r.admonition,{title:"Best use",type:"tip",children:(0,a.jsx)(r.p,{children:"Case Variations shine for forms and validation flows where you need many input combinations. For a one-off happy path, a single recorded case is usually enough."})}),"\n",(0,a.jsx)(r.h2,{id:"related",children:"Related"}),"\n",(0,a.jsxs)(s.A,{children:[(0,a.jsx)(s.H,{title:"AI Step Generation",description:"Generate steps for fields while recording.",to:"/ai-features/ai-step-generation"}),(0,a.jsx)(s.H,{title:"Auto-Heal",description:"Recover when locators change during a run.",to:"/ai-features/auto-heal"}),(0,a.jsx)(s.H,{title:"Data Profile",description:"Run many datasets from one case.",to:"/environments/data-profile"}),(0,a.jsx)(s.H,{title:"Recorder",description:"Capture the base flow first.",to:"/recorder/"})]})]})}function u(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},6449(e,r,i){i.d(r,{H:()=>m,A:()=>p});i(6540);var t=i(8774);const a="grid_bLty",n="link_ETl8",s="body_yRYu",o="title_MgBt",d="description_kZvJ",l="arrow_hECB";var c=i(4848);function m(e){var r=e.title,i=e.description,a=e.to;return(0,c.jsxs)(t.A,{to:a,className:n,children:[(0,c.jsxs)("div",{className:s,children:[(0,c.jsx)("div",{className:o,children:r}),i?(0,c.jsx)("div",{className:d,children:i}):null]}),(0,c.jsx)("span",{className:l,"aria-hidden":"true",children:"\u2192"})]})}function p(e){var r=e.children;return(0,c.jsx)("div",{className:a,children:r})}},8453(e,r,i){i.d(r,{R:()=>s,x:()=>o});var t=i(6540);const a={},n=t.createContext(a);function s(e){const r=t.useContext(n);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(n.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.