How to Build Test Inventory • Test inventory is built and updated as the software project moves from phase to phase – Start with Requirements • List the actual and “budgeted” requirements • Analyze which of these requirements are “testable” – “reviewable” – For each of the “testable” requirement, consider if there are more than one item that is testable. (e.g. data, flow, systems, performance, etc.) • For each of the testable requirements – Describe the test flow or scenario – Describe each of the testable items – describe the expected results for each testable item An Initial Test List-Inventory Example Req. # #3 Req. Description Test flow/ scenario Query must Populate the Complete in Employee 1 to 2 secs Data base and query On all Employees younger than 25 and are managers Testable items 1. Create 100 employee Entries in DB with one 24 yrs manager 2. Set up a query and record response time and answer Expected Result for Each testable item DB table with Employee data Response time Less than 2 Seconds with one entry Prioritize the Test Scenarios • Just as not all requirements have the same priority, not all test scenarios have the same priority - - - prioritize the test scenarios by risks – Cost of failure – Users’ usage pattern – Chance of error from past experience (e.g. error prone areas, error prone development team, new areas, etc.) • add a column to the Test List-Inventory An Initial Test List-Inventory Example Req. # #3 Req. Description Test flow/ scenario Priority Testable items Query must Populate the Med. 1. Create Complete in Employee 100 employee 1 to 2 secs Data base Entries in DB and query with one 24 yrs On all manager Employees 2. Set up a younger than query and 25 and are record managers response time and answer Expected Result for Each testable item DB table with Employee data Response time Less than 2 Seconds with one entry Add More Test Information • The example can not be tested without real code and the data base system. So it is closer to component or system test. – Add a column stating the test type: • • • • • • Req. review/inspection Design review/inspection Unit test Functional test Component test System test Add More Details to Test List-Inventory • Required Test environment – – – – System and system interfaces UI Data formats (date, numeric, alphanumeric, etc.) Other factors: performance, reliability, security, etc. ( any equipment/tool needed) • If more information is needed to build and/or complete the test inventory, conduct “interviews” much like requirements gathering Two Levels of Interviews for Test Info. • High Level ( appr. 15 minutes ) to get general information - - - include managers • Detailed Level (appr. 30 min – 1 hr.) to get more explanation. •Read page 167( Hutcheson) – “Expendable Tester Ploy”--- a touch of realism Goals of High Level Test Interviews • Identify: – Project deliverables (which need to be tested?) – Owners of deliverables (where to get them?) – Project dependencies (sources of potential flaws?) • Other project • Shared DB/network/tools • Passing data or control with another on-going project • Get “opinions” on constraints and preferences: – – – – Priorities of requirements and other project items Schedule constraints View on testing versus development versus support Any specific goal behind this project • • • • Beat competition in the market Improve customer satisfaction Cut support cost Etc. Goals of Detail Test Interviews • Update business flow/logic flow • Gain insight into views on testing and project – Definition and views on quality – Past test information • • • • How long? How much? # of people and level of experiences What were tested and what were usually left out – Test tools used and needed – Test process and fix process used Some Guidance on Test Interviews • Be prepared with questions • Be quick and professional on the questions/answers • Listen carefully --- especially for “volunteered” information • Review the answers with the participants to confirm the answers • Do not offer solutions when there are discrepancies among the answers - - - ask for clarifications Update your Test Inventory • • • • • • Priority Dependencies and integration needs Tools needed Order of testing Systems interfaces Etc. Product Integration and Build for Test • Functional Test – module dependencies – Other subsystem dependencies (DB or Network) • Component Test – Functional dependencies • System Test – Component dependencies