0% found this document useful (0 votes)
127 views62 pages

TY.bsc(C.S)Software Testing - Notes

The document provides a comprehensive overview of software testing, including its definition, advantages, types, roles, goals, and methodologies. It covers various testing strategies, principles, and the differences between testing and debugging, as well as verification and validation processes. Additionally, it outlines the software testing life cycle and emphasizes the importance of metrics and test case design in ensuring software quality.

Uploaded by

ramthite247
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
127 views62 pages

TY.bsc(C.S)Software Testing - Notes

The document provides a comprehensive overview of software testing, including its definition, advantages, types, roles, goals, and methodologies. It covers various testing strategies, principles, and the differences between testing and debugging, as well as verification and validation processes. Additionally, it outlines the software testing life cycle and emphasizes the importance of metrics and test case design in ensuring software quality.

Uploaded by

ramthite247
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Software Testing

❖ Chpt-1: Introduction to Software Testing

▪ 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.

▪ Advantages of Software testing:


1. Ensures that the software is being developed according to
user requirements/expectations.
2. Finds and removes errors
3. Improves the quality of the software by removing
maximum possible errors from it.
4. Removes errors that lead to software failure.
5. Ensures that the software conforms to business as well as
user needs.

▪ Types of testing to test software:


1.Manual Testing
2.Automation testing

▪ Software Testing roles:


1. Test Lead
2. Test Architect
3. Test Designer
4. Test Automation Engineer
5. Test Methodologist
6. Software Tester

-Pooja Khokale-
Software Testing

▪ Goals of software testing:


The main goal of software testing is to find errors or bugs as
early as possible and to fix bugs and to make sure that the
software is bug free.

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.

2. Long Term Goals:


Affect software product quality in the long term.

-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.

3. Post Implemented Goals:


Important after software product release.
• Reduce maintenance cost:
Post released errors are costlier to fix and difficult to
identify.
• Improved software testing process:
Improve testing process for future use.

▪ Software testing types:


1. Unit testing:
To show that the unit does not satisfy its functional
specification.

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.

▪ Error: (Syntax and logical)


The difference between the outputs produced by the software
and the output desired by the user.
Ex; Improper logic, Syntax errors in the code.

▪ 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

▪ Testing and debugging:


• Testing:
- The process of detecting an error.

• Debugging:

-Pooja Khokale-
Software Testing

- The process of identifying the cause of the error once


the testing of the software detects an error. Means
identifying, locating and correcting bugs usually by
running the program.

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.

Sr. No. Key Terms Testing Debugging


1. Definition Process Activity
which intent performed
is identifying by
the defects developers
to fix the
bug found in
the system

-Pooja Khokale-
Software Testing

2. Purpose To show that To find out


the program an error or a
or set of bug that
program has occurs
a bug or an during the
error execution of
the program
and then to
correct the
bug
3. Automation Testing can Debugging
be manual cannot be
or made get
automated automated it
with the is always be
help of the manual
different
tools
4. Level Testing on No such
basis of level level of
of debugging
performing
is at
different
level i.e.;
unit testing,
integration
testing,
system
testing, etc
5. Objective To find bugs To find the
and errors in exact root
an cause at
application code level to
fix the errors

-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.

• Steps in life cycle metrics of metrices:


1. Analysis
Developer identifies the required metrics
and define them.
2. Communicate
Once metrics are identified, developers
have to explain their importance to
stakeholders and the testing team.
3. Evaluation
Includes quantifying and verifying the data.
4. Report
Once evaluation process is finished, the
development team needs to create a report
including a detailed summary of conclusion.

-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

1) Understanding: Helps in making the aspects of a software


process more visible.
2) Control: Using baselines, goals and understanding of the
relationships, we can predict what is likely to happen.
3) Improvement: By taking corrective actions, we can improve a
software product.

-Pooja Khokale-
Software Testing

▪ Verification and validation:


1. Verification:
- Verification is a disciplined approach to evaluate
whether a software product fulfils the requirements or
conditions imposed on them by the processes.
- Involves checking that the program conforms to its
specification.
- Also called static technique.
- Methods of verification:
1) Walkthrough
2) Self-Review
3) Peer review
4) Audits
5) Inspection

- 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

3) Validation is done during testing such as feature


