1. SOFTWARETESTING ANDSOFTWARETESTING AND
SOFTWARE DEVELOPMENTSOFTWARE DEVELOPMENT
PROCESS (SDP)PROCESS (SDP)
Aloysius Ochola
2010/HD18/431U
MAKERERE UNIVERSITY
School of Computing and InformaticsTechnology
MCN 8108MCN 8108 Software Quality Assurance & TestingSoftware Quality Assurance & Testing
MscCS Class Presentations. Nov. 2011
2. SoftwareTestingSoftwareTesting
Programs are implemented to provide a concrete
representation of an algorithm
◦ major concern is with the correctness and performance of the
implementation.
Engineers must then ensure that their software
systems achieve an appropriate level of quality
Software verification (through correctness proof)
◦ Technique to assist during the specification, design, and
implementation of a software system
Software testing (alternative for verification)
◦ Process of assessing the functionality and correctness of a
program through execution or analysis
◦ Basically a methodology to find bugs in a software with an
intent to fix them
2 Software Testing and the SDP
3. SoftwareTesting (cont)SoftwareTesting (cont)
Software testing is more than just error detection.
Looked at as operating the software under
controlled conditions to verify that it behaves as
specified to detect errors and validate that what has
been specified is what the user actually wanted.
◦ Verification - check or test items, including software,
for conformance and consistency by evaluating the
results against pre-specified requirements.
Check if we are building what the customer wants
Qn. Are we building the system right?
◦ Error Detection - Testing should intentionally attempt
to make things go wrong.
Determine if things happen when they shouldn’t or things don’t
happen when they should.
3 Software Testing and the SDP
4. SoftwareTesting (cont)SoftwareTesting (cont)
◦ Validation (system correctness) - process of
checking that what has been specified is what
the user actually wanted.
Check if we are building that system correctly
Qn. Are we building the right system?
Both verification and validation are
necessary, but different components of any
testing activity.
4 Software Testing and the SDP
5. Limits of SoftwareTestingLimits of SoftwareTesting
Can not test a program completely
◦ Completeness means that at the end of testing,
there are no undiscovered software errors.
Whether they've been fixed is a different issue,
but all problems must be known and
understood
◦ Why complete testing is impossible
The domain of possible inputs is too large to test
There are too many possible paths through the
program to test
The user interface issues (and thus the design issues)
are too complex to completely test
5 Software Testing and the SDP
6. Limits of S.T(cont…)Limits of S.T(cont…)
Testing can only prove the presence of bugs
but never their absence
You can not test the program’s response to
every possible input
◦ The number of test inputs, even for this simple a
program, is huge.
You can not test every path the program can
take
◦ As with testing input data, it is important to realize
that you have not completely tested the program
unless you have exercised every path.
◦ No such paths as safe to skip
Software Testing and the SDP6
7. Limits of S.T(cont…)Limits of S.T(cont…)
You can not find every design error
◦ A program meets the specification by doing
exactly what a specification says it should
◦ If specification goes wrong? Ex.Asks for 1x1=11
◦ Being in the specification doesn't make them right
◦ You can't completely test a program if you can't
find all of its design errors
You can not prove programs correct using
logic
◦ can only validate the internal consistency of the
program
◦ What if the specifications were wrong?
Software Testing and the SDP7
8. Limits of S.T(cont…)Limits of S.T(cont…)
You can not verify that the program works
correctly
◦ A tester is interested in verifying the program
◦ How? If the program can not be tested
completely
Software Testing and the SDP8
9. Objectives of Testing SoftwareObjectives of Testing Software
The purpose of testing is verification,
validation and error detection in order to
find problems. And the purpose of finding
those problems is to get them fixed.
Testing Software to Find Problems
◦ Executing a program with the intent of finding an
error
◦ Check if the system meets the requirements and
be executed successfully in the Intended
environment
◦ Check if the system is “ Fit for purpose”
◦ Check if system does what it is expected to do
9 Software Testing and the SDP
10. Objectives of Testing SoftwareObjectives of Testing Software
Finding Problems to Fix them
◦ One benefit of testing is that it results in
improved quality
◦ uncovering yet undiscovered errors
◦ Fixing bugs
◦ You take a destructive attitude toward the
program when you test
Software Testing and the SDP10
11. Testing Life-Cycle PhasesTesting Life-Cycle Phases
Basically 5 stages involved include
Requirements Study
◦ Understanding of the requirements is very essential for
testing a product
◦ So we set a starting point to the study of the client’s
requirements
◦ Involves the analysis and planning phase, encapsulates
Test objective and coverage
Overall schedule
Standards and Methodologies
Resources required, including necessary training
Roles and responsibilities of the team members
Tools used
Software Testing and the SDP11
12. Testing Life-cycle phasesTesting Life-cycle phases
Test Case Design and Development
◦ Identify Components
◦ Test Specification Design
◦ Test Specification Reviews
Test Execution
◦ Code Review
◦ Test execution and evaluation
◦ Performance and simulation
Test Closure
◦ Test summary report
◦ Project Documentation
Test Process Analysis
◦ Done on the reports and improving the performance of
application by implementing new technology.
Software Testing and the SDP12
13. SoftwareTesting TechniquesSoftwareTesting Techniques
Different techniques are used for software techniques.
The commonly used are the following
Black BoxTesting (functional/behavioural)
◦ No knowledge of internal design or code required.
13 Software Testing and the SDP
◦ focus on outputs in
response to
selected inputs and
execution
conditions
◦ Tests are based on
requirements and
functionality.
14. White box testingWhite box testing (Glass box)
◦ Takes into account the internal mechanism of the
system
◦ White Box is most appropriate when we must
assure that the calculations are correct.
◦ Covering every possible path through a module is
usually not practical
Goal is to ensure that all conditional statements have
been executed at least once
◦ Requirements fulfilments and interface availability
and working assurance
Grey BoxTestingGrey BoxTesting
◦ The combination of White and Black box testing
Software Testing and the SDP14
15. Stages of SoftwareTestingStages of SoftwareTesting
UnitTesting
Micro scale of testing done on particular functions or code
modules
Internal program design and code knowledge is required
Thus, done by Programmers after modules have been coded.
Objectives
◦ To test the function of a program or unit of code such as a module
◦ To test internal logic
◦ To verify internal design
◦ To test path and conditions coverage
◦ To test exception conditions & error handling
White box testing and test coverage techniques deployed
Tools guiding unit testing include; Debug, Re-structure, code
analyzers and path coverage tools
Software Testing and the SDP15
16. IntegratedTesting
Testing of combined parts of an application to determine
their functional correctness
Done to technically verify proper interfacing between modules
and within sub-systems.
Always carried out by developers after modules are unit
tested
White Box, Black box and configuration management,
techniques used.
Types of Integrated Testing
◦ Bottom - up testing (test harness)
◦ Top - down testing (stubs).
◦ Modified top - down testing - test levels independently.
◦ Big Bang
◦ Sandwich testing
Software Testing and the SDP16
17. SystemTesting
Major objectives include
◦ Verify that system components perform control
functions
◦ To perform inter-system test
◦ To perform appropriate types of tests relating to
transaction flows, installation, reliability, regression, etc
It is done by both users and the development
team after integration testing
System integrated testing is often carried out
after system testing but outside the project life
cycle
◦ Tests the co-existence of products and applications
that are required to perform together in a production-
like operational environment
Software Testing and the SDP17
18. AcceptanceTesting
This is performed by the end users
To verify that the system meets their
requirements.
Black box technique is applied
Tools used may include:
◦ Comparison
◦ Keystroke capture
◦ Playback
◦ Regression testing
Software Testing and the SDP18
19. Types of SoftwareTestingTypes of SoftwareTesting
We have come across so many types of
software testing
Two major approaches of software testing
◦ Manual testing – done by man. Tester runs the
software for errors. Consumes a lot of time
because testing has to be repeated after every
change (regression testing)
◦ Automated testing – Testing employing software
tools which execute tests without manual
intervention
performed by writing test drivers that can run
automatically and produce test results
19 Software Testing and the SDP
20. Major Types of TestingMajor Types of Testing
LoadTesting
◦ Testing an application under heavy loads
◦ Ex,Testing of a web site under a range of loads to determine,
when the system response time degraded or fails.
StressTesting
◦ Program is checked to see how well it deals with abnormal
resource demands
◦ Testing under heavy loads, heavy repetition of certain actions
or inputs
◦ Ex. input of large numerical values, large complex queries to a
database
Software Testing and the SDP20
21. PerformanceTesting
◦ Tests the run-time performance of software
◦ How well does the application comply to performance
requirements?
RecoveryTesting
◦ Checks system’s ability to recover from failures
◦ How well can it recovers from crashes, hardware failures or
other problems?
ConversionTesting
◦ Testing of programs or procedures used to convert data from
existing systems for use in replacement system
◦ Ensures that the existing data should not change,
while converting it into the new updated version of the
application
Software Testing and the SDP21
22. UsabilityTesting
◦ A method by which users of a product are asked to
perform certain tasks in an effort to measure the
product's ease-of-use, task time, and the user's
perception of the experience
◦ Testing the ease with which users can learn and use a
product
ConfigurationTesting
◦ Focuses on measuring a human-made product's capacity
to meet its intended purpose
◦ Causes the application to fail to meet its configurability
requirements so that the underlying defects can be
identified, analyzed, fixed, and prevented in the future
Software Testing and the SDP22
23. Software Development ProcessSoftware Development Process
A structure imposed on the development of a software
product
There are several models for such processes, each describing
approaches to a variety of tasks or activities that take place
during the process.
Activities involved
◦ Planning
◦ Design
◦ Coding and Documentation
◦ Testing and Fixing
◦ Post-Release Maintenance and Enhancement
Testing is involved mainly in the functional phases of the
software development process.
It is necessary that it is encapsulated in the whole process
23 Software Testing and the SDP
24. SummarySummary
Testing in itself cannot ensure the quality
of software
Only gives us a certain level of confidence
in the software
Testing though, proves that under specific
controlled conditions, the software
functioned as expected by the test cases
executed
Testing never ends as long as a software is
still in use
24 Software Testing and the SDP
25. ReferencesReferences
Manish Parashar: Software Testing, Introduction to Software
Engineering; Lecture Notes
C. Kaner , J. Falk and H.Q Nguyen:Testing Computer Software.
Different types of software retrieved Nov 2011 from
http://www.wisegeek.com/what-are-the-different-types-of-system-
software.htm
Roger S. Pressman: Software Engineering; 5th
Edition.
Ram Chillarege (1999): Software Testing Best Practices, IBM Research
Technical Report
What is Software Testing … ? Retrieved Nov. 2011 from:
http://bazman.tripod.com/what_testing.html
Antonia Bertolino (2001): SoftwareTesting
25 Software Testing and the SDP