Types of Software Testing
Contents
System Testing
Recovery Testing
Security
Load and Stress
Usability
Localization / Globalization
Compatibility
Installation
Alpha and Beta Testing
System Testing
System testing is a series of different tests
whose primary purpose is to fully exercise the
computer based system. Although each test has
a different purpose, all work to verify that system
elements have been properly integrated and
perform allocated functions.
The following tests can be categorized
under System testing:
• Functional Testing
• Recovery Testing.
• Security Testing.
• Load & Stress Testing.
Functional Testing
Testing of all functions as per the SRS
Positive and negative scenarios
Recovery Testing
Recovery is the ability to restart operations after the
integrity of the application has been lost
The process normally involves reverting to a point
where the integrity of the system is known, and
then reprocessing transactions up until the point of
failure.
Recovery testing
What to look for:-
• Is an adequate amount of backup data
preserved after the system crashes/halts?
• Is backup data stored in a secure location?
• Are the recovery procedures documented and usable?
• Are recovery personnel assigned and trained to
administer the procedures?
•Have recovery tools been developed and made available
to these personnel?
Security Testing
Test whether all Security Procedures are correctly
and properly implemented
Security testing attempts to verify that protection
mechanisms built into a system will, in fact, protect it from
improper penetration
.
The following points need to be covered during Security
testing,
•password cracking,
•unauthorized entry into the software,
•network security
Load Testing
Testing an application under heavy loads, such as testing of
a web site under a range of loads to determine at what point
the system's response time degrades or fails.
In load testing, load is varied from a minimum (zero) to the
maximum level the system can sustain without running out
of resources or having, transactions suffer
(application-specific) excessive delay.
Stress Testing
Stress testing is subjecting a system to
an unreasonable load while denying it the resources
(e.g., RAM, disc etc.) needed to process that load.
The idea is to stress a system to the breaking point in order
to find bugs.
The system is not expected to process the overload without
adequate resources, but to behave in a decent manner
Test for Repetitive operations and Operations for extended
periods: Endurance Testing
Performance Parameters
Latency
Latency is often called Response Time
Throughput
Throughput refers to the number of client requests
processed within a certain unit of time
Utilization
Utilization refers to the usage level of different system resources,
such as the server’s CPU(s), memory, network bandwidth and so
forth.
Alpha Testing
It is carried out on the developer’s premises itself
in a controlled environment.
Generally, the Quality Assurance cell is the body
that is responsible for conducting the test.
On successful completion of this phase, the software
is ready to migrate outside the developer’s premises
for more rigorous and unplanned testing that takes place
at the next level of testing, i.e., Beta testing.
Localization Testing
Localization is the process of re-packaging and re-
engineering a software application and its associated
deliverables like :-
•on-line help
•Readme
•All software engineering documentation
•printed manuals
•packaging and marketing collateral materials
for a specific target language different from the market for
which the product was originally developed, and ensuring
that the functionality, usability and screen content is
acceptable in the local culture
Linguistic, Cosmetic and functional aspects are tested.
Compatibility Testing
Compatibility testing typically uncovers compatibility issues with operating
systems, other software applications and hardware components
For e.g. Compatibility testing verifies that a website looks and
functions the same across all supported Web browsers and
browser versions -- Netscape, Internet Explorer, AOL, and others.
Other "variables" considered besides the Web browser, especially for multimedia
and graphics-rich sites, include
•operating system
•processor type
•processor speed
•installed RAM
•video display & resolution settings.
Installation Testing
Installation testing is performed to ensure that all Install features and options
function properly and to verify that all necessary components of the application
are installed.
The Uninstallation of the product also needs to be tested to ensure that all data,
executables, and .DLLs are removed.
The uninstallation of the application is tested using DOS
command line, Add/Remove programs, and manual deletion
of files
Beta Testing
It is carried out at one or more user’s premises
using their infrastructure in an uncontrolled manner
It is the customer or his representative that conducts
the test, with/without the developer around. As and
bugs are uncovered, the developer is notified about
the same.
This phase enables the developer to modify the code
so as to alleviate any remaining bugs before the final
‘official’ release
Usability Testing
A usable product allows users to do what they
expect and should be able to do
•Quickly
•Accurately
•Enjoyably
ISO definition: The effectiveness, efficiency, and satisfaction with
which specified users achieve specified goals in
particular environments
Usability is assessed by considering human factors, overall
Aesthetics, consistency and documentation.
Usability standards
It should work!
Easy to learn & remember
It should be accurate
It should have an appropriate graphic design and
identity
If it handles sensitive data, it should be secure
It should have only few errors
It should Satisfy the user
Methods used for usability studies
Pick some important tasks and watch quietly as
people try to do them
Record behavior (take notes, tape)
Interact with participant
Questionnaire
Microsoft usability lab layout
•Record behavior (take notes, tape)
•Interact with participant
Questionnaire
Exercise
Prepare a usability check list for testing a web based application
Perform a usability testing on www.scmsgroup.org
Prepare a report and submit the same on moodle
This can be a group exercise
Points to consider in Usability
testing
Excessive Functionality
Missing Function
Undocumented features
No Cursor
Failure to show activity during long delays
Failure to check the same document being open more than
once
Spelling errors
Confusing feature names
Points to consider in Usability
testing
Dialog box layout errors
Display of system errors
Inconsistent Abbreviations
Inconsistent menu positions
Are you really, really sure?
States that appear impossible to exit
When are data saved
Misuse of colour and flashing pictures