software testing - basics
DESCRIPTION
Software testing basic conceptsTRANSCRIPT
Software Testing
The Software Development Life Cycle
Requirement Analysis
Design
CodingTesting
Implementation
Software Requirement Specification
Design Specification
Test Strategy Test Plan
Understanding Testing
Testing
Analyzing
Review
Verifying
Validating
Testing
Manual Automated
Testing Objectives
• Testing activity is performed to find defects in the softwareDetect Defects
• Testing activity is performed to check if the software meets the specified requirements
Determine specified
Requirements are met
• Testing activity is performed to test the performance of the application.
Test the Performance
Testing Principles
Testing shows presence of defects
Exhaustive testing is impossible
Early Testing
Defect Clustering
Pesticide paradox
Testing is context dependent
Absence of errors fallacy
Software Testing Life Cycle
Test Planning
Test Analysis and Design
Test Implementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Testing Objectives are defined
Test Case designing Identifying the Test Data Identifying the environment,
Infrastructure and Tools
Test Executing Test Results Logging Defects Re-testing
Verify if more testing is required Test Summary Report
Test Archive
Test Types
Test Type
Functional Testing
Non Functional
Testing
Confirmation Testing
Regression Testing
Testing the functionality against the software
Testing the behavioral characteristic of the software
Retesting No new defects are introduced in the process of fixing the earlier identified defects
Black Box
Test Plan
Test Plan describes Assign mitigation and contingencies to the identified risks Decide scope of testing according to level of risk Features to be tested Features not to be tested Tasks to be performed The environment in which testing is to be done Test Schedule Test Execution
Test Plan
Scope ResourcesApproach Schedule
Test Case
Expected Output Actual Result=
A test case is a document that contains detailed instructions for testing the functionality of a software application
A Robust Test case should be Independent to meet specific requirements Easily understandable during testing Free from spelling and grammatical mistakes. Able to cover at least one functionality or requirement Able to uncover bugs
Test Components Test Case Name Objectives Test Case ID
Prerequisites Actions Expected Result
Actual Result Status General Remarks
Black Box Test Design Technique
Boundary Value Analysis
Equivalence partitioning
Error Guessing
State Transition
Syntax Testing
Cause effect Graphic
Represents a set of valid and invalid conditions Test condition which give similar results are grouped under one partition Number of test cases is reduced considerably
Identifies bugs around the boundaries. Takes into account output specifications when deriving test cases Used to test the behavior of the application where the bug is most likely to occur
ADHOC method to identify tests that are likely to expose bugs. Enables to make guess about bugs that are likely to be present in the application Test Activities based on areas that are not covered by formal design techniques.
Enables you to test the transition from one state to another Identifies the events which causes the transition and specifies Actions that result
from the transition
Used to design test cases for software applications based on the syntax of the input. Test the application with different set of input values
Used to identify possible causes of a problem by using the cause effect diagram Analyze Cause of the problem Identify the source of bugs and Observe the effects of the problem.
Execute a Test Case
Test Log
Pass BlockedFail
Attributes of Test Log
Test log identifier Test Description Test Case ID
Execution Description Actual Result Status
Environmental Information Anomalous Events Incident Identifier
Name of Tester Date of testing General Comments
Test Summary ReportParameters of Report
Number of Modules tested Number of test cases passed or failed Number of bugs identified
Precondition of Test Summary Report
Test Log to be completed Testing activities should to be completed Testing execution should be completed
Benefits of Test Summary Report
Effectiveness of testing effort Quality of application Test Coverage Decide any change Reference to lessons learned
DefectDefects are events that occurred during text execution and require investigation.
New OpenAssigned
Resolved
Verified
Closed
Defer
Reject
ReopenDefect Report
Defect ID Defect Summary Actual Result Expected Result Date and Time Supporting Evidence Potential Impact (Severity & Priority) Found By Assigned To Status
Test Tools
Functional Testing Tools
Software Functionality
Software Requirement Specifications
Used mainly for regression testing
Performance Testing Tools
Speed Effectiveness
Load
Stress
Features of Performance Test Tool Generating Load Measuring timing of transactions Measuring average response time Creating graphs and charts
E.g. QTP, Winrunner
E.g. Load Runner,
Test Management Tool
Requirement Analysis
Design
CodingTesting
Implementation
Test Management
Tool
Test Case Management
Test Schedule
Managing Test effort
Traceability
Test report
Defect Management
E.g. HP Quality Center
Assessment
Question 1
Which is the correct principle of testing?
a. Testing is context independent.b. Testing shows presence of defects.c. Exhaustive testing is possible.d. Defects are evenly distributed across the modules of software.
Answer: Testing shows presence of defects
Question 2
Which is the first phase of the SDLC?
a. Developmentb. Testingc. Analysisd. Design
Answer: Analysis
Question 3
Which level of testing detects defects in the integration of components?
a. Alpha testingb. Component integration testingc. System integration testingd. Beta testing
Answer: Component integration testing
Question 4
True or False? If a software application has bugs, the expected and the actual test result will be different.
a. Trueb. False
Answer: True
Question 5
Which attribute of a test log is used to describe the sequence of steps or actions to execute a test log?
a. Execution descriptionb. Test log identifierc. Test descriptiond. Anomalous events
Answer: Execution description
Question 6
Which component of the test case provides a detailed description of every step of execution?
a. Actual resultb. Expected resultc. Remarksd. Action
Answer: Action
Question 7
How many test cases will you need to achieve complete coverage on a branch?
a. Oneb. Twoc. Fourd. Three
Answer: Two
Question 8
Risk priority helps you determine:
a. Size of the testing team.b. Need for regression testing.c. Extent of testing required.d. Requirements for a testing tool.
Answer: Extent of testing required
Question 9
True or False? Before creating a test summary report, you need to ensure that each test case is given a test status such as pass, fail, or blocked.
a. Trueb. False
Answer: True
Question 10
Which testing type will you perform to ensure that no new defects are introduced in a new build of the software?
a. Component testingb. Confirmation testingc. Regression testingd. Acceptance testing
Answer: Regression testing
Question 11
True or False? White-box testing techniques are used at acceptance level testing.
a. Trueb. False
Answer: False
Question 12
True or False? If software is delivered to the customer with defects in it, then it is a product risk.
a. Trueb. False
Answer: True
Question 13
Which test case design technique is used to separate groups of input conditions to obtain the same kind of output?
a. Equivalence partitioningb. State transition testingc. Error guessingd. Boundary value analysis
Answer: Equivalence partitioning
Question 14
What is the importance of test planning?
a. To prepare test documents.b. To create a matrix for measuring test results.c. To define the testing approach.d. To evaluate exit criteria.
Answer: To define the testing approach.
For any QA training and support related discussion, mail me at [email protected]