Understanding Software Testing

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 37

Understanding Software

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.

Briefly explain the following software development models:


• Waterfall model
• Iterative-incremental model
• V-model
Traceability
• This is a technique used to evaluate identified requirements and
confirm that they are all implemented in software.
• There is a need to ensure that each requirement is mapped to a
certain element in the software design
• Software testers uses traceability a s a tool to ensure that all customer
requirements are incorporated in the software system
Responsibilities of Testers
• A Tester is a skilled professional tasked with the testing of asoftware
component or system.
• Has the following responsibilities:
• Reviewing the test policy of the organisation
• Devising a test strategy and plan
• Devising test approaches, estimating time, effort and cost
• Monitor test results
• Deciding on the implementation of the test environment
Testing constraints
• Budgetary constraints
• Schedule constraints
• Inaccurate or poorly articulated requirements
• Technological changes
• Limitations of tester’s skills
Quality parameters
• The following are quality parameters to be considered during software testing:
a) Quality Assurance (QA)
• A set of activities performed systematically to ensure that products and services
conform to a predetermined standard.
• This is done by ensuring that all requirements incorporated into software meets
specific needs. There is continuous monitoring.
• The standard is set by identifying all system requirements that must be incorporated
to into software to ensure that it meets user’s needs.
• Therefore quality assurance is about identifying and defining processes that enable
setting of standards for creating software and thereby:
o Providing customer satisfaction and
o Enhancing competitive advantage
Cont’d
b) Quality Control (QC)
• Involves comparing one or more quality parameters of a software
product to the corresponding quality standards set.
• It identifies instances of non-conformance with quality standards and
suggests corrective actions.
• Focus is on defects
• Process begins at requirements review stage through to testing stage.
Difference between QA and QC
QUALITY ASSURANCE QUALITY CONTROL
Formulates a process/ helps establish processes Implements the process formulated
Evaluates a process / set up measurement programs Verifies the product
to evaluate processes
Identifies weaknesses in processes and improves on Identifies reports and rectifies defects in a product
them
Responsibility of a team Responsibility of a tester
Class discussion
Discuss the significance of QA ad QC during software testing?

They are inseparable so as to deliver high quality software products.


Validation vs Verification
 Verification – involves review or other non-executable methods to
analyse whether the software adheres to the standards and process of
the organisation and meets customer specification.
 Verification technique examples include:
 Requirement reviews - Identify and analyse requirements to ensure that they
meet user requirements (users and developer involved)
 Design reviews – Ensure that design supports all identified user requirements
(developer involved)
 Code walkthroughs – Analyse coding techniques used in building s/w product.
Typically done by developers)
 Code inspection – Analyse source code (Developers work with SMEs to analyse
source code to identify defects)
Cont’d
 Validation – Enables one to validate and check whether chosen software
development method is appropriate and also whether the intended result is
achieved.
 Validation Techniques examples include
 Unit testing – A program, module or unit of code is tested by executing it to
check/validate if system performs per design requirements (Unit developer typically does
testing)
 Integration testing – Related modules are tested to validate interaction between
interrelated systems (developer and independent testing team)
 System Testing – Validate functioning of entire system to validate system requirements.
 User acceptance Testing – A computer system or part of it is tested in the user
environment to verify its functionality (Performed by users supported by an independent
team.)
Verification vs Validation
• Class discussion: What is validation? What is
verification?
Verification Validation
Requirements review Unit testing
Design review Integration testing
Code walk through System testing
Code inspection User acceptance testing
Software Quality Gaps (SQGs)
• It can be producer gap or customer gap
• Producer gap :- this is gap between documents requirements with
what was determined from standards for the delivered product.
• Customer gap :- this is the gap between what end users expect with
what the software offers them.
 Gaps are a result of misunderstood requirements
 Conduct quality gap optimisation methods to encourage greater user
involvement by running Joint Application Development (JAD) sessions.
Cont’d
Cost of quality
Cost of Quality can be defined as the total cost incurred by an organisation
toward quality activities carried out throughout the SDLC.

Where,

 Failure Costs: Incurred toward prevention of defects


 Appraisal costs: Incurred toward reviewing (inspections and tests to determine
to what degree product meet user requirements) quality of completed
product.
 Failure costs: Incurred as a result of a defective product being delivered to the
user (rectifying errors costs, operational losses as a result of damage due to
using a faulty product or operating a faulty product)
Software quality factors
Mr Price Fit U

• Maintainability, Reliability, Portability, Reusability, Integrity,


Correctness, Efficiency, Interoperability, Testability, and Usability
Cont’d
Importance of software quality factors
• Software quality factors are of paramount importance as they
determine the overall efficacy of the software product
Factors that affect software quality
a) Errors
- This is a discrepancy between a computed, observed or measured
value or condition. This could be due to incorrect coding, logical,
syntax or runtime errors.

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

You might also like