Chapter 7
Chapter 7
PREPARED BY: NOR AIMUNI MD RASHID/ UiTM CAWANGAN MELAKA KAMPUS JASIN
Chapter Outline
Fundamentals of Web Testing
Terminology of Web Site Testing
Quality Characteristics
Test Objectives and Levels
Test Specifics in Web Engineering
Test Approaches and Schemes
Test Methods and Techniques
Test Driven Development (TDD)
Chapter Objectives & Outcomes
Should covers:
Check for the back button that is usually found in every Web
site. Does it lead to the correct Web page?
Can a dynamically generated Web page be reused again?
Can the Web application be used to open in different
browsers?
USABILITY TESTING
means how easy it is for the Web user to navigate through the
Web site, to adapt to it and learn its use.
Formal usability test
A formal usability test is done in a laboratory to gather both
quantitative and qualitative data.
Heuristic usability test
It involves a GUI specialist, who applies a set of guidelines to
monitor the solution’s usability and to provide comments for the
change in the design. It should cover issues like error
prevention, feedback and consistency issues, etc.
Usability Testing
STRESS TESTING
means executing the software under non-ideal conditions like lesser memory,
lesser disk space, slow CPUs, slow modems, etc.
tests whether or not the system works properly during heavy stress like heavy
fluctuating loads. It should display a proper error message.
Different issues that must be tested during stress testing are as follows:
1. How will the server respond when its capacity is increased? Will it shut
down?
2. Does the server form queues (FIFO type) of resource requests?
3. Are all transactions lost if the capacity increases?
4. Is there any effect on data integrity if the capacity increases?
5. In case of system failure, how long does it take for the system to become
online again?
6. Will Web application functions like huge computations, data streaming,
etc. be stopped if the server capacity is increased
LOAD TESTING
an opposite of stress testing.
In stress testing, the tester starves the software, while during load
testing, the tester feeds it all that it can handle.
A Web tester can operate the software with the largest possible
data files.
Check as many peripherals like printers, communication ports as
you want and test. Even Internet server can also be tested using
this method by subjecting it to thousands of simultaneous
connections.
The objective of load testing is to find out how these Web
applications and their servers will respond to different loading
conditions.
CONTINUOUS TESTING
the process of testing a Web application for a longer
period of time to locate errors, which are deeply
ramified in the Web site code.
For example, memory leaks, not released database
connections, etc.
This happens when the resources allocated are not
released properly after the task is complete. It is this
type of continuous testing only, which can ensure that
the operation is executed repeatedly over longer
periods of time.
FUNCTIONAL TESTING
Evaluation of programs based on functional requirements to
ensure the program works as it was specified to do.
Functional Testing primarily focuses on ensuring that the solution
components work as designed, and that the design sufficiently
meets the business requirements.
Functional Testing will often involve some manual steps and
stubbing of components as not all processes will be tightly linked
together.
Functional Testing is often the most complex area of Testing as it
involves staggering the test cycle inline with development as it
occurs. Typically, it is also where there highest degree of changes
occur during the testing process.
A functional test case validates the solution as defined by the
requirements specification or detailed technical specification of
the component.
FUNCTIONAL TESTING
7.8: TEST-DRIVEN DEVELOPMENT
TEST-DRIVEN DEVELOPMENT = TFA + REFACTORING
Test-first approach (TFA) means that we write a test case first, and then,
write the code as per (to satisfy) that test case. It also involves some
amount of refactoring.
Refactoring is defined as the process of making small changes in the
source code to improve it.
This approach promises a better testing as the code is written as per the
test case requirements.
It uses unit testing to test the modules so developed for every test case.
Advantages of TDD is summed up a follows:
1. Quickly add a test case.
2. Run all tests and see the new one fails.
3. Make a little change.
4. Run all tests and see them all succeed.
5. Refactor to remove duplication.