Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Capocci, CQA, CSTE 1 Test Requirements: The Basis of Testing David Capocci, CQA, CSTE Sr. QA Systems Analyst SAFECO Corporation

Similar presentations


Presentation on theme: "David Capocci, CQA, CSTE 1 Test Requirements: The Basis of Testing David Capocci, CQA, CSTE Sr. QA Systems Analyst SAFECO Corporation"— Presentation transcript:

1 David Capocci, CQA, CSTE 1 Test Requirements: The Basis of Testing David Capocci, CQA, CSTE Sr. QA Systems Analyst SAFECO Corporation

2 David Capocci, CQA, CSTE 2 Agenda Defining Test Requirements (TR) –What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

3 David Capocci, CQA, CSTE 3 Background Test Requirements Hierarchy is a term coined from Rationals SQA Team Test software. The principle of identifying, organizing, and measuring test requirements is universal to many test processes and methodologies Much of this in-service is distilled from: Rational methodologies (we are an SQA Team Test house after all) QAI Workbench model Seminar topics from –19th annual International Software Testing Conference –Star 98 West Conference Ed Kits Software Testing in the Real World

4 David Capocci, CQA, CSTE 4 Test Requirements What exactly is a Test Requirement? Why identify Test Requirements? Where does a Test Requirement come from? Defining TRs: What, Why, Where

5 David Capocci, CQA, CSTE 5 What exactly is a Test Requirement? Identifies the WHAT of testing What needs to be tested, AND What are you going to validate about it Includes both normal and error conditions Covers business rules, functionality, non- functional standards Do NOT have case specific data values assigned to them yet (data appears in test cases, the How of testing) examples… Defining TRs: What, Why, Where

6 David Capocci, CQA, CSTE 6 Example 1: Testing the inserting of a record to a table Validate that you can insert an entry Validate that insertion fails if entry already present Validate that insertion fails if table already full Validate that you can insert an entry to an empty table (initial) These are test requirements NOT tests because they do not describe the data element being inserted The data is irrelevant at this level, it will appear in the test cases used to cover these test requirements Validate you can insert John Doe is a test case not a test requirement Test Requirements Identified (among others): Defining TRs: What, Why, Where

7 David Capocci, CQA, CSTE 7 Why identify Test Requirements? Its what QC owns in our workbench: Requirements-based or Function-based testing Its the basis for establishing the completion of testing Helps determine the scale of the testing effort Governs the types of resources you will need Serves to identify automation strategies you can use Becomes a roadmap for your testing effort Can be a tool for leverage and dialog with developers and business analysts Dev Team can sign off on them (Verification!) Defining TRs: What, Why, Where

8 David Capocci, CQA, CSTE 8 Where does a TR come from? Traditional: Business Requirements, functionality, internal logic… Marketing specs, Functional specs, Technical specs Reality: Interview Analysis, Non-Functional Checklists (standards & compliance), Use Cases (from business scenarios and users), Discovery during testing, any other deliverables from previous workbenches (diagrams, modeling, flowcharts, etc.) Defining TRs: What, Why, Where

9 David Capocci, CQA, CSTE 9 How do Test Requirements relate to the Test Plan? Traditionally, the Test Plan has represented what was going to be tested, even including test cases. Paradigm is shifting: Test Plan should relate what your testing process (and deliverables) will be for a particular project. A Test Plan should build confidence in the testing process for a project, making approaches clear. A Test Plan can include the Test Requirements However, if the Test Requirements are too lengthy, they should become their own document: A Test Requirements Hierarchy Defining TRs: What, Why, Where

10 David Capocci, CQA, CSTE 10 Agenda Defining TRs: What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

11 David Capocci, CQA, CSTE 11 Drilling down: Where test requirements fit into the picture Business Requirement Test Requirement Test Scenarios/ Cases Test Procedure/ Script Fitting TRs into the testing picture Generates 1 M 1 M Executes/Runs 1 M

12 David Capocci, CQA, CSTE 12 Drilling Down Business Requirement Test Requirement Test Scenarios/ Cases Test Procedure/ Script Fitting TRs into the testing picture First, Lets look at this relationship: Whats within our testing process Then well look at this relationship: Gernerating TRs from what feeds into our testing process