testing, integration testing, system testing, unit
testing.
4) Independent of the platform of development,
database or any technical aspect related to software
development.
- Disadvantages of validation:
1) It may result into redundant testing as the tester is
not aware of internal structure.
2) No amount of testing can prove that software does
not have defects.

▪ Difference between verification and validation:

Sr. No. Verification Validation


1. Verification means, Validation means,
“are we building the“are we building
product, right?” the right product?”
2. It is static practice
It is a dynamic
of verifying mechanism of
documents, design, validating and
code and program. testing the actual
product.3
3. Does not involve Always involves
executing the code. executing the code.
4. Human based Computer based
checking of execution of
documents and program.
files.
5. Uses methods like Uses methods like
inspections, black box testing,
reviews, grey box testing
walkthroughs, and and white box
desk-checking, etc. testing, etc.

-Pooja Khokale-
Software Testing

6. Generally, comes Generally, follows


first-done before after verification.
validation.

▪ Software testing Life cycle:

Requirement
analysis
Test planning

Test case
development
Environment setup

Test execution

Test cycle closure

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

- Resource planning and determining roles and


responsibility.
- Training requirements.

3) Test case development:


- Create test cases, automation scripts review the test
case and script create the test data.

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

6) Test cycle closure:


- Evaluate completion criteria based on the time, cost,
test, coverage, objectives and quality
- Prepare test matrix base on above parameter
- Prepare test closure report
- Test result analysis to find out the defect distribution by
the type
- Qualitative and quantitative reporting of work to the
customer

-Pooja Khokale-
Software Testing

❖ Chpt-2: Software Testing Strategies and


Technique

▪ 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

▪ Test case design:

The test case is defined as, “test condition such as to


exercise a particular program path to verify compliance
with a specific requirement”.

-Pooja Khokale-
Software Testing

Test Case Id: Test Designed By:<Name>


Test Priority Test Designed By :<Date>
(Low/Medium/High):
Module Name: Test Executed By:<Name>
Test Title: Test Execution Date:
<Date>
Description:
Pre-conditions:

Step Test Test Expected Actual Status


Steps Data Result Result (Pass/Fail)

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

10. Test execution date: Date when test executed.


11. Test steps: List all test execution steps in detail. Write test
steps in the order in which these should be executed.
12. Test data: It is an input for this test case. You can provide
different data sets with exact values to be used as input.
13. Expected results: Describe the expected result in detail
including message/error that should be displayed on screen.
14. Actual result: Actual test result should be filled after test
execution.
15. Status (Pass/Fail): If actual result is not as per the
expected result mark this test as failed. Otherwise update as
passed.

▪ White Box Testing:


- It is a technique that examines the program structure
and derives test data from the program code.
- It is done on the basis of internal structures of
software.
- The goal is to ensure that the test cases developed by
software testers by using white box testing.
- According to IEEE standards, white box testing, also
known as structural testing or glass-box testing.
- It mainly deals with the structure and design of the
software product.
- In this the software tester has access to the program’s
code.

-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.

▪ Basis path testing:


- This technique is used for designing test cases.
- In this test cases derived to exercise the basis set are
guaranteed to execute every statement in the program
at least one time.

-Pooja Khokale-
Software Testing

- It analyses the control-flow graph of a program to find


a set of linearly independent paths of execution.

1) Flow graph notations:


• A simple notation for the representation of
control flow called a flow graph.
• The flow graph depicts logical control flow
using a diagrammatic notation. Each structured
construct has a corresponding flow graph
symbol.

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.

3) Independent programs path:


• An independent path is any path though the
program that introduces at least one new set
of processing statements or a new condition.
• When stated in terms of a flow graph, an
independent path must move along at least
one edge that has not been traversed before
the path id defined.

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.

6) Deriving test cases:


• In this basis path testing is presented as a
series of steps and test cases are developed to
ensure that all statements within the program
get exercised at least once while performing
testing.
▪ Control Structure Testing;
- It is used to enhance the coverage area by testing
various control structures present in the program.
- Various types of testing performed under control
structure testing are:
1. Condition Testing:
• It is a test case design technique that exercises
or evaluates the logical conditions contained in
a program.
• In condition testing, test cases are derived to
determine whether the logical conditions and
decision statements are free from errors.

