0% found this document useful (0 votes)
62 views

Software Testing Dictionary

The document discusses different strategies for software testing: - Testing begins at the module level and works outward toward integration of the entire system. Different techniques are used at different stages. - Verification ensures software correctly implements functions, while validation ensures it meets customer requirements. - Testing is done by software developers and an independent test group. Unit testing, integration testing, and system testing are described. - Integration strategies include top-down, bottom-up, and sandwich approaches. System testing focuses on requirements, performance, stress, and quality attributes.

Uploaded by

Tulika raj
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)
62 views

Software Testing Dictionary

The document discusses different strategies for software testing: - Testing begins at the module level and works outward toward integration of the entire system. Different techniques are used at different stages. - Verification ensures software correctly implements functions, while validation ensures it meets customer requirements. - Testing is done by software developers and an independent test group. Unit testing, integration testing, and system testing are described. - Integration strategies include top-down, bottom-up, and sandwich approaches. System testing focuses on requirements, performance, stress, and quality attributes.

Uploaded by

Tulika raj
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/ 16

Chapter 17: Software Testing Strategies

2110423: Software Engineering lecture 12 1

A Generic Software Testing Templates


• Testing begins at the module level and works “outward”
toward the integration of the entire computer-based system
• Different testing techniques are appropriate at different
points in time
• Testing is conducted by the developer of the software and
an independent test group
• Testing and debugging are different activities, but
debugging must be accommodated in any testing strategy

2110423: Software Engineering lecture 12 2

1
Verification and Validation (V & V)
• Verification refers to the set of activities that ensure that
software correctly implements a specific function
• Validation refers to a different set of activities that ensure
that the software that has been built is traceable to customer
requirements
• Boehm states that
– Verification: “Are we building the product right?”
– Validation: “Are we building the right product?”

2110423: Software Engineering lecture 12 3

Organizing for Software Testing


• Software analysis and design are constructive tasks
• Software Testing can be considered to be destructive
process
• Who should do the testing?
– Software Developers: should test their own individual units
(informal)
– Independent Test Group which may be a part of the software
develop project team
2110423: Software Engineering lecture 12 4

2
Software Testing Steps

Requirement High-order
Tests
Design Integration Test

Code Unit
Test

2110423: Software Engineering lecture 12 5

Unit Testing

interface
Module local data structure
(or unit) boundary conditions
basis paths
error handling paths

Test Cases

2110423: Software Engineering lecture 12 6

3
Unit Testing Environment

interface
Driver local data structure
boundary conditions
basis paths
Module error handling paths
to be tested

stub stub stub Test Cases


Result

2110423: Software Engineering lecture 12 7

Stubs’ Complexity

Stub Stub Stub Stub


A B C D
Display Display passed Return a value Do a table
a trace message parameter from a table search for input
(or external file) parameter and
associated output
parameter

2110423: Software Engineering lecture 12 8

4
Integration Testing
• Incremental approaches:
– top-down
– bottom-up
– sandwich
• Non-Incremental
– big-bang

2110423: Software Engineering lecture 12 9

Integration Testing: Top Down Approach


• test main first - build stubs
• replace each stub with a module
• conduct the new tests and run the old tests
• a new module which has been added might be fail the
successful test cases; the fault might be in either the new
module or the interfaces between new the new module and
the rest of the product

2110423: Software Engineering lecture 12 10

5
Integration Testing: Top Down Approach
A

B C D

E F G

H I J K
L M
Breadth First: A B C D E F G H I J K L M
Depth First: A B E H C F I D G J L M K
2110423: Software Engineering lecture 12 11

Integration Testing: Bottom Up Approach


• lower level modules are combined into builds or clusters
• develop a driver for a cluster
• test the cluster
• replace drive with module higher in hierarchy

2110423: Software Engineering lecture 12 12

6
Integration Testing: Bottom-Up Approach
A

B C D

E F G

H I J K
L M
•Build 1: H E B
•Build 2: I F C D
•Build 3: L M J K G
•after that Integrate Build 1, 2, and 3 with module A

2110423: Software Engineering lecture 12 13

Sandwich Approach
• combine top down and bottom up
• consider
– A,B,C,D,G, and J are logic modules ==> top down
– E,F,H,I,K, and L are functional modules ==> bottom up
• when all modules have been appropriately integrated, the
interfaces between the 2 groups are tested one by one

2110423: Software Engineering lecture 12 14

