Software Quality Assurance and Testing

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 64

Software Quality Assurance and

Testing
SOFTWARE QUALITY ASSURANCE
Software quality assurance (SQA) is a process that
ensures that developed software meets and
complies with defined or standardized quality
specifications.

SQA is an ongoing process within the software


development life cycle (SDLC) that routinely
checks the developed software to ensure it meets
desired quality measures.
SOFTWARE TESTING
Software testing is a process of executing a
program or application with the intent of finding
the software bugs.

It can also be stated as the process of validating


and verifying that a software program or
application or product meets the business and
technical requirements that guided it's design
and development.
Most Common Software problems
 Incorrect calculation
 Incorrect data edits & ineffective data edits
 Incorrect matching and merging of data
 Data searches that yields incorrect results
 Incorrect processing of data relationship
 Incorrect coding / implementation of business rules
 Inadequate software performance
 Unreliable results or performance
 Inadequate support of business needs
 Incorrect or inadequate interfaces
 with other systems
 Inadequate performance and security controls
 Incorrect file handling
Objectives of QA and Testing

 Executing a program with the intent of finding an


error.

 To check if the system meets the requirements and


be executed successfully in the Intended
environment.

 To check if the system is “ Fit for purpose”.

 To check if the system does what it is expected to do.


Objective of a Software Tester

 Find bugs as early as possible and make sure they get fixed.
 To understand the application well.
 Study the functionality in detail to find where the bugs are
likely to occur.
 Study the code to ensure that each and every line of code is
tested.
 Create test cases in such a way that testing is done to uncover
the hidden bugs and also ensure that the software is usable
and reliable
VERIFICATION & VALIDATION

Verification - typically involves reviews and meeting to


evaluate documents, plans, code, requirements, and
specifications. This can be done with checklists, issues
lists, walkthroughs, and inspection meeting.

Validation - typically involves actual testing and takes


place after verifications are completed.

Validation and Verification process continue in a


cycle till the software becomes defects free.
QUALITY PRINCIPLES

Quality - the most important factor affecting an


organization’s long-term performance.

Quality - the way to achieve improved productivity


and competitiveness in any organization.

Quality - saves. It does not cost.

Quality - is the solution to the problem, not a


problem.
Cost of Quality
Prevention Cost
Amount spent before the product is actually built. Cost
incurred on establishing methods and procedures,
training workers, acquiring tools and planning for quality.
Appraisal cost
Amount spent after the product is built but before it is
shipped to the user. Cost of inspection, testing, and
reviews.
Failure Cost
Amount spent to repair failures.
Cost associated with defective products that have been
delivered to the user or moved into production, costs
involve repairing products to make them fit as per
requirement.
Quality Assurance Quality Control

A planned and systematic set of


activities necessary to provide The process by which product
adequate confidence that quality is compared with
requirements are properly applicable standards; and the
established and products or action taken when non-
services conform to specified conformance is detected.
requirements.

An activity that establishes and An activity which verifies if the


evaluates the processes to product meets pre-defined
produce the products. standards.
Quality Assurance Quality Control

Helps establish processes. Implements the process.

Sets up measurements Verifies if specific attributes


programs to evaluate are in a specific product or
processes. Service

Identifies defects for the


Identifies weaknesses in
primary purpose of
processes and improves them.
correcting defects.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Phases of SDLC
• Requirement Specification and Analysis
• Design
• Coding
• Testing
• Implementation
• Maintenance
SOFTWARE TESTING LIFECYCLE (STLC)

Phases -

• Requirements study
• Test Case Design and Development
• Test Execution
• Test Closure
• Test Process Analysis
Requirements study

• Testing Cycle starts with the study of client’s


requirements.

• Understanding of the requirements is very


essential for testing the product.
Analysis & Planning

•Test objective and coverage


•Overall schedule
•Standards and Methodologies
•Resources required, including necessary
training
•Roles and responsibilities of the team
members
•Tools used
Test Case Design and Development
•Component Identification
•Test Specification Design
•Test Specification Review

Test Execution
•Code Review
•Test execution and evaluation
•Performance and simulation
Test Closure
•Test summary report
•Project De-brief
•Project Documentation

Test Process Analysis


Analysis done on the reports and improving
the application’s performance by implementing
new technology and additional features.
Testing Levels
• Unit testing
• Integration testing
• System testing
• Acceptance testing
Unit testing
• The most ‘micro’ scale of testing.
• Tests done on particular functions or code
modules.
• Requires knowledge of the internal program
design and code.
• Done by Programmers (not by testers).
Unit testing
Objectives  To test the function of a program or unit of
code such as a program or module
 To test internal logic
 To verify internal design
 To test path & conditions coverage
 To test exception conditions & error
