What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements, or to identify differences between expected and actual results. Useful URLs ► Tutorials: www.w3schools.com ► Reference: www.wikipedia.org ► Testing Articles: prosoftqa.blogspot.com www.wilsonmar.com ► Questions & Answers www.genixpress.com/answers www.geekinterview.com ► Software: www.mercury.com Software Development Life Cycle 1. 2. 3. 4. 5. Requirements Analysis Design Coding/Implementation Testing Deployment/Maintenance Requirements Analysis ► ► ► The gathering of details about what needs to be done, and how the application should perform those tasks. Actors: Business Analysts Products: Requirements Documents Functional Requirements Non-functional requirements Service-Level Agreements Design ► High-level design of the application to specify how the application will be created. ► Actors: Software Architect/Database Administrator ► Products: Design Documents Software ► Software Architecture ► Development/Production Environment Layout ► Use Case Realization documents Data ► Database Schema ► Data Dictionary Coding/Implementation ► Involves writing the code for the application using the chosen programming language and software platform from the design phase. ► Actors: Programmers ► Products: Software Application Testing ► The testing phase covers the process of planning tests that will be run on the application to examine its functionality. ► Actors: Quality Assurance Staff ► Products: Testing Documentation Test Plan Test Scripts (automated testing) Defects Deployment/Maintenance ► Release the application to users and manage any problems that might occur when the users are using the software. ► Actors: Support Staff Test/Plan 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Test Plan Identifier (TPI) References Introduction Test Items Software Risk Issues Features to be Tested Features not to be Tested Approach Item Pass/Fail Criteria Entry & Exit Criteria Suspension Criteria and Resumption Requirements Test Deliverables Remaining Test Tasks Environmental Needs Staffing and Training Needs Responsibilities Schedule Planning Risks and Contingencies Approvals Glossary Test Case 1. Test Name 2. Purpose 3. Pre-condition (Initialization) 4. List of actions 5. Expected Results for each action 6. Post-condition (Finalization) 7. Test Data 8. Exceptions Testing Types ► Automated If you’re using a tool ► Manual If you’re NOT using a tool ► White box/Glass box If you have access to the source code ► Black box If you don’t have access to the source code ► Unit If you’re testing the source code (function level) ► Business Process If you’re testing the requirements process ► Ad-hoc If you don’t have a test plan ► Performance If you’re testing how the application responds Testing Types (Cont) ► Load If you’re testing how the application responds under normal load ► Stress If you’re testing how the application responds under high load ► Smoke / Sanity Pre-testing ► User Acceptance If you’re deciding whether the application is correct ► End User If you’re testing with actual users ► Integration ► Testing before the entire pieces are built System Testing after the entire pieces are built ► Alpha Early stage of system testing ► Beta Late stage of system testing Testing Types (Cont) ► Functional Testing how the application works ► Regression Comparing 2 versions to see what changed ► Security How the application prevents unauthorized access ► Usability How friendly is the application ► Accessibility Can differently-abled individuals use the application? Expense Calculator ► Windows based application written in Visual Basic ► Available at http://www.genixcorp.com/testing/ExpenseCalculator.zip ► Allows ► Uses individuals to track expenses a local Access database