You are on page 1of 14

Testing, Software Testing

Dr. Shahid Nazir Bhatti


s.bhatti@uoh.edu.sa

University of Hail, Saudi Arabia

1
Testing
 Definition : “Testing is the process of establishing confidence that a
program or system does what it is supposed to do” (Maciaszek and Liong
2004).

 Definition : “Testing is the process of executing a program or system with


the intent of finding errors” (Maciaszek and Liong 2004).

 Definition : “Testing is defined as often as “a process of verifying that the


program works correctly” (Kaner, Falk et al. 1999).

 Definition : “Software Testing is the process of assessing the functionality


and correctness of a program through execution or analysis” (Pfleeger
1998).

(We have not really got anything else to sell but quality)

2
What is meant by Quality Testing
(Testing)

 Testing is defined as often as “a process of verifying that the program


or system works correctly”

 Hetzel: Testing is the process of establishing confidence that a


program or system does what it is supposed to do.

 Myers: Testing is the process of executing a program or system with


the intent of finding errors.

3
Software Testing
 Definition: “Testing is a process of planning, preparation and measuring
aimed at establishing the characteristics of an information system and
demonstrating the difference between the actual and the desired
status”(McDermid 1991).

 Testing always involves comparison i.e. it requires a test object and


frame of reference with which that object should comply, a test basis.
Testing gives insight into the difference between the actual and the
required status of an object.

 Software Testing means many things to many people. The main


objective of software testing is to ensure the software functions as
specified before going into production. But it also means making sure
the software is intuitive and easy to use.

4
Types of Software Testing

 There are several testing strategies in regard to the system testing


process. We have divided them into four steps (Pfleeger 1998)
(Maciaszek and Liong 2004) (Pressman 1992):

1. Function Testing
2. Performance Testing
System functional Other System Customer User
3. Acceptance Testing requirements requirements Requirements
specification
environment

4. Installation Testing

System Installatioan System in


Function Performance Acceptance
modules and Use!
Testing Testing Testing
Testing

Functioning Verified, Accepted


system Validated System System

5
Function Testing (Types of Function Testing)

System testing begins with Function testing. In this step rather


then system structure more concentration is focused on
components and their interactions. Also defined as,
“Functions are tested by feeding inputs to get outputs”.

 Unit Testing

 Integration Testing

 System Testing

 White Box Testing (Glass Box Testing)

 Black Box Testing

6
Function Testing (Types of Function Testing)
 Unit Testing
 “Testing the individual programs as they are written”
 Typically unit testing occurs with access to the code)

 Integration Testing
 Integration testing is process of verifying the interaction between system components.
 Classical integration testing strategies, such as top-down or bottom-up, are used with
traditional, hierarchically strategies are rather architecture driven, which implies
integrating the software components or subsystems based on identified functional aspects

 System Testing
 System testing is concerned with the behaviour of a whole system
 “Testing of group of programs”
 System testing should compare the system to the non-functional system
requirements such as speed, accuracy, and reliability.

7
Function Testing (Types of Function Testing)
 White Box Testing (Glass Box Testing)
 White box testing, clear box testing, glass box testing or structural testing is used in
computer programming, software engineering and software testing to check that the
outputs of a program, given certain inputs, conform to the structural specification of the
program.

 The term white box (or glass box) indicates that testing is done with knowledge of the
code used to execute certain functionality. For this reason, a programmer is usually
required to perform white box tests.
 Black Box Testing
 Black box testing or concrete box testing is used in computer programming,
software engineering and software testing to check that the outputs of a program, given
certain inputs, conform to the functional specification of the program. In electrical
hardware testing the specifications of the interface between the device and application
circuit is tested.

 The term black box indicates that the internal implementation of the program
being executed is not examined by the tester. For this reason black box testing
is not normally carried out by the programmer. In most real-world engineering
firms, one group does design work while a separate group does the testing
(Black box testing, (Wikipedia)).

