0% found this document useful (0 votes)
55 views57 pages

Software Quality Assurance Introduction To Testing: Sweta Suman

This document provides an introduction to software testing. It defines software testing as evaluating software functionality to determine if requirements are met and defects can be identified to produce quality products. It discusses why testing is needed to find defects that can cause failures and costs. It also covers different types of testing and career options in testing.

Uploaded by

nehapal80199
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views57 pages

Software Quality Assurance Introduction To Testing: Sweta Suman

This document provides an introduction to software testing. It defines software testing as evaluating software functionality to determine if requirements are met and defects can be identified to produce quality products. It discusses why testing is needed to find defects that can cause failures and costs. It also covers different types of testing and career options in testing.

Uploaded by

nehapal80199
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

SOFTWARE QUALITY ASSURANCE

LECTURE 1

INTRODUCTION TO TESTING

Sweta Suman
Introduction to Testing
■ What is Software Testing?

■ Why Software Testing is needed?

■ Types of Software Testing

■ What are career options in testing?

Sweta Suman
What is Software Testing?

Software testing is a process, to evaluate the


functionality of a software application with an intent to
find whether the developed software met the specified
requirements or not and to identify the defects to
ensure that the product is defect-free in order to
produce a quality product.

Sweta Suman
Reason for Testing

■ Software contains defects, they hide

■ Defects can cause software failures

■ Failures can cost money and can be mortal

■ Testing assures quality of the software

■ Testing accelerates software development

Sweta Suman
Testing in the 21st Century
■ Today’s software market :
– is much bigger
– is more competitive
– has more users Industry is going thro
a revolution in what
■ Embedded Control Applications
testing means to th
– airplanes, air traffic control
– spaceships
success of software
– watches products
– ovens
– remote controllers

■ Agile processes put increased pressure on testers


– Programmers must unit test – with no training, education or tools !
– Tests are key to functional requirements – but who builds those tests

5
■ Historical Perspective of Quality

■ What is Quality

■ Quality View

■ Financial Aspect of Quality

Sweta Suman
Historical Perspective of Quality
■ As per the traditional thinking, quality is conformance to
specification i.e. whether the product does what it is
designed for.

■ The quality movement has its roots back in medieval Europe,


where craftsmen began organizing into unions called guilds
in the late 13th century.

■ Until the early 19th century, manufacturing in the


industrialized world tended to follow this craftsmanship
model. The factory system, with its emphasis on product
inspection, started in Great Britain in the mid-1750’s and
grew into the Industrial Revolution in the early 1800’s.

Sweta Suman
Historical Perspective of Quality
■ In the early 20th century, manufacturers began to include
quality processes in quality practices. After the United
States entered World War II, quality became a critical
component of the war effort: Bullets manufactured in one
state, for example, had to work consistently in rifles made in
another.

■ The armed forces initially inspected virtually every unit of


product; then to simplify and speed up this process without
compromising safety, the military began to use sampling
techniques for inspection.

■ The birth of total quality took place in Japan where Japanese


rather than concentrating on inspection, focused on
improving all organizational processes through the people
who used them.
Sweta Suman
What is Quality? Fact or Perception
■ Quality means different things to different people and it is highly
context dependent. Sometimes it can be recognized through
experience but is difficult to define in some traceable form.
Generally it is perceived as fitness for use i.e. while evaluating
quality we must ask a question “Does the product satisfy user
need and experience?”

■ However quality is not only viewed in terms of what it can deliver


but also by the experience it provides. Here the quality is tied to
internal characteristics of the product thus we can say quality is a
fact provided by the product.

■ People generally think high priced products offer better quality


and quality in this perspective depends upon the amount the
customer is willing to pay for it hence at times it can also be a
perception.
Sweta Suman
Definitions of Quality
■ Fitness for use

■ Conformance to requirements

■ The degree to which a system or a component possess certain


attributes

■ Based on the study of external and internal features

■ Customer satisfaction

Sweta Suman
Quality View

■ Customer/User view

■ Manufacturing view

■ Product view

■ Value-based view

■ Transcendental view

Sweta Suman
Cost of Quality

Sweta Suman
Formula for Cost of Quality