13 David Capocci, CQA, CSTE 13 ATM Example: Practice Writing Test Requirements Business Requirements: - ATM must do withdrawals - Withdrawals are between $20-$300 - Withdrawals are in $20 multiples Group Exercise! 1. Limit the scope to these 3 requirements. 2. What will you validate (test for)? 3. Are there any implied requirements that may not be written out? Whats within our testing process

14 David Capocci, CQA, CSTE 14 Example 2: Testing Withdrawals on an ATM Validate that a withdrawal option is available "Validate that a withdrawal of a multiple of $20, between $20-$300 can be done" "Validate that <$20 is not allowed" "Validate that >$300 is not allowed" "Validate that $20 multiples >$300 is not allowed" "Validate that non-$20 multiples between $20-$300 not allowed" "Validate strange numeric amounts/combinations not allowed (all zero's, all 9's, )" Validate that the withdrawal received is equal to the amount requested "Validate that a valid withdrawal amount must be below the account balance These are test requirements NOT tests because they do not describe the data element being used (like $20, $40, $60, $1) The data is irrelevant at this level, it will appear in the test cases used to cover these test requirements Test Requirements Identified (among others): Whats within our testing process

15 David Capocci, CQA, CSTE 15 Test Scenarios/Cases for - Validate that a withdrawal of a multiple of $20, between $20-$300 can be done Whats within our testing process

16 David Capocci, CQA, CSTE 16 Test Procedure & Script for previous example Step 1: Insert Card Step 2: Enter PIN Step 3: Select Withdraw option Step 4: Enter dollar amount Step 5: Validate amount received Do until EOF until end of data file Input data record Senddata CARDINFO to Cardfield Senddata Enter Senddata PIN to PINFfield Senddata Enter Senddata W to SelectionField Senddata AMOUNT to DollarField Senddata Enter If ErrorMsg > 0 then print ErrorMsg Print DollarAMTgiven Loop Procedure:Script: (in pseudo-code ) Whats within our testing process Think Manual ! Think Automated !

17 David Capocci, CQA, CSTE 17 Agenda Defining TRs: What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

18 David Capocci, CQA, CSTE 18 The Workbench Concept DO Check Standards Tools Rework Entrance Criteria Exit Criteria Product Input Product Output Generating TRs Our workbench is called Generating Test Requirements

19 David Capocci, CQA, CSTE 19 Entrance Criteria for Business Requirements to generate Test Requirements Visible ? Clear? (unambiguous) Complete? Consistent? (conflicting requirements must be prioritized) Reasonable? (achievable) Measurable? (quantifiable) Modifiable? (will it change or is it stable?) Traceable? (the source is known) Dependent requirements identified? Testable? (given current environment, resources, skills) Generating TRs

20 David Capocci, CQA, CSTE 20 Exit Criteria for Test Requirements Can another tester create test cases/scenarios from these? Does a Test Requirement specify what is being tested and what about it we are validating? (Clear?) Are the Test Requirements… -Complete? -Consistent? (conflicting requirements must be prioritized) -Reasonable? (achievable) -Measurable? (quantifiable for measuring test coverage) -Modifiable? (will it change or is it stable?) -Traceable? (the source is known) -Testable? (given current environment, resources, skills) Do the test requirements cover the complete scope of the project? Are all the test requirements verified and signed off by the Development Team? Generating TRs

21 David Capocci, CQA, CSTE 21 When creating Test Requirements (Do)... Use action verbs & words -Validate that… -Check for… -Test that… Trace them back to the source Remember that different applications arrange in different ways -Think of MF, batch, C/S, web, e-commerce, GUI, etc. -Use testing considerations checklists that generally cover what kinds of things should be considered when testing your specific situation Make your Test Requirements document a living document Generating TRs

22 David Capocci, CQA, CSTE 22 Also... Maintain a level of balance between too much & too little -Too High level: wont be useful, vague, cant generate test cases from it. -Too low level: Over-process, over documentation, no productivity -General rule: 5-7 levels deep in an outline format Organize them! -Outline/Hierarchy format recommended -Look at how the BA breaks down the project into areas -Look at how the PA breaks down the project into areas -Organize by functional areas -Organize by types of testing (Function vs. System vs. Non- Functional) Generating TRs

