Software Testing
Software Testing is a process of executing a program or an application
with the intend of finding bugs. It is do for assessing the following:
Meets the business and technical requirements that guided its design and
development
Works as expected by the end user.
Need for Software Testing
Software testing is really required to point out the defects and errors that
were made during the development phases.
It’s essential since it makes sure of the Customer’s reliability and their
satisfaction in the application.
It is very important to ensure the Quality of the product. Quality product
delivered to the customers helps in gaining their confidence.
Testing is required for an effective performance of software application or
product.
Responsibility of Software Tester
Testers should review and contribute to test plans, as well as analyzing,
reviewing and assessing requirements and design specifications.
Testers execute and log the tests, evaluate the results and document
problems found.
Software Quality Factors
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Testability
Flexibility
Reusability
Interoperability
Defect, Bug, Fault, Failure
Defect: When actual result deviates from the expected result while
testing application or product then it is termed as a defect.
Bug: Bug is a fault in program which causes it to behave abruptly.
Bugs are usually found during unit testing.
Failure: The inability of a system or component to perform its
required functions.
Fault: An incorrect step, process, or data definition in a computer
program which causes the program to perform in an unintended or
unanticipated manner. Fault is the result of error
Error: Error is a mistake in coding Refers to the actual output of a
software and correct output.
SOFTWARE TESTING LIFE CYCLE(STLC)
Requirement Analysis
QA team may interact with various stakeholders (Client, Business Analyst,
Technical Leads, System Architects etc.) to understand the requirements in
detail.
Requirements could be either Functional (defining what the software must
do) or Non-Functional (defining system performance /security availability)
Deliverables
RTM
Test Planning
Preparation of test plan/strategy document for various types of testing
Test tool selection
Test effort estimation
Resource planning and determining roles and responsibilities.
Training requirement
Deliverables
Test plan /strategy document.
Effort estimation document.
Test Case Development
This phase involves creation, verification and rework of test cases
Create test data (If Test Environment is available)
Deliverables
Test cases/scripts
Test data
Test Environment Setup
Test environment decides the software and hardware conditions under
which a work product is tested.
Deliverables
Environment ready with test data set up
Test Execution
Smoke test
Execute tests as per plan
Document test results, and log defects for failed cases
Map defects to test cases in RTM
Retest the Defect fixes
Track the defects to closure
Deliverables
Completed RTM with execution status
Test cases updated with results
Defect reports
Test Cycle Closure
Testing phase is successfully completed.
Contains details of test executed, results of each test pass or fail.
Outstanding defects, how it will be dealt with ones post production goes
live.
Test Planning
Test Plan
Test plan gives detailed testing information including
1. scope /out of scope of testing
2. Objective
3. schedule
4. Test deliverables
5. Exit and Entry Criteria
6. Risk and contingencies
7. Test Environment details
Test Scenario
A Test Scenario is any functionality that can be tested
Business process or workflow
It tests series of test cases
Example: login functionality
Test Condition
It is an item or event of a system that could be verified by one or more test cases.
Example:
a) verify user is able to login with valid credentials
b) verify user is able to login with invalid credentials
Test case
A test case is a set of test inputs, execution conditions, and expected results
developed for a particular objective.
Test Suite
A collection of test scenarios or test cases that are related.
Test script
It is the data and or instructions with a formal syntax used by a test execution
automation tool, typically held in a file.
Test Execution
Prior to test execution:
Setup test environment
Prepare test data if the test environment is ready
Completed Test Suite
TEST EXECUTION ACTIVITIES
Document test results
Analyze test results
Issue problem report and update test case log
Planning the reruns
Update the test execution log
Update the test planning/execution status form
Update the testing status reports
DEFECT REPORTING
Severity:
It defines the impact that a given defect has on the system
Defect severity can be categorized into four class
Critical: This defect indicates complete shut-down of the process, nothing
can proceed further
o Ex: System crash
Major: It is a highly severe defect and collapse the system. However,
certain parts of the system remain functional
o Ex: Unable to add a product in shopping cart.
Medium(minor): It cause some undesirable behavior, but the system is still
functional.
Ex: page title missing, screen layout issue
Low(cosmetic): It won't cause any major break-down of the system
Ex: Caption written in wrong font
GUI Image colors
Priority:
Priority defines the importance or urgency of fixing a defect
Defect priority can be categorized into three class
High
Medium
Low
High Priority & High Severity: An error which occurs on the basic
functionality of the application and will not allow the user to use the
system. (Eg . A site maintaining the student details, on saving record if it,
doesn’t allow to save the record then this is high priority and high severity
bug.)
High Priority & Low Severity: The spelling mistakes that happens on the
cover page or heading or title of an application.
High Severity & Low Priority: If there is an application if that application
crashes after multiple use of any functionality.
Low Priority and Low Severity: Any cosmetic or spelling issues which is
within a paragraph or in the report (Not on cover page, heading, title).