ST Chap 2
ST Chap 2
ST Chap 2
module
to be
tested
results
software interface
engineer
local data structures
boundary conditions
independent paths
error handling paths
test cases
5
Advantages
• Reduces Defects in the Newly developed
features or reduces bugs when changing the
existing functionality.
• Reduces Cost of Testing as defects are
captured in very early phase.
• Improves design and allows better
refactoring of code.
• Unit Tests, when integrated with build gives
the quality of the build as well.
• Stubs and drivers both are dummy modules and
are only created for test purposes. Stubs are
used in top down testing approach, when one
has the major module ready to test, but the sub
modules are still not ready yet.
Test Driver
• These are DUMMY code.
• Test Drivers are used during Bottom-up
integration testing in order to simulate the
behavior of the upper level modules that are
not yet integrated.
•Alpha testing
•Beta testing
Alpha and beta testing
• Pre-Alpha:- Software is a prototype. UI (user interface)
is complete. But not all features are completed. At this
stage software is not published.
• Alpha: Software is near its development and is
internally tested for bugs/issues
• Beta: Software is stable and is released to limited user
base. The goal is to get customer feedback on the
product and make changes in software accordingly
• Release Candidate (RC): Based on the feedback of Beta
Test, you make changes to the software and want to
test out the bug fixes. At this stage, you do not want to
make radical changes in functionality but just check for
bugs. RC is also put out to the public
• Release: All works, software is released to public.
• Alpha testing takes place at the developer's site by
the internal teams, before release to external
customers.
• This testing is performed without the involvement
of the development teams.
• Alpha testing is carried out in a lab environment
and usually the testers are internal employees of
the organization.
• Process of alpha testing
• In the first phase of alpha testing, the software is
tested by in-house developers during which the
goal is to catch bugs quickly.
• In the second phase of alpha testing, the software
is given to the software QA team for additional
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.
Alpha Testing Beta Testing
Alpha testing performed by Testers who are Beta testing is performed by Clients or End
usually internal employees of the organization Users who are not employees of the
organization
Alpha Testing performed at developer's site Beta testing is performed at client location or
end user of the product
Reliability and Security Testing are not Reliability, Security, Robustness are checked
performed in-depth Alpha Testing during Beta Testing
Alpha testing involves both the white box and Beta Testing typically uses Black Box Testing
black box techniques
Alpha testing requires lab environment or Beta testing doesn't require any lab
testing environment environment or testing environment. Software
is made available to the public and is said to be
real time environment
Long execution cycle may be required for Alpha Only few weeks of execution are required for
testing Beta testing
Critical issues or fixes can be addressed by Most of the issues or feedback is collected from
developers immediately in Alpha testing Beta testing will be implemented in future
versions of the product
Alpha testing is to ensure the quality of the Beta testing also concentrates on quality of the
product before moving to Beta testing product, but gathers users input on the product
Alpha testing Beta testing
It is always performed by the developers at the It is always performed by the customers at
software development site. their own site.
Alpha Testing is not open to the market and Beta Testing is always open to the market and
public public.
It is always performed in Virtual Environment. It is performed in Real Time Environment.
It is always performed within the organization. It is always performed outside the organization.
It comes under the category of both White Box It is only a kind of Black Box Testing.
Testing and Black Box Testing.
Software applications intended for specific Software products intended for market
customer requirements
SPECIAL TESTING
• REGRESSION TESTING
• GUI TESTING
Regression testing
• Regression testing is the process
of testing changes to computer programs to make
sure that the older programming still works with
the new changes.
• Regression testing is nothing but full or partial
selection of already executed test cases which are
re-executed to ensure existing functionalities
work fine.
• This testing is done to make sure that new code
changes should not have side effects on the
existing functionalities. It ensures that old code
still works once the new code changes are done.
Need of regression testing
• Change in requirements and code is
modified according to the requirement
• New feature is added to the software
• Defect fixing
• Performance issue fix
Regression testing techniques
Regression testing techniques
• Retest All
– This is one of the methods for regression testing in which all the
tests in the existing test bucket or suite should be re-executed.
This is very expensive as it requires huge time and resources.
• Regression Test Selection
– Instead of re-executing the entire test suite, it is better to select
part of test suite to be run
– Test cases selected can be categorized as 1) Reusable Test Cases
2) Obsolete Test Cases.
– Re-usable Test cases can be used in succeeding regression cycles.
– Obsolete Test Cases can't be used in succeeding regression cycles.
• Prioritization (process of deciding the relative importance)of Test Cases
– Prioritize the test cases depending on business impact, critical &
frequently used functionalities . Selection of test cases based on
priority will greatly reduce the regression test suite.
Selecting test cases for regression testing
• Test cases which have frequent defects
• Functionalities which are more visible to the users
• Test cases which verify core features of the product
• Test cases of Functionalities which has undergone
more and recent changes
• All Integration Test Cases
• All Complex Test Cases
• Boundary value test cases
• Sample of Successful test cases
• Sample of Failure test cases
Regression Testing Tools
• Quick Test Professional (QTP):HP Quick Test
Professional is automated software designed to
automate functional and regression test cases. It
uses VbScript language for automation. It is a Data
driven , Keyword based tool.
• Rational Functional Tester (RFT):IBM's rational
functional tester is a java tool used to automate the
test cases of software applications. This is primarily
used for automating regression test cases and it also
integrates with Rational Test Manager.
• Selenium: This is an open source tool used for
automating web applications. Selenium can be used
for browser based regression testing.
GUI Testing
• GUI testing is a testing technique in which the
application's user interface is tested whether
the application performs as expected with
respect to user interface behavior.
• GUI Testing includes the application behavior
towards keyboard and mouse movements and
how different GUI objects such as toolbars,
buttons, menu bars, dialog boxes, edit fields,
lists, behavior to the user input.
GUI Testing Guidelines
• Check Screen Validations: Is the general screen
background the correct color? screen font?
edit boxes….
• Verify All Navigations
• Check usability Conditions
• Verify Data Integrity
• Verify the object states
• Verify the date Field and Numeric Field
Formats
• Can be performed manually or automated.
GUI Automation Tools
Web Application Testing
• Web Testing: Basic Steps
• If you want to make the app right, you need to go
through 6 basic steps of the testing phase. Let’s take a
look at every one of them!
• Zephyr
• Zephyr is currently the most popular web application
testing tool – and for all the right reasons. Here are its
key features:
•
• 1 click Integration
with JIRA, Confluence, Jenkins, Bamboo, and more
• Cloud, Server, and Data Center Deployment Options
• Advanced Analytics and DevOps Dashboards
• No Annual Commitment Required