Understanding Software Testing
Understanding Software Testing
testing
Objectives
• By the end of this unit, students should be able to:
• Identify the quality parameters relevant to the context of software testing
• Identify software defects that hamper software quality
• Identify the various maturity level classifications that can apply to
organisations
Software testing
• Process of evaluating a software product against a given set of
requirements.
Importance of Software testing
• Detect defects
• Determines the circumstances in which the product fails to produce
the desired output
• Enable organisations to add value to products and services so as to
roll them out into the market.
• Identifies user requirements that may have been overlooked during
development.
Objectives of software testing
• Detect defects
• Assess software quality
• Prevent defects
The need for software testing
• Traces unidentifiable defects in software, thereby enabling developers
to resolve these defects
• Ensures that the organisation’s quality standards are properly
implemented.
Software development
• It is the process of creating a software product.
• Uses the SDLC (this is a structured process for developing high quality
software applications or products). It consists of planning, analysis,
design, development, testing, implementation and testing.
• Advantages of using the SDLC is that it entails detailed documentation
of the development process, which enables the Tester to have an idea
on how to troubleshoot and programs can be re-used.
• Disadvantages is that it takes a lot of time to test the product for
defects.
Find out…..
• A software development model is a process used to create a software
product, from initial conception of the idea to public release of the
product.
Where,
Causes of errors
i) Complicated software systems and projects
ii) Lack of experience, unavailability of correct information
iii) Complex technical or business problems
Cont’d
b) Defects
- Flaw in a system as perceived by the customer when the system
shows a deviation from the requirements.
- Could be either a process or product defect
- Process defect arise due to faulty processes implemented during
product development
whereas
- Product defect arise due to faulty product design or data used to run
the product.
Cont’d
c) Bugs
- An error in the computer program that prevents it from working correctly; behaving
as desired or producing intended results.
d) Failure
- Deviation of a software system or its components from the expected execution,
services or results.
- The following are causes of failure:
- Presence of defects in a software product or its components
- Environmental conditions such as radiation, pollution, magnetism etc
- Human error
- Deliberate attempts at mishandling a software product.
Cont’d
• Statistical Process Control (SPC)
• Is a quality control technique or tool used to measure the variability of a
process. Variability is a process of deviation of the results of a process from a
predetermined limit.
• It ensures the development of quality software products.
• Also, it enables testers to eliminate process defects in software products by
measuring and reducing variability in various processes. Usually, the amount
of variability is quantified using a standard deviation.
• Statistical methods help collect and present data in ways that facilitate the
evaluation of current theories and formulating new theories.
Cont’d
In-control process
• A process is said to be stable, if its parameters remain unaltered over
time. A stable process is deemed to be in a state of statistical control
and predictable.
• In-control process is under statistical control where process variations
are caused by common causes.
Cont’d
Out-of-control processes
• Has random variations because of special causes.
• It is not under statistical control because the causes of variations are
unique and can be predetermined and remedied.
Software testing challenges
• Software testers must be
• conversant with the software development process in order to design an
execute tests and measure variations.
• Better equipped to suggest appropriate quality control methods
• Enables testers to foresee actual user requirements and validate the product
against them rather than incorrectly implemented requirements.
Quality assessment standards and models
Why software models?
Most software failures are attributed to flaws in processes employed
in developing software
Extensive research has led industry approved standards and models
to streamline the development process and reduce defects.
Capability Maturity Model Integration
(CMMI)
• This is a process improvement method conceived by the SEI (Software
Engineering Institute) research and development center
• It describes the essential components of an effective process for
organisations to implement and thereby become efficient
• Can be used to improve processes in individual projects,
organizational divisions or across the whole organization
• Advantage is that activities of an organization can be aligned to CMMI
goals
Cont’d
CMMI uses two types of representations:
1. Continuous
Allows a process area to be chosen and processes associated with that area to
be improved
Uses capability levels (these define generic and specific practices for a process
area that will help improve the organisation in that process area
2. Staged
Maturity levels are defined to provide a path for process improvement in stages.
Allows organisations to choose maturity level that they want to attain and i.d
process areas to improve as covered in that maturity level (focus on specific
areas)
Popular Software Development Models and Standards