23 David Capocci, CQA, CSTE 23 Agenda Defining TRs: What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

24 David Capocci, CQA, CSTE 24 Distinguishing the types of testing…. I. Function-Based Tests II. User Interface Tests III. Security Tests IV. Installation Tests V. Configuration Tests VI. Performance Tests (Response) VII. Load Tests (simultaneous users, lots of small transactions) VIII. Volume Tests (Big transactions) IX. Stress Tests (breaking point: memory, resources) X. Resource Usage Tests XI. Documentation Tests XII. Compatibility Tests XIII. Recovery Tests XIV. Serviceability Tests and others… *III - XIV are all Systems- based tests Organizing TRs

25 David Capocci, CQA, CSTE 25 Organizing by Functional areas…. Most testers perform function-based, or requirements-based tests -Tests on functionality that the system will provide -Usually scenario/case based -includes normal and alternate (invalid) cases Organizing TRs

26 David Capocci, CQA, CSTE 26 Organizing by Functional areas…. Most testers also perform User Interface Style Tests -These are generally separate from the functionality that the software will provide -Usually encompass the architectural standards & compliance (like Windows Design Standards) -Also includes tests of navigation, menus, admin functions (like printing, saving) Organizing TRs

27 David Capocci, CQA, CSTE 27 Agenda Defining TRs: What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

28 David Capocci, CQA, CSTE 28 Remember this?…Drilling down Fitting TRs into the testing picture

29 David Capocci, CQA, CSTE 29 Decomposing: Drilling down within a Test Requirement Business Requirement Test Requirement Test Scenarios/ Cases Test Procedure/ Script Fitting TRs into the testing picture Keep the function-based perspective in mind! Business Function Tasks within the Function Data Entry Types for transactions Transactions to perform a task Field Validation

30 David Capocci, CQA, CSTE 30 Test Requirement Decomposition Decomposing TRs

31 David Capocci, CQA, CSTE 31 Test Requirement Decomposition Business Function Tasks within the Function Data Entry Types for transactions Transactions to perform a task Field Validation High level Functional Areas: usually from Functional Spec type docs, or BA work Lower level Functional Areas: usually from Technical Spec type docs regarding internal logic, or PA work Decomposing TRs

32 David Capocci, CQA, CSTE 32 Test Requirement Decomposition You can start on the high level functional areas early into the project & build in lower level areas as they become available Any level can contain a test requirement which can also be made up of (or broken down into) lower level test requirements Decomposing TRs

33 David Capocci, CQA, CSTE 33 Business Function Level Try to identify groups of functions or functions connected by similar themes file management functions, printing functions, help functions, car rental functions, reservation functions, ticket purchase functions, claim reporting functions Be sure all areas of the system are covered. If something is left out or doesnt fit into a group, it becomes its own group. It may be easier to identify functional areas by window instead of by function. Decomposing TRs Function TaskTransaction Trans Data Type Field Validation

34 David Capocci, CQA, CSTE 34 Business Function Level At this level, the idea is seeing the connections, integration, and interactions of the systems functionality. May not necessarily be identifying a test requirement at this level as much as just identifying the functional area. Decomposing TRs Function TaskTransaction Trans Data Type Field Validation

35 David Capocci, CQA, CSTE 35 Task Level Break down each Function area into the tasks within the function For complex tasks, it is possible to break them down further into sub-tasks Some Business Functions can not decompose into further tasks (example: Check Writing function) Decomposing TRs Function Task Transaction Trans Data Type Field Validation

36 David Capocci, CQA, CSTE 36 Transaction Level From this level down, we start to address the internal things that occur to make the functions and tasks happen Identify any logical transactions that ties the task to the database or any other transactions necessary to perform the task. Identify any data processing, calculation, data formatting type transactions Note: A screen or window may cause the execution of several different logical transactions Decomposing TRs Function Task Transaction Trans Data Type Field Validation

37 David Capocci, CQA, CSTE 37 Transaction Data Type Level Identify which of the four types the transaction can become: Add, Change, Delete, Inquire It is entirely possible that a transaction can be multiple types. If a transaction is only one type, you can wrap this level up into the higher level. Decomposing TRs Function TaskTransaction Trans Data Type Field Validation

38 David Capocci, CQA, CSTE 38 Field Validation Level Most testers like to jump directly to this level. Its the most obvious at times. Field validation covers all edits & cross edits on fields and data. Be careful of the detail you document at this level. Remember the separation between test requirement and test case. Decomposing TRs Function TaskTransaction Trans Data Type Field Validation

39 David Capocci, CQA, CSTE 39 Field Validation Level Not all test requirements (especially at this level) fit well to be documented in this manner. -Example: Testing all the stated properties of windows objects -Use Validate that the properties of all the objects in this window match the properties listed on the Object Properties Reference Table in Appendix B upon initialization of the window -Dont list each property check as a separate test requirement if it can be summarize under one test requirement -This is a judgement call YOU make for your given project. Decomposing TRs Function TaskTransaction Trans Data Type Field Validation

40 David Capocci, CQA, CSTE 40 Example 3: Rental Car Application 1. Validate that a Rental can occur. 1.1 Check Customer policy coverage 1.2 Query Car availability 1.3 Query Car rates 1.4 Open a Rental ticket Validate that a customer record can be entered Validate that credit card approval is obtained Validate that status on the car record is changed from waiting to rented 2. Billing Function 3. Reservation Function Lets look at the lower levels for this one Decomposing TRs Then well try it on this one

41 David Capocci, CQA, CSTE 41 Example 3: Rental Car Application 1. Validate that a Rental can occur. 1.4 Open a Rental ticket Validate that a customer record can be entered Validate that a new customer can be added to the customer table Validate that the first name is all alpha Validate that the age is > Validate that the phone number is numeric Validate area code is an existing area code number Validate changing an existing customer Decomposing TRs

42 David Capocci, CQA, CSTE 42 Example 3: Rental Car Application 1. Validate that a Rental can occur. 1.4 Open a Rental ticket Validate that credit card approval is obtained …fill in the lower level test requirements! First, Identify any sub-areas (further tasks, or even separate transactions within this) Then, Identify the lowest level field validation test requirements (think about what is typically involved with credit card authorizations) Decomposing TRs

43 David Capocci, CQA, CSTE 43 What did you come up with? 1. Validate that a Rental can occur. 1.4 Open a Rental ticket Validate that credit card approval is obtained _________________________________________ Decomposing TRs

44 David Capocci, CQA, CSTE 44 Possible Test Requirements Validate that a Rental can occur. 1.4 Open a Rental ticket Validate that credit card approval is obtained Validate the expiration date is a valid future date Validate the expiration date is not within 1 month of expiring Validate that the CC# is 12 digits Validate that the $ amount is <= credit balance available Validate that an authorization # is received. Decomposing TRs Function Task Transaction

45 David Capocci, CQA, CSTE 45 Agenda Defining TRs: What, Why, Where Fitting TRs into the testing picture –Whats within our testing process –Generating TRs Organizing & Decomposing TRs Test Requirements Hierarchy Samples Setting the stage for measuring test coverage

46 David Capocci, CQA, CSTE 46 TRH Samples Lets look at a few examples of how test requirements can be organized: -Sample 1: Excerpt from a Personal Finance app -Sample 2: actually organizing Function requirements, but good representative of the concept -Sample 3: QBS, from Rationals sample project (adds types of testing into the hierarchy) -Sample 4: another view of the Personal Finance app -Sample 5: A mainframe batch system

47 David Capocci, CQA, CSTE 47 Test Coverage Measures Test Requirements are the what of testing & are the basis for establishing the completion of testing TRs give us the point of measurement for test coverage Each TR should receive a Priority, Risk, and Weight Each TR should be tracked for Verification ( ) and Validation (%) Test Coverage Measures

48 David Capocci, CQA, CSTE 48 Summary & Recap Defined: What, Why, Where Described: How TRs fit into the big picture Decomposed: Organizing TRs & Generate TRs into a measurable format Demonstrated: Sampling some TRH Determined: The Measurement Connection


Download ppt "David Capocci, CQA, CSTE 1 Test Requirements: The Basis of Testing David Capocci, CQA, CSTE Sr. QA Systems Analyst SAFECO Corporation"

Similar presentations


Ads by Google