Professional Documents
Culture Documents
Regression Testing: The acts of ensuring that previously tested behaviors still work as expected
after changes have been made to an application.
Software Quality: Schulmeyer and McManus have defined software quality as “the fitness for
use of the total software product”. A good quality software does exactly what it is supposed to
do and is interpreted in terms of satisfaction of the requirement specification laid down by the
user.
Quality Assurance: Software quality assurance is “a methodology that determines the extent to
which a software product is fit for use”.
The activities that are included for determining software quality are:
Auditing
Development of standards and guidelines
Production of reports
Review of quality system
Quality Factors:
Correctness: Correctness determines whether the software requirements are
appropriately met.
65
This page was created using Nitro PDF trial software.
To purchase, go to http://www.nitropdf.com/
Usability: Usability determines whether the software can be used by different categories
of users (beginners, non-technical, and experts).
Portability: Portability determines whether the software can operate in different
platforms with different hardware devices.
Maintainability: Maintainability determines the ease at which errors can be corrected
and modules can be updated.
Reusability: Reusability determines whether the modules and classes can be reused for
developing other software products.
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the
code as cleverly as possible, you are, by definition, not smart enough to debug it.”
Source code analysis is the automated testing of source code for the purpose of debugging a
computer program or application before it is distributed or sold. Source code consists of
statements created with a text editor or visual programming tool and then saved in a file.
1. Function Testing:
Test every function, one by one. Test the function thoroughly, to the extent that you can say with
confidence that the function works. White box function testing is usually called unit testing and
concentrates on the functions as you see them in the code. Black box function testing focuses on
commands and features, things the user can do or select. It’s wise to do function testing before
doing more complex tests that involve several functions.
Functional Testing is a testing technique that is used to test the features / functionality of the
system or Software, should cover all the scenarios including failure paths and boundary cases.
2. Installation Testing:
Install the software in the various ways and on the various types of systems that it can be
installed. Check which files are added or changed on disk. Does the installed software work?
What happens when you uninstall?
66
This page was created using Nitro PDF trial software.
To purchase, go to http://www.nitropdf.com/
3. Operation Testing:
4. Stress Testing:
The recovery of the system from such phase (after stress) is very critical as it is highly likely to
happen in production environment.
Monitor the system behaviour when maximum number of users logged in at the same
time.
All users performing the critical operations at the same time.
All users Accessing the same file at the same time.
Hardware issues such as database server down or some of the servers in a server park
crashed.
5. Support Testing:
67
This page was created using Nitro PDF trial software.
To purchase, go to http://www.nitropdf.com/
Testing by Users:
1. Alpha Testing:
In the second phase of alpha testing, the software is given to the software QA team for
additional testing.
Alpha testing is often performed for Commercial Off-The-Shelf software (COTS) as a form of
internal acceptance testing, before the beta testing is performed.
2. Beta Testing:
Beta testing also known as user testing takes place at the end users site by the end users to
validate the usability, functionality, compatibility, and reliability testing.
Beta testing adds value to the software development life cycle as it allows the "real" customer
an opportunity to provide inputs into the design, functionality, and usability of a product. These
inputs are not only critical to the success of the product but also an investment into future
products when the gathered data is managed effectively.
In SDLC: The above diagram explains the fitment of Beta testing in the software development
life cycle.
There are number of factors that depend on the success of beta testing:
Test Cost
Number of Test Participants
Shipping
Duration of Test
Demographic coverage
3. Pilot Testing:
Pilot testing is when a select group of end users try the system under test, before deployment, to
provide feedback about the product. Limited users use the product in pilot testing, and product
is installed at the end customer to validate once the product is ready for the production in
beta testing.
68
This page was created using Nitro PDF trial software.
To purchase, go to http://www.nitropdf.com/
4. User Acceptance Testing (UAT):
User acceptance testing, a testing methodology where the clients / end users involved in testing
the product to validate the product against their requirements. It is performed at client location
at developer's site.
For industry such as medicine or aviation industry, contract and regulatory compliance testing
and operational acceptance testing is also carried out as part of user acceptance testing. UAT is
context dependent and the UAT plans are prepared based on the requirements and NOT
mandatory to execute all kinds of user acceptance tests and even coordinated and contributed
by testing team.
User acceptance testing (UAT) consists of a process of verifying that a solution works for the
user. It is not system testing (ensuring software does not crash and meets documented
requirements), but rather ensures that the solution will work for the user (i.e., tests that the user
accepts the solution); software vendors often refer to this as "Beta testing".
This testing should be undertaken by a subject-matter expert (SME), preferably the owner or
client of the solution under test, and provide a summary of the findings for confirmation to
proceed after trial or review. In software development, UAT as one of the final stages of a
project often occurs before a client or customer accepts the new system. Users of the system
perform tests in line with what would occur in real-life scenarios.
Acceptance Criteria:
**********
69
This page was created using Nitro PDF trial software.
To purchase, go to http://www.nitropdf.com/