handling
When  After modules are coded
Input  Internal Application Design
 Master Test Plan
 Unit Test Plan
Output  Unit Test Report
Who Developer

Methods White Box testing techniques


Test Coverage techniques

Tools Debug
Re-structure
Code Analyzers
Path/statement coverage tools
Education Testing Methodology
Effective use of tools
Integration Testing
– Testing of combined parts of an application to
determine their functional correctness.

– ‘Parts’ can be
• code modules
• individual applications
• client/server applications on a network.
Integration testing
Objectives  To technically verify proper
interfacing between modules, and
within sub-systems
When  After modules are unit tested
Input  Internal & External Application
Design
 Master Test Plan
 Integration Test Plan
Output  Integration Test report
Who Developers

Methods White and Black Box


techniques
Problem / Configuration
Management

Tools Debug
Re-structure
Code Analyzers
Education Testing Methodology
Effective use of tools
System Testing
Objectives  To verify that the system components perform
control functions
 To perform inter-system test
 To demonstrate that the system performs
both functionally and operationally as
specified
 To perform appropriate types of tests relating
to Transaction Flow, Installation, Reliability,
Regression etc.
When  After Integration Testing
Input  Detailed Requirements & External Application
Design
 Master Test Plan
 System Test Plan
Output  System Test Report
Who Development Team and Users

Methods Problem / Configuration


Management

Tools Recommended set of tools

Education Testing Methodology


Effective use of tools
Systems Integration Testing
Objectives  To test the co-existence of products and
applications that are required to perform
together in the production-like operational
environment (hardware, software, network)
 To ensure that the system functions together
with all the components of its environment as
a total system
 To ensure that the system releases can be
deployed in the current environment
When  After system testing
 Often performed outside of project life-cycle
Input  Test Strategy
 Master Test Plan
 Systems Integration Test Plan
Output  Systems Integration Test report
Who System Testers

Methods White and Black Box techniques


Problem / Configuration
Management
Tools Recommended set of tools

Education Testing Methodology


Effective use of tools
Acceptance Testing

Objectives  To verify that the system meets


the user requirements
When  After System Testing
Input  Business Needs & Detailed
Requirements
 Master Test Plan
 User Acceptance Test Plan
Output  User Acceptance Test report
Who Users / End Users

Methods Black Box techniques


Problem / Configuration
Management

Tools Compare, keystroke capture & playback,


regression testing

Education Testing Methodology


Effective use of tools
Product knowledge
Business Release Strategy
TESTING METHODOLOGIES
AND
TESTING TYPES
Testing methodologies

• Black box testing


• White box testing
• Incremental testing
• Thread testing
• Black box testing
– No knowledge of internal design or code
required.
– Tests are based on requirements and
functionality
• White box testing
• Knowledge of the internal program design
and code required.
• Tests are based on coverage of code
statements,branches,paths,conditions.
Black Box - testing technique

• Incorrect or missing functions


• Interface errors
• Errors in data structures or external database
access
• Performance errors
• Initialization and termination errors
Black box / Functional testing

• Based on requirements and functionality


• Not based on any knowledge of internal
• design or code
• Covers all combined parts of a system
• Tests are data driven
White box testing / Structural testing

• Based on knowledge of internal logic of an


application's code
• Based on coverage of code statements,
branches, paths, conditions
• Tests are logic driven
Functional testing
– Black box type testing geared to functional
requirements of an application.
– Done by testers.
System testing
– Black box type testing that is based on overall
requirements specifications; covering all combined
parts of the system.
End-to-end testing
– Similar to system testing; involves testing of a
complete application environment in a situation that
mimics real-world use.
Sanity testing
– Initial effort to determine if a new software
version is performing well enough to accept
it for a major testing effort.

Regression testing
– Re-testing after fixes or modifications of the
software or its environment.
Acceptance testing
– Final testing based on specifications of the
end-user or customer

Load testing
– Testing an application under heavy loads.
– Eg. Testing of a web site under a range of
loads to determine, when the system
response time degraded or fails.
Stress Testing
– Testing under unusually heavy loads, heavy
repetition of certain actions or inputs, input of
large numerical values, large complex queries
to a database etc.
– Term often used interchangeably with ‘load’
and ‘performance’ testing.
Performance testing
– Testing how well an application complies to
performance requirements.
Alpha testing
•Testing done when development is nearing
completion; minor design changes may still
be made as a result of such testing.

Beta-testing
•Testing when development and testing are
essentially completed and final bugs and
problems need to be found before release.
White Box - testing technique
• All independent paths within a module have been
exercised at least once

• Exercise all logical decisions on their true and false


sides

• Execute all loops at their boundaries and within their


operational bounds

• Exercise internal data structures to ensure their


validity
Loop Testing
This white box technique focuses on the validity
of loop constructs.

