Quality Assurance and Software TestingPresentation Transcript
Quality Assurance& Software Testing
What is Quality Assurance? Quality Control Planned Systematic Activities Monitoring of Processes ISO 9000 Standards CMM Level Standards Six Sigma Standards Measurement and Comparison with Standards
What is Software Testing? Requirement Gathering Requirement Analysis Sign Off Requirement Test Plan/ Strategy Preparing Test Cases Review and Freeze Test Cases Execution of Test Cases
What is Software Testing? (Contd.) Report the Bugs Fixing the Bugs Retest and Close the Bugs Prepare the Defect Summary Report Signoff QA
V&V Verification: Have we built the software right? (i.e., does it match the specification). Validation: Have we built the right software? (i.e., is this what the customer wants).
IT Project Team Structure Project Manager Development Manager Dev. Lead/ Module Lead/ Sr. Developers Developers Business Analyst Production Support Team Web/ Application Server Support Team Database Administrators Test Manager/ Lead Sr. QA Tester/ Sr. QA Analyst/ Sr. QA Engineer QA Tester/ QA Analyst/ QA Engineer
What is SDLC? SDLC: Software Development Life CycleTypes of SDLC – Waterfall Model V Model Spiral Model etc.
Software System Architecture Development Environment QA Environment UAT Environment Staging Environment Production Environment
Software System Architecture (Contd.)
Methods of TestingUnit Testing: The primary goal of unit testing is to take the smallest piece oftestable software in the application, isolate it from the remainder of thecode, and determine whether it behaves exactly as you expectIntegration Testing: Integration testing is a logical extension of unit testing.In its simplest form, two units that have already been tested are combinedinto a component and the interface between them is tested.
Methods of Testing (Contd.)
Methods of Testing (Contd.)Regression Testing: Regression testing is the process of testing changes tocomputer programs to make sure that the older programming still workswith the new changes.Functional Testing: Functional testing is a type of black box testing thatbases its test cases on the specifications of the software component undertest. Functions are tested by feeding them input and examining theoutput, and internal program structure is not considered.System Testing: System testing of software or hardware is testingconducted on a complete, integrated system to evaluate the systemscompliance with its specified requirements. System testing falls within thescope of black box testing, and as such, should require no knowledge ofthe inner design of the code or logic.
Methods of Testing (Contd.)System Integration Testing: System Integration Testing (SIT) is a testingprocess that exercises a software systems coexistence with others. Withmultiple integrated systems, assuming that each have already passedsystem testing, SIT proceeds to test their required interactionsUser Acceptance Testing: User Acceptance Testing is often the final stepbefore rolling out the application. Usually the end users who will be usingthe applications test the application before ‘accepting’ the application.Black- box Testing: Black-box testing is a method of software testing thattests the functionality of an application as opposed to its internalstructures or workings. Specific knowledge of the applications code/internal structure and programming knowledge in general is not required.
Methods of Testing (Contd.)White- box Testing: White-box testing (also known as Clear boxTesting, Glass box Testing, Transparent box Testing and Structural Testing)is a method of testing software that tests internal structures or workings ofan application, as opposed to its functionality (i.e. black-box testing). Inwhite-box testing an internal perspective of the system, as well asprogramming skills, are used to design test cases. The tester choosesinputs to exercise paths through the code and determine the appropriateoutputs.Sanity Testing: Sanity testing is a quick test of the software build whichensures the build is ready for a major testing effort.Smoke Testing: Smoke testing is to test all major functionalities in theapplication.
Methods of Testing (Contd.)
Methods of Testing (Contd.)Business Process Testing: The Business Process Testing model is role-based, allowing non-technical Subject Matter Experts (working inQuality Center) to collaborate effectively with Automation Engineers(working in Quick Test Professional). Subject Matter Experts define anddocument business processes, business components, and businessprocess tests, while Automation Engineers define the requiredresources and settings, such as shared object repositories, functionlibraries, and recovery scenarios. Together, they can build, data-drive,document, and run business process tests, without requiringprogramming knowledge on the part of the Subject Matter Expert.
Methods of Testing (Contd.)Backend/ Database Testing: Executing SQL statements to check if thedata submitted by a GUI program is updated in the database or not?Backend testing is the testing the integration between the applicationand the database. It is also checking the changes made in the databaseis getting reflected in the application.Example: A new column is added in the table. Here we test by givingvalues in the application and value has to be stored in the table.Exploratory Testing: Exploratory testing is a form of quality checkingthat does not rely on test scripts. A tester is let loose on the system,often with very little introduction, and they are encouraged to reportany and all issues they find.
S/W Configuration Management/ Version Control
S/W Configuration Management/ Version Control (Contd.)
QA Documentation BRD/ SRS/ SRD/ Requirements Document FDD/ FRS/ Functional Document TDD/ Technical Document Data Model/ Database Model Flow Charts/ Flow Diagrams Use Cases User Guides
Data Model Example 1
Data Model Example 2
Flow Chart Example 1
Flow Chart Example 2
Use Case Example
QA Artifacts Test Plan Test Scenarios Test Cases Test Steps Test Data Test Estimation Test Schedule Security/ Access/ Entitlement requirements
Entry/ Exit Criteria in a Test Plan Examples of Entry Criteria: Testing Environment Established Approved Business Requirements Adequate Test data is available Test plans are completed Documented Test Cases and Results from prior test phase Completed and reviewed Test cases / Test scripts Access rights for the Testers were established Examples of Exit Criteria: All items in scope was tested All test cases (100%) are executed: failed cases have a satisfactory resolution Defects were documented and reported All severity 1 (critical) and 2 (Major) defects are resolved and implemented Applicable sign-off on testing was obtained
Test Case/ Test Steps Concepts Pre-Conditions Business Rules Field Level Validations User Interface Validations Taking Screenshots System Error/ Exception Messages System / Confirmation Messages Boundary Value Analysis Equivalence Class Partisans
BVA/ ECP Example
Test Scenario/ Test Case/ Test Steps Example 1 Scenario Cases Test Steps Camera Features 1. 2. Take a picture 3. 1. 2. Modify a picture 3. 1. 2. Save as - 2 options 3. 1. 2. Send as attachment in Email 3. 1. 2. Embed picture in Email 3. 1. 2. Delete picture 3.
Test Scenario/ Test Case/ Test Steps Example 2 Scenario Cases Test Steps Email in Yahoo 1. 2. Compose Email 3. 1. 2. Reply to Sender 3. 1. 2. Forward Email 3.