-Pooja Khokale-
Software Testing

• It is performed using different strategies


namely: Branch testing, Domain Testing,
Branch and Relational Operator Testing.

2. Data Flow testing:


• It is a technique selects test paths of a program
according to the locations of definitions and
uses a variable in the program.
• To specify test cases, data flow testing
technique uses information such as location at
which the variables are defined and used in a
program.

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

▪ Black Box Testing:


- It is a software testing method in which the internal
structure of the item being tested is not known to the
tester.

-Pooja Khokale-
Software Testing

- It checks the functional requirements and examines the


input and output data of these requirements.
- The black box testing is named so because the software
program, in the eyes of the tester, is like a black box;
inside which one cannot see.
- Black box testing attempts to find errors in the
following categories:
1. Incorrect or missing functions
2. Interface errors
3. Errors in data structures
4. Behavior or error
5. Initialization errors

- 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

5. High probability of repeating tests already


performed by the programmer.

▪ Boundary Values Analysis:


- Boundary value analysis is a software testing technique
that selects the input data which represents boundary
values.
- These data includes both boundary and each side of
boundary which should be in the smallest increment.

▪ 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

▪ Difference between White Box testing and Black Box Testing:

Sr. No. White Box Testing Black Box testing


1. Purpose is to test Purpose is to test
the internal the functionality of
structure of software.
software.
2. Performed in the Performed in the
early stages of later stages of
testing. testing
3. Knowledge of the Knowledge of the
internal structure internal structure of
of a program is a program is
required for required to
generating test generating test
case. case.
4. Also known as clear Also known as
box testing, closed box testing,
structural testing. data driven testing
and functional
testing.
5. Normally done by Performed by end
testers and users and also by
developers. testers and
developers.
6. It is time It is the least time
consuming type of consuming and
testing. exhaustive.
7. It is suited for It is not suited for
algorithm testing. algorithm testing.
8. Domains and In this can only be
internal boundaries done by trial-and-
can be better error method.
tested.

-Pooja Khokale-
Software Testing

❖ Chpt-3: Levels of Testing

▪ Software is tested at different levels. There are four levels of


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.

▪ Strategic approach to software testing:

- A strategy for software testing must accommodate low-


level tests that are necessary to verify that a small
source code segment has been correctly implemented

-Pooja Khokale-
Software Testing

as well high-level tests that validate major system


functions against customer requirement.
- It must provide guidance for the particular and a set of
milestones for the manager.
- A strategy for software testing is developed by the
software project manager, software engineer and
testing specialist.

▪ Test Strategies For Conventional Software:


1) Unit Testing:
- It is a type of software testing in which the smallest
testable units of the software are tested.
- The purpose is to validate that each such module of the
software performs as desired.
- It may be including code file, classes, methods which
can be tested individually for correctness.
- The goal is to isolate part of the code and verify its
correctness.
- Unit tests are usually done by the developer.
- Performs the following functions:
1. Tests all control paths to uncover maximum errors
that occur during the execution of conditions
present in the unit being tested.
2. Ensures that all statements in the unit have been
executed at least once.
3. It tests data structures that represent relationships
among individual data elements.
4. Checks the range of inputs given to units that is
maximum and minimum value.

-Pooja Khokale-
Software Testing

• Concept of drivers and stub:


The drivers and stubs are special-purpose
arrangements in unit testing, generally code,
required to test units individually which can act
as an input to the unit and can take output
from unit.

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

- Difference between Driver and Stub:

Sr. No. Driver Stub


1. Mainly created Mainly created
for integration for integration
testing such as testing such as
bottom-up top-down
approach. approach.
2. Very simple to Also simple to
develop. develop.
3. It is a program It is a program
that accepts test that are used to
case data and replace modules
passes that data that are
to the module subordinate to
that is being the module to be
tested. tested.
4. It is a piece of It is a small
software program routine
program which that substitutes
calls the for a longer
functions in the program.
unit under test.

- 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. Will not catch every error or integration error in the


program.

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

- Process of load testing:

Test Test Scenario Test Scenario Test Result Re-test


Environment Load Execution Analysis
Setup

- 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:

1. Allows an organization to test post-launch


infrastructure.
2. Reduce product failure risk via customer validation.
3. Improves product quality via customer feedback
4. Creates goodwill with customers and increases
customers satisfaction.

