1. Current Topics In Computer
Technology
Software Quality Assurance
Rohana K Amarakoon
B.Sc (SUSL), MBCS (UK), MBA (AUS-Reading)
2. Content
1. What is testing?
2. Quality Assurance versus Quality Control
3. Software Quality
4. The Cost of Software Quality
5. Types of Test Activities
6. Static and Dynamic Testing
7. White-box and Black-box Testing
8. Fault & Failure Model
9. Observability and Controllability
10. Verification and Validation
2PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
3. Content
11. Old : Testing at Different Levels
12. New : Test Coverage Criteria
13. New : Agile Testing
14. V Model In Testing (Software Testing Life Cycle)
15. Test First Design (TFD)
16. Continuous Integration Process Flow
17. Test Case Design Flow
Expected Outcomes
3PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
4. PST 32220 - Current Topics In Computer Technology (Lecturer :
Mr. Rohana K Amarakoon)
4
5. 1. What Is testing
ā¢ Software testing consists of the dynamic verification of the behavior of a
program on a finite set of test cases, suitably selected from the usually infinite
executions domain, against the expected behavior.
Source: SWEBOK, Chapter 5, Software Testing, 2004
5PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
6. 1. What Is testing
ā¢ Software Faults, Errors & Failures
1. Software Fault : A static defect in the software
Faults in software are design mistakes and will always exist
2. Software Failure : External, incorrect behavior with respect to the requirements or other
description of the expected behavior
ā¢ Testing & Debugging
1. Testing : Finding inputs that cause the software to fail
2. Debugging : The process of finding a fault given a failure
6PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
7. 1. What Is testing
7PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
8. 1. What Is testing
8PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
9. 2. Quality Assurance versus Quality Control
9PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
10. 3. Software Quality
ā¢ Conformance to requirements (Philip Crosby) ā
Producer view: characterized by:
1. Doing the right thing
2. Doing it the right way
3. Doing it right the first time
4. Doing it on time without exceeding cost
10PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
11. 3. Software Quality
ā¢ Fit for use (Joseph Juran & Edwards Deming) ā
Customer view: characterized by:
1. Receiving the right product for their use
2. Being satisfied that their needs have been met
3. Meeting their expectations
4. Being treated with integrity, courtesy and respect
11PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
12. 4. The Cost of Software Quality
ā¢ Prevention Costs
1. Up-front costs for benefits that will be derived later
2. Establishing procedures, training, tools and planning.
3. Spent before the product is actually built.
ā¢ Appraisal Costs
1. Review completed products against requirements.
2. Includes the cost of inspections, testing, and reviews.
3. After the product is built but before it is shipped to the user.
ā¢ Failure Costs
1. Defects that make it to the user or to production.
2. Repairing products to make them meet requirements.
3. Cost of operating faulty products and operating a Help Desk.
12PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
13. 5. Types of Test Activities
Testing can be broken up into four general types of activities
1.Test Design
ā¢ Design test values to satisfy engineering goals, these test values from domain
knowledge and intuition
ā¢ Requires knowledge of discrete math, programming and testing
ā¢ Requires knowledge of domain, UI, testing
2.Test Case Preparation
ā¢ Write test cases manually for each test scenario and keep them for future reference
ā¢ Requires good communication and language skills
ā¢ Test case values that directly satisfy one test requirement
ā¢ Expected result that will be produced when executing the test if the program
satisfies it intended behavior
13PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
14. 5. Types of Test Activities
Testing can be broken up into four general types of activities
3.Test Execution
ā¢ Run tests on the software and record the results
ā¢ Requires very little knowledge
4.Test Evaluation
ā¢ Evaluate results of testing, report to developers
ā¢ Requires domain knowledge
Each type of activity requires different skills, background knowledge, education and training. In
software testing single tester should be able to do all four activities.
14PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
15. 6. Static and Dynamic Testing
ā¢ Static Testing : Testing without executing the program
1. This include software inspections and some forms of analyses
2. Very effective at finding certain kinds of problems ā especially āpotentialā faults, that is,
problems that could lead to faults when the program is modified
ā¢ Dynamic Testing : Testing by executing the program with real inputs
15PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
16. 7. White-box and Black-box Testing
ā¢ Black-box testing :
Deriving tests from external descriptions of the software, including
specifications, requirements, and design
ā¢ White-box testing :
Deriving tests from the source code internals of the software, specifically
including branches, individual conditions, and statements
16PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
17. 7. White-box and Black-box Testing
ā¢ White-box testing : Also know as structural testing.
1. Testing based on analysis of internal logic (design, code, etc.). (But expected results still
come from requirements.)
2. White-box testing concerns techniques for designing tests; it is not a level of testing.
3. White-box testing techniques apply primarily to lower levels of testing (e.g., unit and
component).
17PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
18. 8 Fault & Failure Model
ā¢ Three conditions necessary for a failure to be observed
1. Reachability : The location or locations in the program that contain the fault must be
reached
2. Infection : The state of the program must be incorrect
3. Propagation : The infected state must propagate to cause some output of the program to
be incorrect
18PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
19. 9. Observability and Controllability
ā¢ Software Observability :
How easy it is to observe the behavior of a program in terms of its outputs, effects on the
environment and other hardware and software components
Software that affects hardware devices, databases, or remote files have low observability
ā¢ Software Controllability :
How easy it is to provide a program with the needed inputs, in terms of values, operations,
and behaviors
1. Easy to control software with inputs from keyboards
2. Inputs from hardware sensors or distributed software is harder
3. Data abstraction reduces controllability and observability
19PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
20. 10. Verification and Validation
ā¢ Verification :
Verification ensures that the system (software, hardware, documentation, and personnel)
complies with an organizationās standards and processes, relying on review or non-
executable methods.
ā¢ Validation :
Validation physically ensures that the system operates according to plan by executing the
system functions through a series of tests that can be observed and evaluated.
20PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
21. 11. Old : Testing at Different Levels
21PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
22. 11. Old : Testing at Different Levels
22PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
ā¢ Classic testing
Classic testing is a process that starts with planning the test, creation of test cases in form of written
instructions, manual execution of the tests, creation of test reports, and finally evaluation to see if
more testing is needed.
This process can be started as the project starts up, but often has no or minimal involvement with
the development process.
23. 11. Old : Testing at Different Levels
23PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
24. 11. Old : Testing at Different Levels
24PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
25. 11. Old : Testing at Different Levels
25PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
26. 11. Old : Testing at Different Levels
26PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
27. 11. Old : Testing at Different Levels
27PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
28. 12. New : Test Coverage Criteria
28PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
Now testerās job is simple : Define a model of the software, then find ways to cover it
ā¢ Test Requirements :
Specific things that must be satisfied or covered during testing
ā¢ Test Criterion :
A collection of rules and a process that define test requirements
Infeasible test requirements : test requirements that cannot be satisfied
1. No test case values exist that meet the test requirements
2. Dead code
3. Detection of infeasible test requirements is formally undecidable for most test criteria
Thus, 100% coverage is impossible in practice
29. 13. New : Agile Testing
29PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
ā¢ The delivery of useful, operational software on a regular and frequent basis is a
goal of a pure agile project.
ā¢ Output is going to be a fully-tested, usable piece of functioning software
ā¢ Then testing must be an integral part of the team that produces it
BUT on many āagileā projects we find that the necessary specialist testing is not performed within
the agile development team, but instead done as a separate activity some time after the agile
development team delivers their output.
30. 13. New : Agile Testing
30PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
31. 14. V Model In Testing (Software Testing Life
Cycle)
31PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
32. 15. Test First Design (TFD)
32PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
With TFD you write a single test and then just enough
production code to fulfill that test
ā¢ Test-Driven Development (TDD) = Refactoring + TFD
ā¢ TDD is a continuous confirmatory validation activity
ā¢ TDD is also called Behavior Driven Development (BDD)
33. 15. Test First Design (TFD)
33PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
34. 15. Test First Design (TFD)
34PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
35. 15. Test First Design (TFD)
35PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
36. 15. Test First Design (TFD)
36PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
37. 16. Continuous Integration Process Flow
37PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
38. 16. Continuous Integration Process Flow
38PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
39. 17. Test Case Design Example
39PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
40. 17. Test Case Design Example
40PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
41. 17. Test Case Design Example
41PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
42. 17. Test Case Design Example
42PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
43. Expected Outcomes
ā¢ Understand about the why we need Quality Assurance in IT
ā¢ Understand about the nature and challenges for the Quality Assurance in IT
ā¢ Get to know about the Quality Assurance methods and mechanisms
ā¢ Study about how we could use Quality Assurance to make sure our final out come
of the IT project in to perfect.
43PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)
44. Thank You!
44PST 32220 - Current Topics In Computer Technology (Lecturer : Mr. Rohana K Amarakoon)