4 different classes of loops can be defined


•simple loops
•nested loops
•concatenated loops
•Unstructured loops
Other White Box Techniques
Statement Coverage
– execute all statements at least once

Decision Coverage
– execute each decision direction at least once
Condition Coverage
– execute each decision with all possible outcomes at least once

Decision / Condition Coverage


– execute all possible combinations of condition outcomes in each
decision.
Multiple condition Coverage
– Invokes each point of entry at least once.
Incremental Testing

• A disciplined method of testing the interfaces


between unit-tested programs as well as
between system components.
• Involves adding unit-testing program module
or component one by one, and testing each
result and combination.
Major Testing Types
 Stress / Load Testing
 Performance Testing
 Recovery Testing
 Conversion Testing
 Usability Testing
 Configuration Testing
Stress / Load Test

• Evaluates a system or component at or


beyond
the limits of its specified requirements.

• Determines the load under which it fails and


how.
Performance Test
– Evaluate the compliance of a system or
component with specified performance
requirements.

– Often performed using an automated test tool


to simulate large number of users.
Recovery Test
Confirms that the system recovers from
expected or unexpected events without loss
of data or functionality.
Eg.
• Shortage of disk space
• Unexpected loss of communication
• Power out conditions
Usability Test
– Testing the system for the users to learn
and use the product.

Configuration Test
– Examines an application's requirements
for pre-existing software, initial states
and configuration in order to maintain
proper functionality.
TEST CASES
Test case is defined as
• A set of test inputs, execution conditions and
expected results, developed for a particular
objective.
• Documentation specifying inputs, predicted
results and a set of execution conditions for a test
item.
• Specific inputs that will be tried and the
procedures that will be followed when the
software tested.
• Sequence of one or more subtests executed as
a sequence as the outcome and/or final state
of one subtests is the input and/or initial state
of the next.

• Specifies the pretest state of the AUT and its


environment, the test inputs or conditions.

• The expected result specifies what the AUT


should produce from the test inputs.
Test Cases

Contents
– Test plan reference id
– Test case
– Test condition
– Expected behavior
Defect Life Cycle

What is Defect?
• A defect is a variance from a desired product
attribute.

Two categories of defects are


• Variance from product specifications
• Variance from Customer/User
expectations
Variance from product specification
• Product built varies from the product specified.

Variance from Customer/User specification


• A specification by the user not in the built
product, but something not specified has been
included.
Defect categories
Wrong
The specifications have been implemented
incorrectly.

Missing
A specified requirement is not in the built product.

Extra
A requirement incorporated into the product that
was not specified.
Defect Log
1. Defect ID number
2. Descriptive defect name and type
3. Source of defect – test case or other source
4. Defect severity
5. Defect Priority
6. Defect status (e.g. New, open, fixed, closed,
reopen, reject)
7. Date and time tracking for either the most
recent status change, or for each change in the
status.
8. Detailed description, including the steps
necessary to reproduce the defect.
9. Component or program where defect was
found
10. Screen prints, logs, etc. that will aid the
developer in resolution process.
11. Stage of origination.
12. Person assigned to research and/or corrects the
defect.
Severity Vs Priority
Severity
Factor that shows how bad the defect is
and the impact it has on the product
Priority
Based upon input from users regarding
which defects are most important to
them, and be fixed first.
Severity Levels

• Critical
• Major / High
• Average / Medium
• Minor / low
• Cosmetic defects
Severity Level – Critical
• An installation process which does not load a component.
• A missing menu option.
• Security permission required to access a function under
test.
• Functionality does not permit for further testing.
• Runtime Errors like JavaScript errors etc.
• Functionality Missed out / Incorrect Implementation
(Major Deviation from Requirements).
• Performance Issues (If specified by Client).
• Browser incompatibility and Operating systems
incompatibility issues depending on the impact of error.
• Dead Links.
Severity Level – Major / High
• Reboot the system.
• The wrong field being updated.
• An updated operation that fails to complete.
• Performance Issues (If not specified by Client).
• Mandatory Validations for Mandatory Fields.
• Functionality incorrectly implemented (Minor
Deviation from Requirements).
• Images, Graphics missing which hinders functionality.
• Front End / Home Page Alignment issues.
Severity Level – Minor / Low
• Misspelled or ungrammatical text
• Inappropriate or incorrect formatting (such as text font, size,
alignment, color, etc.)
• Screen Layout Issues
• Spelling Mistakes / Grammatical Mistakes
• Documentation Errors
• Page Titles Missing
• Alt Text for Images
• Background Color for the Pages other than Home page
• Default Value missing for the fields required
• Cursor Set Focus and Tab Flow on the Page
• Images, Graphics missing, which does not, hinders functionality

You might also like