▪ Difference between alpha and Beta Testing:

Sr. No. Alpha Testing Beta Testing


1. Performed by Performed by
testers. clients.
2. Performed at Performed at client
developer’s site. location.
3. Reliability and Reliability, security,
security testing are robustness are
not performed in checked during
depth alpha testing. beta testing.
4. Involves both the Typically uses black-
white-box and box testing.
black-box
techniques.
5. Requires lab Doesn’t require any
environment. lab environment.
6. Long execution Only few weeks of
cycle may be execution are
required for alpha required for beta
testing. testing.

-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

Document Choose participants


Recommendation

Analyse Results Perform tests

-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

2. Hiring or recruiting a usability test engineer could be


costly.

▪ 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

To make sure it works on them in the desired


manner.
2. Network compatibility testing:
Checked on different networks such as WIFI, 3G, 4G,
etc.
3. Operating system compatibility testing:
Software is tested by running on different operating
systems such as Windows, Mac, Linux, etc.
4. Device Compatibility testing:
Check an application’s compatibility with various
external devices such as Bluetooth, USB device,
Printer, etc.
5. Mobile compatibility testing:
An application is tested on various mobile devices
with different operating systems such as Android, Ios
and Windows.
6. Browser compatibility testing:
Tests an application works on various browsers such
as Chrome, Firefox, Internet Explorer, etc.
7. Software compatibility testing:
An applications compatibility is checked with other
software.
8. Version compatibility testing:
An applications compatibility with its older and
newer versions is checked.

- 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

4. Effectively perform system compatibility tests on


different browsers, platforms, configurations, OS,
hardware, etc.

-Pooja Khokale-
Software Testing

❖ Chpt-4: Testing Web Applications

▪ 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.

▪ Techniques for Web Application Testing:


1. Functionality Testing:
- It checks if the initial build works as per its design.
- Functionality testing of a website is a process has
several testing parameters such as user interface, APIs,
database testing, security testing, client and server
testing and basic website functionalities.
2. Interface Testing:
- Used to validate whether systems pass data and control
information properly over a computer network.
- It examines how the web interface responds to
emulated interruptions.
3. Compatibility Testing:
Checks whether or not the web application design is compatible
with a variety of browsers and devices.
4. Performance Testing:
Used to ensure that the websites or web applications will
perform well under their expected workload.

-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

▪ Errors Within a WebApp Environment:


- The intent of web application testing is to uncover
errors and correct them.
- Attributes:
1. A WebApp is created in a number of various
configurations and within different environments.
2. Some errors in Web application encountered due to
result of incorrect design or improper HTML or other
programming language coding.
- Above errors attributes suggest that environment plays
an important role in the diagnosis of all errors
uncovered during the WebApp testing.
- In number of situations the site of the error is obvious,
but in many other types of WebApp testing, the
underlying cause of the error may be considerably
more difficult to determine.

▪ 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

▪ Testing Process of Web application:

Content Testing Interface Testing

Interface
Testing

Asthetic
Design Testing

Content Design
testing

Nevigation Design Testing Navigation testing

Architecture Design Testing

Component Testing
Component Design Testing

Configuration

Performance

Security Testing

- The Web application testing process begins with tests


that exercise content and interface functionality i.e. are
immediately visible to end user.

-Pooja Khokale-
Software Testing

- As testing proceeds aspects of the design architecture


and navigation are exercised and then the focus shifts
to tests that examine technological capabilities that are
not always a parent to end users i.e. WebApp
Infrastructure implementation and installation issues.

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.

2. User Interface Testing:


- It is performed to verify the interface and the dataflow
from one system to other.
- Mechanisms for testing interface:
o Dynamic HTML (DHTML): It is based on the
properties of the HTML, JavaScript, CSS and DOM
which helps in making dynamic content.

-Pooja Khokale-
Software Testing

o Links: This is basic concept in the WebApp which