8
Performance Testing (Types of Performance Testing)

 In software engineering, performance testing is testing that is performed


to determine how fast some aspect of a system performs under a
particular workload.
 Performance testing can serve different purposes. It can demonstrate that
the system meets performance criteria. It is critical to the cost
performance of a new system that performance test efforts begin at the
inception of the development project and extend through to deployment.

 Stress tests
 Volume tests
 Configuration tests
 Regression tests
 Security tests
 Maintenance tests
 Compatibility tests

9
Performance Testing (Types of Performance Testing)
 Stress tests
 Evaluate the system when stressed to its limits over a short period of time.
 If the requirements state that a system is to handle up to a specified number of devices
or users, a stress test evaluates system performance.
 This test is especially important for systems that usually operate below maximum
capacity but are severely stressed at certain times of peak demand.
 Volume tests
 This test basically related to handling of large amounts of data in the system. For
example, we look at whether data structures have been defined to be large enough to
handle all possible situations.
 In addition, we check fields, records, and files to see if their sizes can accommodate all
expected data.
 Configuration tests
 In this test we analyze the various software and hardware configurations specified in the
requirements.
 A configuration test evaluates all possible configurations to make sure that each satisfies
the requirements. For instance, we may define a minimal system to serve a single user,
and other configurations build on the minimal configuration to serve additional user.

10
Performance Testing (Types of Performance Testing)
 Regression tests
 These tests are required when the system is tested in replacing an existing system.
 The regression tests guarantee that the new system’s performance is at least as good as
that of the old. Regression tests are always used during a phased development.
 Security tests
 Security tests ensure that the security requirements are met.
 We test system characteristics related to availability, integrity, and confidentiality of
data and services.
 Maintenance tests
 These address the need for diagnostic tools and procedures to help in finding the source
of problems.
 We may be required to supply diagnostic programs, memory maps, traces of transactions, circuit
diagrams and other aids. We verify that the aids exist and that they function properly.

 Compatibility tests
 These are needed when system interfaces with other systems. We find out whether the
interface functions perform according to the requirements.
 For instance, if the system is to communicate with a large database system to retrieve
information, a compatibility test examines the speed and accuracy of data retrieval.
11
Acceptance Testing (Types of Acceptance Testing)
 It involves testing the system with data supplied by the system procurer rather
than simulated data developed as part of the testing.
 It is also defined as, “Testing to verify the working of program for
implementation or use”. .
 Acceptance testing often reveals errors and omissions in the system requirements
definition. The requirements may not reflect the actual facilities and performance
required by the user and testing may show that the system does not exhibit
expected performance or functionality

 Alpha Test
 Beta Test
 Conformance test

12
Acceptance Testing (Types of Acceptance Testing)
 Alpha Test
 The in-house test is called an alpha test; the alpha version of a product still awaits full
debugging or full implementation of all its functionality, but satisfies a majority of the
software requirements.
 It often lacks features promised in the final release, but demonstrates the feasibility and
basic structure of the software.

 Beta Test
 A beta version or beta release usually represents the first version of a computer program
that implements all features in the initial software requirements specification.
 It is likely to be unstable but useful for internal demonstrations and previews to select
customers, but not yet ready for release.

 Conformance test
 Conformance testing is aimed at verifying whether the observed behaviour of the tested
system conforms to its specification (Pressman 1992).

13
Installation Testing

Installation testing

 The final round of testing involves installing the system at user sites.
If acceptance testing has been performed on-site, installation testing
may not be needed. However, if acceptance testing conditions were
not the same as actual site conditions, additional testing is necessary.
Here we allocate files and assign access to appropriate functions and
data.

 An installation test requires working with customer to determine what


tests are needed on-site. The tests focus on two things: completeness of
the installed system and verification of any functional or non-functional
characteristics that may be affected. When the customer is satisfied with
the results, testing is complete and the system is formally delivered
(Kaner, Falk et al. 1999).

14

You might also like