7
Steps for Integration Testing
• All modules should be unit tested
• Choose integration testing strategy
• Do WB/BB, test input/output parameters
• Exercise all modules and all calls
• Keep records (test results, test activities, faults)

2110423: Software Engineering lecture 12 15

System Testing
• starts after integration testing
• ends when
– we have successfully determined system capabilities
– we have identified and corrected known problems
– we confidence that system is ready for acceptance

2110423: Software Engineering lecture 12 16

8
Components of System Testing
• Requirement-based functional tests
• Performance Capabilities
• Stress or Volume tests
• Security Testing
• Recovery Testing
• Quality attribute - reliability, maintainability, integrity

2110423: Software Engineering lecture 12 17

Requirement-Based System Test


• to demonstrate that all functions are available
• test cases derived from requirements
• exercise all functions, classes of output, and system status
• all valid input data is accepted
• all invalid input data is rejected without system failure
• test interfaces to other systems

2110423: Software Engineering lecture 12 18

9
Requirement-Based System Test
• look for systematic coverage: use a functional coverage
matrix
• the coverage matrix is different from the unit-testing
• we are now planning the testing for a group of programs
instead of a single one

2110423: Software Engineering lecture 12 19

Performance capability tests


• examine performance limits and show that performance
objectives are met
• evaluate parameters such as: respond time, memory
requirements, run-time requirements, and file sizes
• need source of transaction, lab, and instrumentation -
hardware or software to monitor
• look for hardware or software units that limit performance

2110423: Software Engineering lecture 12 20

01
Stress or Volume Testing
• is designed to confront the system with abnormal monitors
• drive the system to its limit and determine whether it breaks
down
• first test to specification, then break and analyze
• determine how many transactions or records can be
operationally supported
• demand resources in abnormal quality, frequency, and
volume
2110423: Software Engineering lecture 12 21

Recovery and Security Testing


• Recovery Testing:
– to confirm that the system with switchover capabilities resumes
processing without transaction compromise
– look for transaction fidelity
– can the system recover from any situations that make the system
crash
• Security Testing
– test security issue of the system
2110423: Software Engineering lecture 12 22

1
Acceptance Testing
• to provide clients/users with confidence and insure that the
software is ready to use
• begins when system test is complete
• test cases are subset of the system test
• acceptance tests are based on functionality and
performance requirements
• take typical day’s transactions, month or year of operation
2110423: Software Engineering lecture 12 23

Acceptance Testing (cont.)


• is usually complete when the client is satisfied
• is formal and held to a predefined schedule and duration
• we need to test for a replacement system
• acceptance test run for customized software product but if
we develop software for many users, alpha and beta test are
required

2110423: Software Engineering lecture 12 24

21
Requirements for Acceptance Testing
• tests must be run on operational hardware and software
• tests must stress the system significantly
• all interfaced systems must be in operation throughout the
test
• the test duration should run a full cycle
• tests should exercise the system over a full range inputs
• all major functions and interfaces should be exercised
• if running the entire test cannot be completed, a new run
should include a complete start
2110423: Software Engineering lecture 12 25

Alpha Test
• conduct at developer’s site
• invite users
• developers interact with users
• record errors, and usage problems

2110423: Software Engineering lecture 12 26

31
Beta Test
• conduct at customer site by users
• developer usually not present
• users record and report problems, developers fix them and
then release

2110423: Software Engineering lecture 12 27

Regression Test
• involves a retesting of software after changes have been
made to insure that its basic functionality has not been
affected by the changes
• insure that no new errors have been introduced
• involves rerunning old test cases
• automation is necessary since this process can be very time
consuming

2110423: Software Engineering lecture 12 28

41
Debugging
• when tests found faults or defects
• is programmer’s responsibility
• purpose of debugging
– locate fault (find causes and prevention)
– correct it
– retest to ensure that you have removed bug and not introduced
other

2110423: Software Engineering lecture 12 29

Bug Consequences
• Mild - misspell output, lack of white space
• Moderate - output may be misleading or redundant
• Annoying - users need tricks to get system to work
• Disturbing - refuses to handle legitimate transaction
• Serious - looses track of transaction and its occurrence
• Very serious - bug causes system to incorrect transaction

2110423: Software Engineering lecture 12 30

51
Bug Consequences (cont.)
• Extreme - problem limited to a few user or a few transaction
type, frequent, and arbitrary
• Intolerable -long term unrecoverable corruption of database,
system shutdown may need to occur
• Catastrophic - system fails
• Infectious - corrupts other systems, system that causes loss
of life

2110423: Software Engineering lecture 12 31

61

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy