2. Outline
• What is software testing?
• Why we need software testing?
• Types of software testing.
• Software testing lifecycle.
• Regression Testing.
• Unit Testing.
• Distributed Testing.
• Software testing in the cloud.
3. What is software testing?
• Software testing is a method of assessing the
functionality of a software program.
4. Why we need software
testing?
1. To deliver the best application we can.
2.To test compatibility.
5. Why we need software
testing?
3. To make sure that your website is always up and running.
4.To ensure that what we create does what it’s supposed to do.
9. • Test Case Development:
Software testing lifecycle(STLC)
Verification of Creation of
10. • Environment Setup:
This phase includes the setup or installation process of software and
hardware which is required for testing the application.
Software testing lifecycle(STLC)
11. • Test Execution:
In Test Execution phase the test cases are executed in the
testing environment.
Software testing lifecycle(STLC)
12. • Test Cycle Closure:
In Test Cycle phase the QA team will meet and discuss
about the testing artifacts.
Software testing lifecycle(STLC)
18. • Unit testing is supported by frameworks which are available
in different programming languages( JUnit , Google test
framework).
• The main elements of a unit framework:
Test case.
Test suite.
Test fixture.
Test result.
Unit Testing
19. Integration testing
• Integration testing is executed to establish whether the
components interact with each other consort to the
specification or not.
• Types of Integration Testing:
1)Top-Down Integration Testing
2) Bottom-Up Integration Testing
20. System testing
• System testing is the type of testing to check the
behavior of a complete and fully integrated software
product based on the software requirements
specification (SRS) document.
21. Acceptance testing
• Acceptance testing: Formal testing with respect to user
needs, requirements, and business processes
conducted to determine whether or not a system
satisfies the acceptance criteria and to enable the user,
customers or other authorized entity to determine
whether or not to accept the system.(Definition by
ISTQB)
• It is basically done by the user or customer .
22. Regression Testing
• What is Regression Testing?
It is a test that is made after any modification or update
occurs to the software to ensure that the existing
functionality is intact or not and that system update does
not re-introduce errors.
23. Regression Testing
Given program P, its modified version P’, and a test set T
that was used to previously test P, find a way to utilize T
to gain sufficient confidence in the correctness of P’
24. Regression testing is used when:
• Any new feature is added
• Any enhancement is done
• Any bug is fixed
• Any performance related issue is fixed
Regression Testing
28. Software testing in the Cloud
• Cloud testing is migrating testing to the cloud in which
reduce the execution time for regression testing.
• Benefits:
1. virtualized hardware.
2. Unlimited storage.
3. Software services that help in reducing the execution
time.
29. Cloud testing & the supported types:
Software testing in the Cloud
30. • SMART-T:
The decision of whether or not to migrate software testing
to the cloud depending on three issues:
• the business drivers outlined
• the technical factors
• the operational results
Software testing in the Cloud
32. Software testing in the Cloud
• Hadoop: is a framework free and open source written in Java to facilitate
the creation of applications distributed and scalable for applications to work
with thousands of nodes and petabytes of data.
• The cloud enables organizations to deploy
Hadoop without acquiring hardware or
expertise.
• Vendors with a cloud offer include:
Microsoft, Amazon, IBM 9 and Google.
Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software. However, there is no fixed standard STLC in the world and it basically varies
In this phase testing team goes through the Requirement document with both Functional and non-functional details in order to identify the testable requirements. In case of any confusion the QA team may setup a meeting with the clients and the stakeholders
Test Planning phase starts soon after the completion of the Requirement Analysis phase. In this phase the QA manager or QA Lead will prepare the Test Plan and Test strategy documents. As per these documents they will also come up with the testing effort estimations.
The whole intent of this discussion is to learn lessons from the bad practices. This will help in future projects.
To evaluate the test completion on the basis of Test Coverage and Software Quality
Documentation of the learning from the project
Analyzing the test results to find out the distribution of severe defects
Test Closure Report preparation
Unit testing is often called “developer’s testing” because developers are responsible for creating, maintaining and executing the test cases. Its main focus is on the implementation of the unit being tested.
Black- box testing: application interface and input/output description
White-box testing: function executed
Gray-box testing: test cases and test methods
Test case : the are a java class contains one or more test methods
Test suite:is an aggregation of one or more test cases. Multiple test cases can run as a whole through a Test suite.
Test fixture: in an enviroment for initializing variables and creating objects.
Test result: a test may pass, fail, or have an error.
Integration testing in large refers to joining all the components resulting in the complete system. It is further performed by the developer or the software Tester or by both. Example- checking that a Payroll system interacts as required with the Human Resource system.
Top-Down Integration Testing: Top Down Integration as the term suggests, starts always at the top of the program hierarchy and travels towards its branches. This can be done in either depth-first or breadth-first.
Bottom-Up Integration Testing: Bottom –Up integration as it name implies starts at the lowest level in the program structure
Reset All: this method use all the test cases
that have been Developed before and any
new Test cases that are needed Once the
program is modified.
Regression Test Selection : this method
selects part of the test suit to be run.
Prioritization of Test Cases: this method
Prioritize test cases depending on impact , critical
& frequently used functionalities.
Test revalidation refers to the task of checking which tests for P remain valid for P’. Test selection refers to the identification of tests that traverse the modified portions in P’. Test minimization refers to the removal of tests that are seemingly redundant with respect to some criteria. Test prioritization refers to the task of prioritizing tests based on certain criteria.
Why Migrate to the Cloud(Sect. 2.2)
(When to Migrate to the Cloud
(How to Migrate to the Cloud