Cost of Quality (COQ) = Cost of Control + Cost of


Failure of Control

Where ,
Cost of Control = Prevention Cost + Appraisal Cost

Cost of Failure of Control = Internal Failure Cost +


External Failure Cost

Sweta Suman
Sweta Suman
Continuous vs Continual Improvement

Sweta Suman
Continuous vs Continual Improvement

Sweta Suman
DMM/ACI Cycle – Organisation must define quality
parameters before it is achieved

▪ Define

▪ Measure

▪ Monitor/Analyze

▪ Control

▪ Improve

Sweta Suman
Continuous Improvement Cycle

Sweta Suman
Stakeholders
■ Customer

■ Supplier

■ Employee

■ Management

■ Society

■ Government

Sweta Suman
Customers and Suppliers

Sweta Suman
Quality Gaps

Sweta Suman
Closing user’s gap
1. Customer Survey
2. Joint Application Development

Producer’s Gap
1. Process definition
2. Work product review

Sweta Suman
Supply Chain Relationship

Sweta Suman
Total Quality Management

Sweta Suman
Quality Management through Cultural Change

■ Organization culture i.e. the pattern of shared values,


beliefs and assumptions influence the way to think and act
within an organization.

■ Organizational culture includes an organization’s


expectations, experiences, philosophy, as well as the
values that guide member behaviour, and is expressed in
member self-image, inner workings, interactions with the
outside world, and future expectations.

Sweta Suman
Benchmarking
▪ Benchmarking plays an important role in determining some
of the major qualities of the software. Benchmark can be
defined as “something that serves as a standard by which
others may be measured or judged”.

▪ To put it simply, it is a metric or a point of reference against


which products or services can be compared, which further
assess the quality of the said product or service.

▪ Similarly, benchmark testing is the process of load testing a


component or an entire end to end IT system to determine
the performance characteristics of the application. It is
mainly used to compare the performance of the software or
hardware.

Sweta Suman
Customer is King
• Features of software are based on customer requirements.

• Customer is the end user of the software hence testing


software from customer point of view is very important.

• We may develop a product which meets the entire


requirement but is not useful to the customer, such product
will be rejected by the customer in the market.

• Customer will want value for their money. They will buy
software and expect return on their investment. Thus the
software should be designed keeping this in mind.

Sweta Suman
Fish bone/Cause-Effect Diagram

Sweta Suman
SQA

Sweta Suman
The Psychology of Testing
▪ Comparison of the mindset of the tester and developer

▪ The balance between self-testing and independent testing

▪ Clear and courteous communication and feedback on defects


between tester and developer

Sweta Suman
Fundamental Test Process

▪ Planning and control

▪ Analysis and Design

▪ Implementation and Execution

▪ Evaluating Exit criteria and Reporting

▪ Test Closure activities

Sweta Suman
Requirement Traceability Matrix(RTM)

Requirement Business Requirement


Traceability
BID001 BID002 BID003 BID004 BID005

TID001 X

TID002 X

TID003 X

TID004 X

TID005 X
Test
Cases TID006 X

TID007 X

TID008 X X

TID009 X

TID0010 X

Sweta Suman
Historical perspective of Testing
▪ The origin of software testing can be traced back to the fifties,
when the primary method of testing was debugging

▪ In late seventies, the approach evolved to one of the


destructions. The testers would break down the codes to find
the gaps in it

▪ This method was effective until the prevention-oriented


methodologies were discovered which made software
application more robust

▪ In 1979, Glenford J Myers distinguished between debugging and


testing which means identifying and eliminating bugs in
software code and testing the software in real world.

Sweta Suman
Software Testing
▪ Software testing is a process, to evaluate the functionality of a
software application with an intent to find whether the developed
software met the specified requirements or not and to identify the
defects to ensure that the product is defect free in order to produce
the quality product.

▪ Software testing is primarily a broad process that is composed of


several interlinked processes. The primary objective of software
testing is to measure software health along with its completeness in
terms of core requirements.

▪ Software testing involves examining and checking software through


different testing processes. The objectives of these processes can
include :
▪ Verifying software completeness in regards to
functional/business requirements
▪ Identifying technical bugs/errors and ensuring the software is
error-free
▪ Assessing usability, performance, security, localization,
compatibility and installation