allows linking documents to other documents or
resources, link to specific parts of documents.
o Client-side Scripting: A client-side scripting are
small programs which are downloaded, compiled
and run by the browser.
o Cookies: A cookie is a small piece of data files that
a server sends to a user’s web browser.
o Forms: A form in WebApp is used for entering or
selecting information on a website and it permits
users to interact with a website.
o Pop-up Windows: A pop-up window is a Web
browser window that is smaller than standard
windows and without some of the standard
features such as toolbars or status bars.
o Streaming Content: For streaming contents, the
tests should demonstrate that streaming data are
up-to-date, properly displayed and can be
suspended without error and restarted without
difficulty.
o CGI Scripts: For CGI script, the black-box tests are
conducted with an emphasis on data integrity and
script processing.

3. Component -Level Testing:


- Component-Level testing also called function testing. It
focuses on a set of tests that attempt to uncover errors
in WebApp functions.
- Each and every WebApp function is a software module
and can be tested using black-box techniques.
- Component-Level test cases are often driven by forms-
level input.

-Pooja Khokale-
Software Testing

- In addition to component level test case design


techniques, a technique called forced error testing is
used to derive test cases.
- The purpose is to uncover errors that occur during
error handling.

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

❖ Chpt-5: Agile 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.

▪ Features of Agile Testing:


1. The whole development process in agile testing is
divided into smaller sprints that are delivered to the
customers within the given timeframe.
2. Suggests smart work rather than hard work.
3. Feedback is provided an ongoing basis by the testing
team to ensure continuous progress.
4. Testing is done during the development cycle to
ensure that the deliverable should be in a stable
state.
5. All the bugs or issues which are recognized in one
iteration are corrected by the agile team within that
iteration itself.
6. It promotes an efficient relationship between the
testers and developers to gain the desired fruits.

-Pooja Khokale-
Software Testing

▪ Methods of Agile Testing:


1. Acceptance Test-Driven development (ATDD):
- The ATDD is the methodology of agile testing, in which
tests work on the basis of customer’s point of view on
how a software work shell.
- The ATDD approach emphasizes the customer’s
requirements by involving the team members with
different viewpoints.
- The team members of development, testing, and the
customers come together in order to develop the
acceptance test from the customer’s perspective.
- It is a very customer-cantered methodology. Code is
required along with the developed acceptance test
case.
- The objective of using the ATDD methodology is to
develop a program based on the user’s view.

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

- Under risk-based testing technique tasks are prioritized


based on the risks.

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.

5. Dynamic Software Development Method Agile Testing:


- It is an iterative agile software development
methodology based on the Rapid Application
Development methodology.
- It is a rapid approach that offers a delivery framework
to agile projects.

6. Behavior Driven Development (BDD):


- The purpose of BDD testing is to ensure that the
software product or system that is built is working as
expected.
- The business analysts and testers communication to
know and understand each other’s stake prior to the
development process and design the software
accordingly.
- The documentation of the scenarios in BDD testing
helps to build tests that can be failed on the initial
stage.

7. Session-Based Testing:
- Session-based testing is a software testing technique
aims to provide rapid defect discovery.

-Pooja Khokale-
Software Testing

- The session-based testing is mainly is created on the


values of exploratory testing.
- This testing is used to help us identify the hidden bugs
and defects in the particular software.

8. Extreme Programming (XP):


- It is an agile methodology that supports frequent
releases in short development cycle to improve
software quality.
- When there is a continuous modification in the user
requirements, we will go for the XP methodology.
- The XP will help to deliver a quality software product,
which meets the customer’s requirements.
- XP teams in practice Test-Driven Development (TDD)
technique that entails writing an automated unit test
before the code itself.

▪ Agile Testing Strategies:


Agile Testing has four different approaches which help us to
enhance our product quality.

Initiate the project start work on Deploy release x into production

release X+1
03
01
Release
Iteration 0
(End Game)

02 04
Construction Production
Iteration

Deliver a working Operation and support release X

system that meets changing needs of stakeholders

-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.

▪ Agile Testing Life Cycle:

(Phase 1)
Impact
Assessment

(Phase 5) (Phase 2)
Test Agility Agile
Review Testing
Planning

Agile Testing Life


Cycle

(Phase 3)
(Phase 4)
Release
Daily
Readiness
Scrums

-Pooja Khokale-
Software Testing

o Phase 1: Impact Assessment:


It is also known as feedback phase, which supports the
test engineers to set the purpose for the next life cycle.

o Phase 2: Agile Testing Planning:


In this developers, test engineers, stakeholders,
customers, and end-users team up to plan the testing
process schedules, regular meetings and deliverables.

