Software Testing
Software Testing
Software Testing
DEFINITION
• Software quality is the degree of conformance to explicit or implicit
requirements and expectations.
Explanation:
• Explicit: clearly defined and documented
• Implicit: not clearly defined and documented but indirectly suggested
• Requirements: business/product/software requirements
• Expectations: mainly end-user expectations
What is Software Testing
• Finding defects
• Trying to break the system
• Finding and reporting defects
• Demonstrating correct functionality
• Demonstrating incorrect functionality
• Demonstrating robustness, reliability, security,maintainability, …
• Measuring performance, reliability, …
• Evaluating and measuring quality
• Proving the software correct
• Executing pre-defined test cases
• Automatic error detection
Definition Of Software Testing
• Testing is the execution of programs with the intent of finding
defects.
• Testing is a the process of exercising a software component
using a selected set of test cases,
with the intent of revealing defects and evaluating quality.
• Software testing is a technical investigation of a product, i.e.
an empirical search for quality-related information of value to a
project’s stakeholders
Bug, Fault & Failure
• A person makes an Error
• That creates a fault in software
• That can cause a failure in operation
• Error : An error is a human action that produces the incorrect result that
results in a fault.
• Bug : The presence of error at the time of execution of the software.
• Fault : State of software caused by an error.
• Failure : Deviation of the software from its expected result. It is an event.
• Defect :A defect is an error or a bug, in the application which is created. A
programmer while designing and building the software can make mistakes or
error. These mistakes or errors mean that there are flaws in the software.
These are called defects.
Nature of errors
Categories of Software Errors:
• User interface errors such as output errors or incorrect user messages.
Function errors
Hardware defects
Incorrect program version
Requirements errors
Design errors
Documentation errors
Architecture errors
Module interface errors
Performance errors
Logic errors such as calculation errors
Why do defects occur in software?
Communication
Developers do not know enough
Information does not reach all stakeholders
Information is lost
Oversight
Omitting to do necessary things
Transcription
Developer knows what to do but simply makes a mistake
Process
Process is not applicable for the actual situation
Process places restrictions that cause errors
Objective of testing
• To find defects before they cause a production system to fail.
• To bring the tested software, after correction of the identified defects
and retesting, to an acceptable level of quality.
• To perform the required tests efficiently and effectively, within the
limits budgetary and scheduling limitation.
• To compile a record of software errors for use in error prevention (by
corrective and preventive actions)
Test Plan
A test plan is a systematic approach to testing a system i.e. software.
The plan typically contains a detailed understanding of what the
eventual testing workflow will be.
Test Case
A test case is a specific procedure of testing a particular requirement.
It will include:
• Identification of specific requirement tested
• Test case success/failure criteria
• Specific steps to execute test
• Test Data
ENTRY CRITERIA
Entry Criteria for QA testing is defined as “Specific conditions or on-going activities that must be present
before a process can begin”. In the Systems Development Life Cycle it also specifies which entry criteria are
required at each phase. Additionally, it is also important to define the time interval or required amount of lead
time that an entry criteria item is available to the process. Input can be divided into two categories. The first is
what we receive from development. The second is what we produce that acts as input to later test process
steps.
The type of required input from development includes:
1.Technical Requirements/Statement of Need
2.Design Document
3.Change Control
4.Turnover Document
The type of required input from test includes:
5.Evaluation of available software test tools
6.Test Strategy
7.Test Plan
8.Test Incident Reports
By referencing the Entry Exit Criteria matrix, we get the clarity of the deliverables expected from each phase.
The matrix should contain “date required” and should be modified to meet the specific goals and
requirements of each test effort based on size and complexity.
EXIT CRITERIA
Exit Criteria is often viewed as a single document concluding the end of a life cycle phase. Exit Criteria
is defined as “The specific conditions or on-going activities that must be present before a life cycle
phase can be considered complete. The life cycle specifies which exit criteria are required at each
phase”. This definition identifies the intermediate deliverables, and allows us to track them as
independent events.
• Verification
• Are you building the product right?
• Software must conform to its specification
• Validation
• Are you building the right product?
• Software should do what the user really requires
What is Verification?
• Definition : The process of evaluating software to determine whether the
products of a given development phase satisfy the conditions imposed at the
start of that phase.
• Verification is a static practice of verifying documents, design, code and program.
It includes all the activities associated with producing high quality software:
inspection, design analysis and specification analysis. It is a relatively
objective process.
• Verification will help to determine whether the software is of high quality, but it
will not ensure that the system is useful. Verification is concerned with whether
the system is well-engineered and error-free.
• Methods of Verification : Static Testing
• Walkthrough
• Inspection
• Review
What is Validation?
8. Verification is done by QA team to ensure that the 8. Validation is carried out with the involvement of testing
software is as per the specifications in the SRS document. team.
9. It generally comes first-done before validation. 9. It generally follows after verification.
In the V-Model software development life cycle different steps are
followed however here we will taking a most common type of V-
model example. The V-model typically consist of the following
phases: