You are on page 1of 28

Software Testing

Session 1
The fundamentals of testing
Lesson Objectives

Get to know:
- What is testing?
- Why is testing necessary?
- What is a bug?
- Seven testing principles
- Fundamental test process
- The psychology of testing
- Responsibilities of software tester
Why is testing necessary?
• 2019, Problems arose in the manufacture of the
Airbus A380 aircraft: it has been estimated lost
$6.1 billion include direct and indirect cost.
• Security breaches at the US military resulted in
the payment details of many personnel being
compromised, including names, address, email
and bank details.
• 1998, NASA’s Mars Climate Orbiter was
ultimately lost in space, it is lost $125 million.
• …
Why is testing necessary?
(cont.)
When software failure:
• Loss of money
• Loss of time
• Loss of business reputation
• Injury
• Death

MORE CAREFUL TESTING WOULD SAVE MONEY (AND LIVES)


Keep software under control
• Exhaustive testing of complex systems is not
possible
– In fact, we can’t test all case the system. We only
select some sample case to test.
• Testing and risk
– Because we can’t test all case so, we can’t make
sure the software is zero bug. So take a risk for
software is necessary.
Keep software under control
• Testing and quality
– Test and quality is dependent with together in
resource triangle as below. So you must decide
how much to do test is enough.
Keep software under control
• Deciding when ‘enough is enough’
– We can’t test all case and the quality is
dependent on a resource triangle so you must
deciding when stop to test.
– The most important aspect of achieving an
acceptable result from a finite and limited
amount of testing is prioritization.
– The next most important aspect is setting criteria
that will give you an objective test of whether it is
safe to stop testing.
What is software testing?
• The goal of a software testing is to find
bugs
– find them as early as possible
– and make sure they get fixed
What testing does?
• To examine work products.
• To check if all the requirements have been
satisfied.
• To see whether the item under test is complete,
and work as user and other stakeholders expect.
• To instill confidence in the quality of the item
under test.
• To prevent defects – sometime you might not
catch them but you prevent them occurs.
What testing does? (cont.)
• To find failures and defects.
• To give sufficient information to enable decision
makers make decision.
• To reduce the level of risk in adequate software
quality.
• To comply with contractual, legal or regulatory
requirements or standards.
Testing and Debugging
• Testing is try to find the bugs.
• Debugging is try to fix the bugs.
What is a Bug?
• What is bug?
– Is what don’t operate as intended.
• In software testing, failures are called:
– Bug
– Defect
– Failure
– Error
– Problem
– Issue
– ...
Why do Bugs occurs?
• Specification document
– Is not written
– Is not thorough
– Is changed
– Is not communicated well
to dev team
• Design
– Is rushed, not thorough
– Is changed
– Is not well communicated
• Code
– Software complexity
– Schedule pressure
– Plain dumb mistakes
– Poor document
• Other:
– Catch-all
The Cost of Bugs
Testing and Quality Assurance
• Quality Management = Quality Control
(QC)+ Quality Assurance (QA).
• QA focus on process, QC focus on
product, project.
• Testing is a part of quality controls.
Static testing and dynamic testing
• Static testing is testing when the code is
not exercised.
• Dynamic testing is the kind that exercises
the program under test with some test
data.
• Software testing includes both static
testing and dynamic testing.
General testing principles
• Testing show the presence of bugs
• Exhaustive testing is impossible
• Early testing
• Defect cluster together
• Be aware of the pesticide paradox
• Testing is context dependent
• Absence of errors fallacy
Test process
Test planning and control

Test analysis and design

Test implementation and execution

Evaluating exit criteria and reporting

Test closure activities


Iteration of activities
Test planning and control

Test analysis and design

Test implementation and execution

Evaluating exit criteria and reporting

Test closure activities


Test planning and control
• Planning is determining what is going to
be tested, and how this will be achieved.
• It is where we draw a map; how activities
will be done; and who will do them.
• Test planning is also where we define the
test completion criteria. Completion criteria
are how we know when testing is finished.
Test analysis and design
• Analysis and design are concerned with the fine
detail of what to test (test conditions), and how
to combine test conditions into test cases.
• The analysis and design stage is the bridge
between planning and test execution. It is
looking backward to the planning (schedules,
people, what is going to be tested) and forward
to the execution activity (test expected results,
what environment will be needed).
Test implementation and
execution
• The test implementation and execution activity
involves running tests, and this will include
where necessary any set-up/tear-down activities
for the testing.
• Test implementation and execution is where the
most visible test activities are Undertaken.
Evaluating exit criteria and
reporting
• Remember that exit criteria were defined
during test planning and before test
execution started. At the end of test
execution, the test manager checks to see
if these have been met.
Test closure activities
• Test closure activities concentrate on
making sure that everything is tidied away,
reports written, defects closed, and those
defects deferred for another phase clearly
seen to be as such.
The psychology of testing
• Test independence
• Early test
• Need to focus on good communication
between tester and developer
Responsibilities of
software tester
- Analyzing the requirements
- Participating in preparing test plans
- Preparing test scenarios
- Preparing test cases for module, integration and system
testing
- Preparing test data
- Executing test cases
- Tracking test results
- Reporting bugs
Responsibilities of
software tester (cont.)
- Communicating to test lead, development teams,
client…
- Preparing lesson learnt documents from the previous
project testing experience
- Preparing suggestion documents to improve the quality
of the application

We will cover all these topic in the later of this module.


Q&A

You might also like