o Phase 3: Release Readiness:


In this we have to review the features which have been
created entirely and test if they are ready to go to live or
not and which ones need to go back to the previous
development phase.

o Phase 4: Daily Scrums:


It involves the daily morning meetings to check on testing
and determines the objectives for the day. And in order to
help the test engineers to understand the status of
testing, the goals and targets of the day are set daily.

o Phase 5: Test Agility Review:


In this the test agility phase encompasses the weekly
meetings with the stakeholders to evaluate and assess the
progress against goals.

▪ Advantages of Agile Testing:


1. Helps us enhance the software product’s quality.
2. Save lots of time and money, making the estimation of cost
more transparent.
3. Reduce documentation.
4. Reducing errors/bugs/defects.
5. Quick response to changing requirements.

-Pooja Khokale-
Software Testing

▪ Disadvantages of Agile Testing:


1. The changes are not foreseeable.
2. Sometimes agile testing becomes difficult and complex to
assess the actual effort required performing the specific task.

▪ Difference between Traditional and Agile testing:


▪ Agile Principals:
o Principal 1- Testing is not a phase:
Agile team tests alongside the development team to
ensure that the features implemented during a given
iteration are actually done. Testing is not kept for a later
phase.
o Principal 2- Testing Moves the Project Forward:
It provides feedback on an ongoing basis and the product
meets the business demand/needs.
o Principal 3- Everyone Tests:
Entire team including analysts, developers, and testers
test the application.
o Principal 4- Shortening Feedback Response Time:
In this the business team gets to know the product
development for each and every iteration.
o Principal 5- Keep the Clean Code:
Raised defects in agile testing are fixed within the same
iteration and thereby keeping the code clean.
o Principal 6- Reduce Test Documentation:
Instead of very lengthy documentation, agile testers use
reusable checklist, focus on the essence of the test rather
than the incidental details.
o Principal 7- Test Driven:
The testing is implemented after implementation or when
the software is developed in the traditional testing
process.

-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.

▪ Agile testing Quadrants:


- The quadrants in agile testing, separate the whole
process in four quadrants and help to understand how
agile testing is performed.
- A classification model for the most commonly
techniques for software testing for the most commonly
techniques for software testing in agile development
projects called agile testing quadrants.

-Pooja Khokale-
Software Testing

- On one axis, we divide the matrix into tests that


supports the team and tests that critique the product.
The other axis divides them into business-facing and
technology-facing tests.

Automated Business-Facing
Manual
and Manual
Functional Tests Exploratory Testing

Examples Scenarios

Story Tests Usability Testing UAT

Prototypes (User Acceptance Testing)

Simulations Alpha/Beta
Q2 Q3

Supporting Q1 Q4

the team Unit Tests Performance and Critique


Component Tests Load Testing Product
Security Testing

“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

- Unit test verify functionality of a small subset of the


system, such as an object or method. Component tests
verify the behaviour of a larger part of the system, such
as a group of classes that provide some service.
- The major purpose of this quadrant is Test-Driven
Development or Test-Driven Design.

o Quadrant 2 (Automated and Manual):


- It contains test cases that are business driven and are
implemented to support the team.
- The tests in Quadrant 2 in agile testing are also support
the work of the development team, but at a higher
level.
- The test case involved in this quadrant of agile testing is
business-driven, usually manual and automated
functional tests, prototypes and examples of test
scenarios performed by the testing team.
- In this we can execute testing scenarios which may
occur and workflow, implementing the pair testing,
Testing the user story and experiences like prototypes.

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

- With the help of this quadrant the application is made


to deliver the non-functional qualities and expected
value.
- The types of tests that fall into this quadrant in agile
testing are just as critical to agile development as to
any type of software development.
- It consists of non-functional testing such as stress
testing, performance testing, scalability testing,
security testing and load testing, etc.

▪ 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

▪ Pyramid for Test Automation:

Manual Tests

GUI
Tests

Acceptance
tests (API Layer)

Unit Tests Component


Tests

o Different layers of automated tests:


1. Lowest Tier:
- It is the foundation that supports all of the rest.
- This layer represents the bulk of the automated tests.
They are generally written in the same language as the
system under test, using the xUnit family of tools.

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-

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy