Software Testing
Software Testing
[email protected]
METHODS OF TESTING
There are two basic methods of performing software testing:
1. Manual testing
2. Automated testing
TYPES OF TESTING
▪ Black Box Testing
White box testing is a strategy in which testing is based on the internal paths,
structure, and implementation of the software under test. Unlike its
complement, black box testing, white box testing generally requires detailed
programming skills.
TYPES OF TESTING
▪ Gray Box Testing
Gray box testing is a software testing technique that uses a combination of
black box testing and white box testing. Gray box testing is not black box
testing, because the tester does know some of the internal workings of the
software under test.
In gray box testing, the tester applies a limited number of test cases to the
internal workings of the software under test. In the remaining part of the gray
box testing, one takes a black box approach in applying inputs to the software
under test and observing the outputs.
▪ In the language of V&V, black box testing is often used for validation (Are
we building the right software?)
▪ Black box testing, also called functional testing and behavioral testing,
focuses on determining whether or not a program does what it is supposed
to do based on its functional requirements.
Pros and Cons of Black Box Testing
Pros and Cons of Black Box Testing
▪ If an input condition is Boolean, one valid and one invalid class are
defined.
Equivalence Class Partitioning Testing:
TESTING PROBLEM
The specification for the software system for validating expenses claims for
hotel accommodation includes the following requirements:
2. Any claim above $70 should be rejected & cause an error message to
display.
▪ The next step is to design the test cases by drawing up a table showing
the test case ID, a typical value drawn from the partition to be input, the
partition it tests, and the expected output.
2. Any claim above $70 should be rejected & cause an error message to
display.
Example
OMISSION TESTING
Omission Testing (also called Missing Case Testing):
▪ Studies show that many client reported defects are caused by “faults
of omission” :
❑ Example: Typing at 120 words per minute for 3 hours into a word
processor.
STRESS TESTING
▪ The tester may attempt to acquire passwords, may attack the system to
breakdown any defenses that have been constructed, may overwhelm the
system thereby denying service to others, may purposely cause system
errors, may browse through insecure data.
INTREGATION TESTING
▪ Integration Testing is a systematic technique for constructing a program
structure while at the same time conducting tests to uncovers errors
associated with interfacing.
❑ INCREMENTAL INTEGRATION
INTREGATION TESTING
BIG BANG INTEGRATION
❑ BOTTOM UP INTEGRATION
INTREGATION TESTING
TOP DOWN INTEGRATION
1. The main control module is available and stubs are substituted for all
components directly subordinate to the main module.
5. Regression testing may be conducted to make sure that new errors have
not been introduced.
INTREGATION TESTING
4. Drivers are removed and clusters are combined moving upward in the
program structure.
INTREGATION TESTING
BOTTOM UP INTEGRATION
DOCUMENTATION TESTING
▪ The Testing Group tests that all Help files appear on the screen
when selected.
▪ Smoke tests are designed to confirm that changes in the code function as
expected and do not destabilize an entire build.
USABILITY TESTING
▪ Exposes operations that are difficult, awkward, or inconvenient for users.
▪ Clearly this is subjective and will depend on the targeted end user
▪ Re-executes some or all existing test cases to exercise code that was
tested in a previous release or previous test cycle.
❑ The probability of changing the program correctly on the first try is only
50% if the change involves 10 or fewer lines of code.
❑ The probability of changing the program correctly on the first try is only
20% if the change involves around 50 lines of code.
Progressive VS Regressive Testing
▪ All black box test design methods apply to both progressive and
regressive testing. Eventually, all your “progressive” tests should
become “regression” tests.
▪ Recovery testing is basically done in order to check how fast and better the
application can recover against any type of crash or hardware failure or
other catastrophic problems etc.
❑ The transitions from one state to another (not all transitions are
allowed);
❑ The actions that result from a transition (an error message, or being
given your cash).
STATE TRANSITION TESTING
▪ Acceptance Testing
▪ Alpha Testing
▪ Beta Testing
ACCEPTANCE TESTING
▪It is virtually impossible for a software developer to foresee how the
customer will really use a program
▪When custom software is built for one customer, a series of acceptance tests
are conducted to enable the customer to validate all requirements
▪An acceptance test can range from an informal test drive to a planned and
systematically executed series of tests
ACCEPTANCE TESTING
▪Most software product builders use a process called alpha and beta
testing to uncover errors
ALPHA TESTING
▪ In this type of testing, the users are invited at the development center
where they use the application and the developers note every particular
input or action carried out by the user. Any type of abnormal behavior of the
system is noted.