Sweta Suman
Software Testing
Test approach has two techniques:
∙ Proactive - An approach in which the test design process is
initiated as early as possible in order to find and fix the defects
before the build is created.
∙ Reactive - An approach in which the testing is not started until
after design and coding are completed

Sweta Suman
Essentials of Software Testing:

▪ Test Strategy

▪ Testing Plan

▪ Test Cases

▪ Test Data

▪ Test Environment

Sweta Suman
Important Features of Testing Process

▪ Define the expected output

▪ Inspect output of each test completely

▪ Include test cases for invalid and unexpected conditions

▪ Test the modified program to check its expected performance

Sweta Suman
Misconceptions about Testing

▪ Testers Break Software

▪ Testers Don't Have Technical Skills

▪ Testing can find all bugs

▪ Testing can happen at the end

▪ Test Automation will replace manual testers and we can


automate everything

Sweta Suman
Principles of Software Testing

▪ Testing shows presence of defects

▪ Exhaustive testing is not possible

▪ Early Testing

▪ Defect clustering

▪ Pesticide paradox

▪ Testing is context dependent

▪ Absence of errors fallacy

Sweta Suman
Test Strategy
▪ Scope and objective

▪ Business Issues

▪ Testing approach

▪ Test deliverables

▪ Defect tracking approach

▪ Training

▪ Automation

▪ Risks

Sweta Suman
Test Plan
▪ Test plan ID

▪ Brief Intro

▪ Test environment

▪ Features to be tested/Not tested

▪ Entry/Exit criteria

▪ Status

▪ Types of testing

Sweta Suman
Mutation testing
▪ Mutation Testing is a type of software testing where we mutate
(change) certain statements in the source code and check if the
test cases are able to find the errors

▪ The goal of Mutation Testing is to assess the quality of the test


cases which should be robust enough to fail mutant code

Following are the steps to execute mutation testing

Step 1: Faults are introduced into the source code of the program
by creating many versions called mutants

Step 2: Test cases are applied to the original program and also to
the mutant program
Sweta Suman
Mutation testing
Step 3: Compare the results of an original and mutant program

Step 4: If the original program and mutant programs generate the


different output, then that the mutant is killed by the test case.
Hence the test case is good enough to detect the change between
the original and the mutant program.

Step 5: If the original program and mutant program generate the


same output, Mutant is kept alive. In such cases, more effective
test cases need to be created that kill all mutants.

Sweta Suman
Challenges in Testing
▪ Complete Testing Is Impossible

▪ Setting the Right Process

▪ Lack of Proper Communication

▪ Lack of Resources

▪ Test Coverage

Sweta Suman
Process Problems Faced by Testing

Sweta Suman
Defect

Sweta Suman
Defect

Sweta Suman
Software Development Models

Limitations:
No feedback loop
It is assumed requirements are stable and no problem is
encountered
No re work allowed
Sweta Suman
Iterative Development Model

Limitations:

It consists of many cycles of waterfall model


Fixed price project estimation issue
Product architecture and design becomes fragile
Sweta Suman
Incremental Development Model

Sweta Suman
Spiral Model

Assumption that requirements are obtained in iterations

Limitations:
Requires huge regression testing cycles
Changes in approach where internal structures becomes non
usable
Sweta Suman
Prototype Model

Sweta Suman
Rapid Approach Development

Sweta Suman
Sweta Suman
Raising Management Awareness for Testing
☞ Quality

▪ Satisfied Customer

▪ Bringing Profit

▪ User Experience

▪ Business Optimisation

Sweta Suman
Skills Required by Tester
• Understanding of Business Needs

• Good Communication Skills

• Knowing What to Prioritize

• Continuous Learning

Sweta Suman
Boundary value testing
• Boundary value testing is a software testing technique where the
test cases are designed to evaluate the behavior of a system or
application at the boundary values of input ranges.

• The goal is to identify any errors or issues that may occur at the
edges or boundaries of acceptable input values.
• This type of testing is particularly useful in catching potential
problems that may arise due to boundary conditions.

Sweta Suman

You might also like