TY.bsc(C.S)Software Testing - Notes
TY.bsc(C.S)Software Testing - Notes
▪ What is testing
Testing is executing a system in order to identify any errors or
missing requirements in contrary to the actual requirements.
▪ Software Testing:
A systematic process of executing a program or system with the
intent of finding errors.
-Pooja Khokale-
Software Testing
Immediate Goals
▪ Bug discovery
▪ Bug prevention
Long-term Goals
▪ Reliability
▪ Quality
Software
Qq testing ▪ Customer satisfaction
▪ Risk management
Post-Implementation Goals
▪ Reduced maintenance
▪ Improved testing
process
1. Immediate Goals:
Also called as short-term goals.
• Bug discovery:
To find errors at any stage of software development.
• Bug prevention:
Consequent action of bug discovery.
-Pooja Khokale-
Software Testing
• Quality:
Enhance quality of software product.
• Customer satisfaction:
Verifies customer satisfaction for developer software
product.
• Reliability:
To gain confidence of customers by providing them a
quality product.
• Risk management:
To manage risk in different situation.
2. Integration testing:
To show that even though the components were individually
satisfactory.
3. System testing:
Is aimed at revealing bugs that cannot be attributed to
components. It includes performance, security,
accountability, configuration sensitivity, startup and recovery.
-Pooja Khokale-
Software Testing
▪ Fault:
Condition that leads to malfunctioning of the software.
Ex; Program does not work.
▪ Failure:
The state in which software is unable to perform a function
according to user requirements.
Ex; Software installation fails.
▪ Principals of testing:
1. Testing shows presence of defects
2. Exhaustive testing is impossible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence of errors fallacy
8. Tests should be as per client requirements
9. Define the expected output
10. Inspect output of each test completely
• Debugging:
-Pooja Khokale-
Software Testing
Test
Cases Execution of cases
Additional tests
Results
Suspected causes
Regression tests
Corrections Identified Causes Debugging
▪ Debugging Strategies:
1. Backtracking:
- It is an effective debugging technique commonly used
in small programs.
- In backtracking debugging technique, the programmer
backtracks from the statement which gives the error
-Pooja Khokale-
Software Testing
symptoms for the first time and from this place, all the
statements are checked for possible cause of errors.
- Backtracking is done by analysing the appearance of
the error, determining the location of the symptoms.
2. Cause elimination:
- This is manifested by induction and introduces the
concept of binary partitioning.
- In this strategy a list of all possible causes is developed
and tests are conducted to eliminate each.
3. Program slicing:
- It is similar to backtracking; the search space is reduced
by defining slices.
- A slice of program for a particular variable at a
particular statement is the set of source line preceding
this statement that can influence the value of that
variable.
4. Brute-force debugging:
- In this strategy, the programmer appends the print or
write statement which, when executed, displays the
value of a variable.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
▪ Testing Metrics:
• Metrics can be defined as, “quantitative measure that
allow software engineers to identify and improve the
quality of software process, project and product.
• Software testing metric is defined as, “a quantitative
measure that helps to estimate the progress and quality
of a software testing process”.
- It can be classified into:
1. Product metrics:
Used to measure characteristics of the product such
as size, complexity, design feature, performance and
quality level
2. Process metrics:
Used to measure characteristics of the methods,
techniques and tools employed in developing,
implementing and maintaining the software product
or system.
-Pooja Khokale-
Software Testing
• Characteristics:
1. Economical
2. Quantitative
3. Language Independent
4. Understandable
5. Applicability
6. Repeatable
▪ Measurement:
- It is a quantitative indication of extent, amount,
dimension, capacity or size of some attribute of a
software product or software process.
- Two categories namely: 1) Direct measures
2) Indirect measures
- Need of software measurement:
Software Understanding
Software
metrics engineeri
ng
Control
processes
Improvement
-Pooja Khokale-
Software Testing
- Advantages of verification:
1) Reduces the chance of failure in the software
application.
2) Helps in lowering down the count of defect in later
stages of software development.
3) Helps in building the software product as per the
customer specification, needs.
4) Can reduce the cost of finding and fixing defects.
5) Can locate the defect easily as the work product
under review.
- Disadvantages of verification:
1) Actual working software may not be accessed by
verification.
2) Cannot show whether the developed software is
correct or not.
-Pooja Khokale-
Software Testing
2. Validation:
- It is the process of evaluating as system during or at the
end of the development process to determine whether
it satisfies specified requirements.
- Involves checking that the program as implemented
meets the expectations of the customer.
- Also called as dynamic testing.
- Levels of validation:
1) Unit testing:
Procedure used to validate that individual unit of
source code is working properly.
2) Integration testing:
Starts at module level when various modules are
integrated with each other to form system.
3) System testing:
Conducted on a complete, integrated system to
evaluate the system’s compliance with its specified
requirements.
4) Acceptance testing:
The final stage of testing before the system is
accepted for operational use.
- Advantages of validation:
1) Helps in building the right product as per the
customer requirements.
2) During verification if some defects cannot be found
or missed then during validation process it can be
caught as failure.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
Requirement
analysis
Test planning
Test case
development
Environment setup
Test execution
1) Requirement analysis:
- Identify test environment details where testing is
supposed to be carry out.
- Identify the test types of tests to be performed gather
details about testing priority.
- Prepare requirement traceability matrix which maps
and traces user requirement with test cases.
2) Test planning:
- Preparation of plan/strategy for various types of
testing.
- Test tool selection.
- Test effort estimation.
-Pooja Khokale-
Software Testing
4) Environment setup:
- Understand the required architecture environment
setup and prepare hardware and software list for the
same.
- Setup test environment and test data and carry out
some test for the same.
5) Test execution:
- Execute test as per the plan
- Document the test result and log defects for failed
cases
- Map defects to test cases in RTM
- Then retest the defect fixes and track defect to closure
-Pooja Khokale-
Software Testing
▪ Testing strategies:
- A test strategy is an outline that describes the
testing approach for the developed module.
- It integrates software testcase design technique
into a well-planned series of steps that result in a
successful construction of software.
- Testing strategy must incorporate test planning,
test case designing, test execution and resultant
data collection and evaluation.
▪ Characteristics:
1. Testing begins at the component level and works
“outward” toward the integration of an entire
computer-based system.
2. Formal technical are mandatory through which no of
errors will be eliminated before testing commences.
3. Testing is conducted by developer and for huge
projects it is conducted by independent test groups.
4. Testing and debugging are different activities but
debugging must be accommodated in any testing
strategy.
5. Different testing techniques are appropriate at
different points of time.
-Pooja Khokale-
Software Testing
▪ Testability:
It is a degree to which a program facilitates the
establishment of test criteria and execution of test to
determine whether the criteria have been meet or not.
• Characteristics:
1. Operability
2. Controllability
3. Observability
4. Simplicity
5. Understandability
6. Stability
7. Decomposability
▪ Test characteristics:
1. Neither too simple nor too complex
2. Has high probability of finding error
3. Best of breed
4. Should not be redundant
-Pooja Khokale-
Software Testing
Where,
1. Test case id: Unique Id for each test case.
2. Test priority (Low/Medium/High): For business rules and
functional test cases can be medium or higher where as minor
user interface cases can be low priority.
3. Module name: Mention name of main module or sub module.
4. Test title: Test case title. For example, verify login page with
valid username and password.
5. Description: Describe test objective in brief.
6. Pre-condition: List all pre-conditions in order to successfully
execute this test case.
7. Test designed by: Name of tester.
8. Test designed date: Date when test executed
9. Test executed by: Name of tester who executed this test. To be
filled after test execution.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
Executable Output
Input
Program
- Advantages:
1. Helps in removing the extra lines of code, which can
bring in hidden defects.
2. Helps in optimizing the code.
3. Testing can be commenced at an earlier stage.
4. Maximum coverage is attained during test scenario
writing.
- Disadvantages:
1. It is nearly impossible to look into every bit of code
to find out hidden errors, which may create
problems.
2. Test can be very complex, highly skilled resources
are required.
3. Difficult to maintain white-box testing as the use of
specialized tools like code analysers and debugging
tools are required.
-Pooja Khokale-
Software Testing
2) Compound logic:
• A compound condition occurs when one or
more Boolean operators such as logical OR,
AND, NAND, NOR, etc are present in
conditional statements.
4) Cyclomatic complexity:
• It is a software metric that provides a
quantitative measure of the logical complexity
of a program.
• It measures the amount of decision logic in the
program module.
-Pooja Khokale-
Software Testing
5) Graph matrix:
• It is defined as a data structure used to
represent the flow graph of a program in a
tabular form.
• It is a square matrix whose size is equal to the
number of nodes on the flow graph.
• It is a data structure that enables to develop a
software tool that helps n carrying out basis
path testing.
• It is used to evaluate the control structures
present in the program during testing.
-Pooja Khokale-
Software Testing
3. Loop Testing:
• It is a white box testing technique. Loop testing
is used to check the validity of loops present in
the program modules.
• Loops are the cornerstone for the vast majority
of all algorithms implemented in software.
• Loop testing focuses exclusively on the validity
of loop constructs.
• Types of loops: -
1) Simple loop
2) Nested loop
3) Concatenated loop
4) Unstructured loop
-Pooja Khokale-
Software Testing
- Advantages:
1. Efficient when used on large system.
2. Tester can be non-technical.
3. No need for the tester to have detailed functional
knowledge of system.
4. Helps to identify vagueness and contradictions in
functional specifications.
5. Can be designed as soon as the functional
specifications are complete.
- Disadvantages:
1. Cases in black-box testing are challenging to design
without having clear functional specifications.
2. It is difficult to identify tricky inputs if the test cases
are not developed based on specifications.
3. It is difficult to identify all possible inputs in limited
testing time.
4. There are chances of having unidentified paths
during the testing process.
-Pooja Khokale-
Software Testing
▪ Equivalence Partitioning:
- It is a software testing technique to minimize number
of permutation and combination of input data.
- In this data is selected in such a way that it gives as
many different outputs as possible with the minimal set
of data.
- Equivalence partitioning testing divides the input
domain of a program into classes of data from which
test cases can be derived.
- The goal of equivalence partitioning is to reduce the set
of possible test cases into a smaller, manageable set
that still adequately tests the software.
- The main advantage of this technique is that testing
efforts are minimized and at the same time coverage is
also ensured.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
Acceptance Testing
System Testing
Integration Testing
Unit Testing
1. Unit testing:
- It is a level of the software testing process where
individual units of a software are tested.
- The purpose of unit testing is to validate that each unit
of the software performs as designed.
2. Integration testing:
- In this all unit tested modules are integrated and tested
for compatibility.
- It is a level of a software testing process where
individual units are combined and tested aa a group.
The purpose is to expose faults in the interaction
between integrated units.
-Pooja Khokale-
Software Testing
3. System testing:
- It is a level of the software testing process where a
complete integrated system is tested.
- The purpose is to evaluate the system’s compliance
with the specified requirements.
4. Acceptance testing:
- It is a level of software testing process where a system
is tested for acceptability.
- The purpose is to evaluate the system’s compliance
with the business requirements and assess whether it
is acceptable for delivery.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
Interface
Drivers
Local data structures
Boundary conditions
Independent paths
Error handling paths
Modules or
units to be
tested
Stub Stub
Test
Cases
Results
-Pooja Khokale-
Software Testing
- Advantages:
1. May reduce uncertainty in the units themselves.
2. Find problems early in the software development
cycle.
3. Allows the software programmer to re-factor code at
a later date.
- Disadvantage:
1. Requires initial time to develop them.
-Pooja Khokale-
Software Testing
2) Integration Testing:
- Integration testing is a level of software testing where
individual units are combined and tested as a group.
- Purpose of this level testing is to expose faults in the
interaction between integrated units.
- It is considered as structured testing.
- It mainly focuses on I/O protocols, parameters passing
between different unit’s modules.
- The goal is to take unit tested components and build a
program structure that has been dictated by design.
- Advantages:
1. Efficient and convenient for small systems.
2. Easy to fix the error when compare to system
testing.
3. Systematic technique of integrating system.
4. Interfacing errors between different modules.
5. Functionality of the system is enhanced before the
product is developed.
- Disadvantage:
Time used for developing, integrating, testing of all
the modules is significance which leads to delay in
testing execution time.
-Pooja Khokale-
Software Testing
▪ System testing:
- It is a level of testing where integrated and completed
software is validated to verify the systems functionality
and reliability in compliance to the specified
requirements.
- It represents the final testing done on a software
system before it is delivered to the customer.
- There are several types of system testing that are
commonly used:
1. Regression Testing
2. Usability Testing
3. Load Testing
4. Hardware/Software Testing
5. Migration Testing
6. Function Testing
7. Recovery Testing
- Advantages:
1. Help clearly specify how the application should
behave.
2. Can be run automatically.
3. Test that the application is working correctly from
the point of view of a user.
4. Test that changes made to one part of the
application haven’t created a bug somewhere else.
5. Helps in identifying and fixing of bugs before the
code is pushed to production.
- Disadvantages:
1. Process could involve redundant testing
2. Possibility of missing out on the logical errors of the
software.
-Pooja Khokale-
Software Testing
▪ Acceptance Testing:
- Acceptance testing is, “a level of the software testing
process where a system is tested for acceptability.
- The main purpose of acceptance testing is to evaluate
the system’s compliance with the organizational
requirements and verify if it has met the required
criteria for delivery to end user.
- It is designed to:
1. Determine whether the software is fit for the user.
2. Making confident about the software product.
3. Determine whether the software product satisfies its
acceptance testing.
- Advantages:
1. It is easier and simpler to run.
2. Enables both users and software developers to
identify and resolve problems in software.
3. Determines the readiness of software to perform
operations.
4. Decrease the possibility of software failure to a large
extent.
- Disadvantages:
1. User may provide feedback without having proper
knowledge of software.
• Performance Testing:
- It is form of software testing that focuses on how a
system running the system performs under a particular
load.
- Used to check the software system is working under
the heavy load.
- There are various types of this:
1. Load Testing
2. Stress Testing
-Pooja Khokale-
Software Testing
3. Spike Testing
4. Configuration Testing
5. Soak Testing
- Advantages:
Compare different systems to determine which
system performs better.
• Regression Testing:
- It is a form verification test because it will help us to
determine if the software works as expected even after
undergoing critical modifications to its architecture.
- The purpose of regression testing is to ensure that
changes made to software, such as adding new
features or modifying existing features.
- Advantages:
1. Ensures the software is working very well.
2. Ensures that the unchanged parts of software
system work properly.
3. Ensures that all errors that have occurred in
software system due to modifications are corrected.
• Load Testing:
- When a software system is tested with a load that
causes it to allocate its resource in maximum counts it
is called as load testing.
- Used to examine the behaviour of software system and
is a non-functional testing technique.
- The goal of load testing is to define the maximum
amount of work a system can handle without
significant performance degradation.
-Pooja Khokale-
Software Testing
- Advantages:
1. Prevent software failure.
2. Allows having an idea of scalability.
3. Expose the bugs.
• Stress Testing:
- It is software testing technique designed to determine
the behaviour of the software under abnormal
situations.
- Executes a system in a manner that demands resources
in abnormal quantity, frequency or volume.
- The goal is to ensure the software do not crash in
conditions of insufficient computational resources.
- It mainly consists critical software but it can also be
used for all types of software applications.
- Advantages:
1. Indicates expected behaviour of a system.
2. Executes a system till it fails.
3. Determines the part of a system that leads to errors.
4. Determines the amount of load that causes a system
to fail.
5. Evaluates a system at or beyond its specified limits
of performance.
-Pooja Khokale-
Software Testing
- Disadvantages:
1. Tester should have enough scripting knowledge
▪ Alpha Testing:
- Used to test software which are based on feedback
from the real customers using real products in real
environment.
- Features:
1. Outside users are not involved while testing.
2. White box and black box practices are used.
3. Developers are involved.
- Accesses the performance of the software in the
environment in which it is developed.
- Advantages:
1. Provides better view about the reliability of the
software.
2. Helps simulates real time user behaviour and
environment.
3. Detect many serious errors.
4. Ability to provide early detection of errors with
respect to design and functionality.
▪ Beta Testing:
- Used to describe the external testing process in which
the software is sent out to a select group of potential
customers who use it in a real-world environment.
- Usually occurs toward the end of the software product
development cycle.
- It is ‘live’ software testing technique, conducted in an
environment, which is not controlled by the developer.
- Performed to know whether the developed software
satisfies user requirements.
-Pooja Khokale-
Software Testing
- Advantages:
-Pooja Khokale-
Software Testing
▪ Usability Testing:
- It is a software testing technique used in user-centred
interaction design to evaluate a software product by
testing it on users.
- These testing are done by various groups of users.
- It is a non-functional testing technique that is a
measure of how easily the system can be used by the
end users.
- The purpose of executing the usability is to check that
the application should be easy to use for the end user.
- Characteristics:
1. Tests the product from the user’s point of view.
2. Checking product to see if it is easy to use for the
various categories of users.
3. A process to identify discrepancies between the user
interface of the product and the user requirements.
- Process:
Plan
-Pooja Khokale-
Software Testing
- Steps in usability:
1. Planning:
Team makes test plan and generates some document
samples that help the testing team complete the
usability testing tasks.
2. Team Recruiting:
We will move to the next step of usability testing,
which team is recruiting.
3. Test Execution:
The test engineers execute the usability testing and
implement their assigned responsibilities.
4. Test Result Documentation:
It includes the results based on the test execution step
and then proceeds for further analysis.
5. Data Analysis:
The response or the feedback is obtained from usability
testing evaluation in the data analysis phase. And the
outcomes are classified and the patterns are
acknowledged.
- Advantages:
1. Direct feedback from the potential user helps in
creating a product that meets user’s expectations.
2. Increased user satisfaction with the software
product.
3. Issues are identified before the actual release of the
software product.
4. Enhanced user satisfaction with the software
product ensures to deliver a good quality product.
5. To make the software more efficient and applicable.
- Disadvantages:
1. Requires many resources to establish a usability test.
-Pooja Khokale-
Software Testing
▪ Accessibility Testing:
- It is a subset of usability and should be included as part
of usability test planning.
- It is widely used to check the application for disabled
persons. (means for old age, blindness, mental
disability)
▪ Configuration Testing:
- It is the process of testing the system with each one of
the supported software and hardware configurations.
- It is not only restricted to software but also applicable
for hardware.
- In this testing the software application is tested with
multiple combinations of software and hardware in
order to evaluate the functional requirements.
▪ Compatibility Testing:
- Helps to determine if a software product will function
correctly with other hardware/software in the intended
environment.
- Also determine if the program can operate on various
hardware, operating systems, applications, network
setting or mobile devices.
- It is non-functional software testing technique.
- It is conducted on the application to evaluate the
application’s compatibility with the computing
environment.
- Categories:
1. Hardware compatibility testing:
-Pooja Khokale-
Software Testing
- Advantages:
1. Enhances software development process.
2. Capable of timely identification of the defects in
mobile and Web apps even in the difficult areas.
3. Ensures to meet the fundamental expectation of the
end users.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
▪ Introduction:
- Web applications are the software applications that
reside on web severs and are accessed using web
browser.
- These are developed using popular technologies such
as HTML, CSS, JavaScript.
- The purpose is to efficiently communicating and
exchanging information with its users while being
compliant with a variety of browsers.
-Pooja Khokale-
Software Testing
5. Security Testing:
Performed to verify if the application is secured on web as data
theft and unauthorized access.
▪ Dimensions Of Quality:
- A quality software product that meets the expectations
of the customers and end users.
1. Structure: Is accessed to ensure that it properly
delivers WebApp content and function.
2. Content: Is evaluated both a syntactic and semantic
level.
3. Interoperability: Is tested to ensure that the
WebApp properly interfaces with the other
applications or databases.
4. Function: Is tested to uncover errors that indicate
lack of conformance to customer requirements.
5. Usability: Is tested to ensure that each category of
user is supported by the interface.
6. Compatibility: Is tested by executing the WebApp in
a variety of different host configurations on both the
client and server side.
7. Security: Is tested by assessing potential
vulnerabilities and attempting to exploit each.
8. Navigability: Is tested to ensure that all navigation
syntax and semantics are exercised to uncover any
navigation errors.
9. Performance: Is tested under a variety of operating
conditions, configurations and loading to ensure that
the system is responsive to user inter-action.
-Pooja Khokale-
Software Testing
▪ Test Planning:
- A test plan in Web testing provides a road map so that
the websites can be evaluated through requirements.
- A test plan is a document that guides the whole
process of testing. Test planning helps to estimate the
time schedule and efforts needed for testing.
- Test planning also establishes a test environment,
getting test personnel and test process before any
testing can actually starts.
- It also helps us determine the effort needed to validate
the quality of the application under test.
- The test plan serves as a blueprint to conduct software
testing activities as a defined process.
-Pooja Khokale-
Software Testing
Interface
Testing
Asthetic
Design Testing
Content Design
testing
Component Testing
Component Design Testing
Configuration
Performance
Security Testing
-Pooja Khokale-
Software Testing
1. Content Testing:
- Content is WebApp should be meaningful. Web content
can be used in the form of text, images, videos, articles,
animations blogs and so on.
- Errors in WebApp content can be as significant as
incorrect information.
- Content testing attempts to uncover these errors and
many other problems before the user encounters
them.
- Content testing combines both reviews and the
generation of executable test cases.
1) Review: It is applied to uncover semantic errors in
content.
2) Executable Testing: It is used to uncover content
errors that can be traced to dynamically derived
content that is driven by data acquired from one or
more databases.
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
4. Navigation Testing:
- Navigation tests analyse how users navigate through
the web application, given a specific task or goal.
- This navigation process is predictable in the sense that
every visitor has a set of objectives when he arrives.
- At the same time, the navigation process can be
unpredictable because the visitor, influenced by
something he sees or learns, may choose a path or
initiate an action that is not typical for the original
objective.
5. Configuration Testing:
- It is the process of checking the operation of the
WebApp with various types of hardware and software
platforms and their different settings.
- Configuration instability and variability are the two
important factors that make WebApp testing a
challenge.
- In some cases, the configuration for a given user can
change on a regular basis.
- The task of configuration testing is not to exercise or
evaluate every possible client-side configuration.
- It is to test a set of probable client and server
configurations to ensure that the user experience will
be the same on all of them and to isolate errors that
may be specific to a particular configuration.
-Pooja Khokale-
Software Testing
6. Security Testing:
- Security testing is performed to verify if the web
application is secured on web as data theft and
unauthorized access are more common issues.
- Security tests are designed to probe vulnerabilities of
the client-side environment.
- Security tests should be designed to probe each of
these security technologies in an effort to uncover
security holes.
- The design of security tests requires in-depth
knowledge of the inner workings of each security
element.
7. Performance Testing:
- It is performed to verify the server response time and
throughput under various load conditions.
- It is used to uncover performance problems that can
result from a lack of server resources and other
hardware or software issues that can lead to degraded
client-server performance.
-Pooja Khokale-
Software Testing
▪ Agile Testing:
- Agile is an iterative development methodology, where
both development and testing activities are concurrent.
- Agile development promotes iterative and incremental
development with significant testing i.e. customer
centric and welcomes change during the process.
- Agile methodology is a collection of values, principles
and practices that incorporates iterative development,
test and feedback into a new style of software
application development.
- Agile testing involves all members of the project team,
with special expertise contributed by testers.
- A software testing practice that follows the principles
of agile software development is called Agile Testing.
-Pooja Khokale-
Software Testing
2. Exploratory Testing:
- It can help software testers to keep up with the rapid
development pace of agile software projects.
- A tester does every hit and trial to break the system by
using different user behaviours.
- In exploratory testing, no detailed documentation is
given to the tester.
3. Risk-based Testing:
- The Risk-based testing is a software testing technique
based on the probability of risk.
- The risk-based testing technique organizes testing
efforts in ways that lower the residual level of product
risk when the software goes into production.
- It is useful for test analysis, planning, estimation,
design, execution and results reporting.
-Pooja Khokale-
Software Testing
4. Fit Tests:
- It is an integration of the tasks of analysts, testers,
developers and even customers.
- When this technique is used the result of the testing
comes in the three colours red, yellow or green which
depicts the levels of quality of the software.
7. Session-Based Testing:
- Session-based testing is a software testing technique
aims to provide rapid defect discovery.
-Pooja Khokale-
Software Testing
release X+1
03
01
Release
Iteration 0
(End Game)
02 04
Construction Production
Iteration
-Pooja Khokale-
Software Testing
1. Iteration 0:
The iteration 0 is the first strategy of agile testing in which we
execute the preliminary setup tasks such as finding people for
testing.
2. Construction Iteration:
It is performed as a set of iteration on software product in order
to create an increment of the solution.
This process is divided into two types namely:
1) Confirmatory Testing
2) Investigative Testing
3. Release End Game:
The objective of this strategy is to implement the software
product.
4. Production:
The software product or system will move on the production
stage as soon as the release stage is completed.
(Phase 1)
Impact
Assessment
(Phase 5) (Phase 2)
Test Agility Agile
Review Testing
Planning
(Phase 3)
(Phase 4)
Release
Daily
Readiness
Scrums
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
-Pooja Khokale-
Software Testing
▪ Agile Values:
Agile values as listed as follows:
1. Working software over comprehensive document:
Working software product or system is valued
more useful than presentation documents in
client meetings.
Self-explanatory code is valued more than
hundreds of pages of documents.
2. Individuals and interactions over processes and
tools:
It lays emphasis on self-organization, motivation
and interactions such as co-location and pair
programming as compared to any process or
tools.
3. Responding to change over following a plan:
It focuses on quick response to change to
minimize delivery to customer time.
4. Customer collaboration over contract negotiation:
It accepts the fact that with the ever-changing
world change to software development
requirements is a continuous process and all
requirements cannot be fully collected at the
beginning of the software project.
-Pooja Khokale-
Software Testing
Automated Business-Facing
Manual
and Manual
Functional Tests Exploratory Testing
Examples Scenarios
Simulations Alpha/Beta
Q2 Q3
Supporting Q1 Q4
“ility!” Testing
Automated Tools
Technology-Facing
o Quadrant 1 (Automated):
- Tis represents test-driven development, which is a core
agile development practice.
- It is the automated quadrant contains tests are
designed to improve the code of the product being
created.
- All through the quadrant 1 of agile testing, we can
execute the unit testing and component testing.
-Pooja Khokale-
Software Testing
o Quadrant 3 (Manual):
- It provides feedback to quadrants one and two.
- The test cases have been designed to implement
automation testing, which helps us develop certainty in
the particular product.
- In this some types of testing can be executed like
Usability Testing, Exploratory Testing, User Acceptance
Testing (UAT), etc.
o Quadrant 4 (Tools):
-Pooja Khokale-
Software Testing
▪ Automated Tests:
- Test automation is a core agile practice and projects
depend on automation.
- Automation testing in agile allows creating test cases
that will run automatically every time new code is
pushed to the code repository for a specific application.
- It works on agile projects by running a large number of
tests repeatedly to make sure an application doesn’t
break whenever new changes are introduced-at the
Unit API and GUI-level.
- It allows agile teams to execute more tests in less time,
increasing coverage and freeing human testers to do
more high-level, exploratory testing.
- The purpose is to make the software development
process more than effective and efficient while
maintaining the quality and time as well as resource
consumption.
- Reasons for automation to be successful using agile:
1) Manual testing takes too long and time consuming.
2) Manual testing does not give feedback early and
often.
3) Manual testing do not provide documentation.
4) Manual testing is not repeatable.
-Pooja Khokale-
Software Testing
Manual Tests
GUI
Tests
Acceptance
tests (API Layer)
2. Middle Tier:
- It includes most of the automated business-facing tests
written to support the team.
- The tests in middle layer may include “story tests,
“acceptance” tests, and tests that cover larger sets of
functionality than the unit test layer.
3. Top Tier:
- It represents what should be the smallest automation
effort, because the tests generally provide the lowest
ROI.
-Pooja Khokale-