0% found this document useful (0 votes)
4 views

ATM Module-2 Copy

The document provides an overview of various software testing methodologies, including white box, black box, and gray box testing. It details specific techniques, advantages, and disadvantages of each testing type, as well as tools used for implementation. The content emphasizes the importance of understanding both functional and non-functional testing to ensure software quality and performance.

Uploaded by

Abdul Khadar
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

ATM Module-2 Copy

The document provides an overview of various software testing methodologies, including white box, black box, and gray box testing. It details specific techniques, advantages, and disadvantages of each testing type, as well as tools used for implementation. The content emphasizes the importance of understanding both functional and non-functional testing to ensure software quality and performance.

Uploaded by

Abdul Khadar
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 97

PRESIDENCY UNIVERSITY,

BENGALURU

Course Code : CSE3043


Course Name : Automated test
management

Presidency University, Bengaluru


Module 2:
Understanding types of testing

2
White box testing
• White box testing techniques analyze the internal
structures, the used data structures, internal design, code
structure, and the working of the software rather than just
the functionality as in black box testing.
• also called glass box testing, clear box testing, structural
testing, transparent testing, open box testing.
• The tester has access to the source code and uses this
knowledge to design test cases that can verify the
correctness of the software at the code level.

3
Process of White Box Testing
• Input
• Processing
• Proper test planning
• Output

4
Testing Techniques:

1. Statement Coverage:
2. Branch Coverage:

6
3. Condition Coverage 4. Multiple Condition Coverage

READ X, Y
READ X, Y
IF(X == 0 || Y == 0)
IF(X == 0 || Y == 0) PRINT ‘0’
PRINT ‘0’ #TC1: X = 0, Y = 0
#TC1 – X = 0, Y = 55 #TC2: X = 0, Y = 5
#TC2 – X = 5, Y = 0 #TC3: X = 55, Y = 0
#TC4: X = 55, Y = 5
5. Basis Path testing
• Make the corresponding control flow graph
• Calculate the cyclomatic complexity
• Find the independent paths
• Design test cases corresponding to each independent path
• V(G) = P + 1, where P is the number of predicate nodes in the flow
graph
• V(G) = E – N + 2, where E is the number of edges and N is the total
number of nodes
• V(G) = Number of non-overlapping regions in the graph
• #P1: 1 – 2 – 4 – 7 – 8
• #P2: 1 – 2 – 3 – 5 – 7 – 8
• #P3: 1 – 2 – 3 – 6 – 7 – 8
• #P4: 1 – 2 – 4 – 7 – 1 – . . . – 7 – 8

8
5. Loop testing
• Simple loops: For simple loops of size n, test cases are designed
that:
Skip the loop entirely
Only one pass through the loop
2 passes
m passes, where m < n
n-1 ans n+1 passes
• Nested loops: For nested loops, all the loops are set to their
minimum count, and we start from the innermost loop. Simple loop
tests are conducted for the innermost loop and this is worked
outwards till all the loops have been tested.
• Concatenated loops: Independent loops, one after another. Simple
loop tests are applied for each. If they’re not independent, treat them
like nesting.

9
White box Testing is performed in 2
Steps
• Tester should understand the code well
• Tester should write some code for test cases and execute them
• Tools required for White box testing:
PyUnit
Sqlmap Fiddler
Nmap JSUnit.net
OpenGrok
Parasoft Jtest
Wireshark
Nunit HP Fortify
VeraUnit CSUnit
CppUnit
Bugzilla

10
Features of White box Testing
Code coverage analysis
Access to the source code
Knowledge of programming languages
Identifying logical errors
Integration testing
Unit testing
Optimization of code
Security testing
Verification of Design
Check for Accurate Code
Identifying Coding Mistakes
Path Examination
Determining the Dead Code
Black box testing
• type of software testing in which tester is not concerned
with the internal knowledge or implementation details of the
software but rather focuses on validating the functionality
based on the provided specifications or requirements.

12
Black box testing techniques
1. Syntax driven testing: This type of testing is applied to
systems that can be syntactically represented by some
language.

2. Equivalence partitioning: The idea is to partition the input


domain of the system into several equivalence classes such
that each member of the class works similarly, i.e., if a test
case in one class results in some error, other members of
the class would also result in the same error.

13
Equivalence partitioning involves two steps:
• Identification of equivalence class – Partition any input domain
into a minimum of two sets: valid values and invalid values.
• Generating test cases – (i) To each valid and invalid class of
input assign a unique identification number. (ii) Write a test case
covering all valid and invalid test cases considering that no two
invalid inputs mask each other. To calculate the square root of a
number, the equivalence classes will be (a) Valid inputs:
-The whole number which is a perfect square-output will be an
integer.
-The entire number which is not a perfect square-output will be a
decimal number.
-Positive decimals
-Negative numbers(integer or decimal).

14
3. Boundary value analysis – If test cases are designed for
boundary values of the input domain then the efficiency of
testing improves and the probability of finding errors also
increases.
4. Cause effect graphing – This technique establishes a
relationship between logical input called causes with
corresponding actions called the effect. The following steps
are followed:
- Identify inputs (causes) and outputs (effect).
- Develop a cause-effect graph.
-Transform the graph into a decision table.
-Convert decision table rules to test cases.

15
5. Requirement-based testing
6. Compatibility testing – The test case results not only depends
on the product but is also on the infrastructure for delivering
functionality. When the infrastructure parameters are changed it is
still expected to work properly. Some parameters that generally
affect the compatibility of software are:
-Processor (Pentium 3, Pentium 4) and several processors.
-Architecture and characteristics of machine (32-bit or 64-bit).
-Back-end components such as database servers.
-Operating System (Windows, Linux, etc).

17
Black Box Testing Types:
• Functional Testing: It determines the system’s software
functional requirements.
• Regression Testing: It ensures that the newly added code is
compatible with the existing code. In other words, a new software
update has no impact on the functionality of the software. This is
carried out after a system maintenance operation and upgrades.
• Nonfunctional Testing: Nonfunctional testing is also known as
NFT. This testing is not functional testing of software. It focuses
on the software’s performance, usability, and scalability.

18
Tools Used for Black Box Testing:
• Appium
• Selenium
• Microsoft Coded UI
• Applitools
• HP QTP.
What can be identified by Black Box Testing
• Discovers missing functions, incorrect function & interface errors
• Discover the errors faced in accessing the database
• Discovers the errors that occur while initiating & terminating any
functions.
• Discovers the errors in performance or behaviour of software.

19
Features of black box testing:
• Independent testing
• Testing from a user’s perspective
• No knowledge of internal code
• Requirements-based testing
• Different testing techniques
• Easy to automate
• Scalability
• Limited knowledge of application: Testers performing black
box testing have limited knowledge of the application being
tested, which helps to ensure that testing is more
representative of how the end users will interact with the
application.

20
Advantages of Black Box Testing:
• The tester does not need to have more functional
knowledge or programming skills to implement the Black
Box Testing.
• It is efficient for implementing the tests in the larger system.
• Tests are executed from the user’s or client’s point of view.
• Test cases are easily reproducible.
• It is used in finding the ambiguity and contradictions in the
functional specifications.

21
Disadvantages of Black Box Testing:
• There is a possibility of repeating the same tests while
implementing the testing process.
• Without clear functional specifications, test cases are
difficult to implement.
• It is difficult to execute the test cases because of complex
inputs at different stages of testing.
• Sometimes, the reason for the test failure cannot be
detected.
• Some programs in the application are not tested.
• It does not reveal the errors in the control structure.
• Working with a large sample space of inputs can be
exhaustive and consumes a lot of time.

22
Gray box testing
The Gray Box Testing is a combination of Black Box and White Box Testing


Gray Box Testing is named so because the software program is like a
semitransparent or gray box inside which the tester can partially see.

It commonly focuses on context-specific errors related to web systems.

It is based on requirement test case generation because it has all the
conditions presented before the program is tested.

23
Objectives of Gray Box Testing:
• combined advantages of both black box testing and white
box testing.
• To combine the input of developers as well as testers.
• To improve overall product quality.
• To reduce the overhead of long process of functional and
non-functional testings.
• To provide enough free time to developers to fix defects.
• To test from the user point of view rather than a designer
point of view.

24
Gray Box Testing Techniques:
Matrix Testing:

Business and technical risks which are defined by the
developers in software programs are examined.

Developers define all the variables that exist in the
program. Each of the variables has an inherent technical
and business risk and can be used with varied
frequencies during its life cycle.

25
Pattern testing:
• To perform the testing, previous defects are analysed. It
determines the cause of the failure by looking into the code.
Analysis template includes reasons for the defect.

Orthogonal Array testing:


• test data have n numbers of permutations and
combinations. Orthogonal array testing is preferred when
maximum coverage is required when there are very few test
cases and test data is large.
• This is very helpful in testing complex applications.

26
Regression Testing:

State transition Testing:


• State transition testing is frequently applied to systems that
display various states while they are being operated.

27
Testing Decision Tables:
• Decision tables are used by testers with limited
understanding to generate test cases covering multiple
combinations of input conditions and expected results.
Testing APIs:
• The main goal of testing is to make sure the API accepts
various input formats and operates as intended.

28
Data Flow Testing:
• Partial knowledge testers create test cases that examine
the data’s pathways throughout the application, assisting in
the identification of possible problems with handling and
processing the data.

29
Advantages of Gray Box Testing:
• Clarity of goals: Users and developers have clear goals
while doing testing.
• Done from user perspective: Gray box testing is mostly
done by the user perspective.
• High programming skills not required: Testers are not
required to have high programming skills for this testing.
• Non-intrusive: Gray box testing is non-intrusive.
• Improved product quality: Overall quality of the product is
improved.
• Defect fixing: In gray box testing, developers have more
time for defect fixing.

30
Advantages of Gray Box Testing:
• Benefits of black box and white box testing: By doing gray
box testing, benefits of both black box and white box testing
is obtained.
• Unbiased: Gray box testing is unbiased. It avoids conflicts
between a tester and a developer.
• Effective testing: Gray box testing is much more effective in
integration testing.

31
Disadvantages of Gray Box Testing:
• Difficulty in defect association: Defect association is difficult
when gray testing is performed for distributed systems.
• Limited access to internal structure: Limited access to
internal structure leads to limited access for code path
traversal.
• Source code not accessible: Because source code cannot
be accessed, doing complete white box testing is not
possible.
• Not suitable for algorithm testing: Gray box testing is not
suitable for algorithm testing.
• Test cases difficult to design: Most of the test cases are
difficult to design.

32
Black Box Testing types:
Functional Testing
verifies that each function of the software application works
in conformance with the requirement and specification.

Purpose of Functional Testing:


Test each function of the application
Test primary entry function
Test flow of the GUI screen

33
What to Test in Functional Testing?
Basic Usability
Mainline functions
Accessibility
Error Conditions

34
Functional Testing Process:

35
Functional Testing vs Non-Functional Testing:
Check the differences from the pdf

36
Functional Testing Tools:
1. Selenium
2. QTP
3. JUnit
4. SoapUI
5. Cucumber
Best Practices for Functional Testing:
Automate
Dedicated automation team
Create test early
Pick the right tests
Prioritize
Test frequently

37
Benefits of Functional Testing:

Bug-free product

Customer satisfaction

Testing focussed on specifications

Proper working of application

Improves quality of the product

Limitations of Functional Testing:

Missed critical errors

Redundant testing

Incomplete requirements
Non Functional Testing
is performed to verify the non-functional requirements of
the application.
Objectives:
Increased usability
Reduction in production risk
Cost Reduction
Optimize installation
Collect metrics
Enhance knowledge of product

39
Non-Functional Testing Techniques
Compatibility testing
Compliance testing: is a type of testing to ensure that a
software program or system meets a specific
compliance standard, such as HIPAA or Sarbanes-
Oxley.
Endurance testing: is a type of testing to ensure that a
software program or system can handle a long-term,
continuous load.
Load testing: is a type of testing to ensure that a
software program or system can handle a large
number of users or transactions.

40
Non-Functional Testing Techniques
Performance testing: is a type of testing to ensure that a
software program or system meets specific
performance goals, such as response time or
throughput.
Recovery testing: is a type of testing to ensure that a
software program or system can be recovered from a
failure or data loss.
Security testing: is a type of testing to ensure that a
software program or system is secure from
unauthorized access or attack.

41
Non-Functional Testing Techniques
Scalability testing: is a type of testing to ensure that a
software program or system can be scaled up or down
to meet changing needs.
Stress testing: is a type of testing to ensure that a
software program or system can handle an unusually
high load.
Usability testing: is a type of testing to ensure that a
software program or system is easy to use.
Volume testing: is a type of testing to ensure that a
software program or system can handle a large volume
of data.

42
Non-Functional Testing Techniques
Failover testing: is validates the system’s capability to
allocate sufficient resources toward recovery during a
server failure.
Portability testing: is testing the ease with which the
application can be moved from one environment to
another.
Reliability testing: is checks that the application can
perform a failure-free operation for the specified period
of time in the given environmental conditions.
Baseline testing: is used to make sure that the
application performance is not degraded over time with
new changes.

43
Non-Functional Testing Techniques
Documentation testing: is a type of software testing
that involves testing the documented artifacts
developed before or during the software testing
process.
Localization testing: is a type of software testing that is
performed to verify the performance and quality of the
software for a specific culture and to make the product
look more natural for the foreign target audience.
Internationalization testing: is a type of software
testing that ensures the adaptability of software to
different cultures and languages around the world
accordingly without any modifications in source code.

44
Non-Functional Testing parameters

45
Benefits of Non-functional Testing
Improved performance
Less time-consuming
Improves user experience
More secure product: As non-functional testing
specifically includes security testing that checks the
security bottlenecks of the application and how secure
is the application against attacks from internal and
external sources.

46
Limitations of Non-functional Testing
Non-functional tests are performed repeatedly:
Whenever there is a change in the application, non-
functional testing is performed again. Thus, it is more
resource intensive.
Expensive in case of software update

47
Types of Functional testing:
Unit testing
Integration testing
System testing

48
Unit testing
• individual units of software i.e. group of computer program
modules, usage procedures, and operating procedures are
tested to determine whether they are suitable for use or not.
Objectives of unit testing:
• To isolate a section of code.
• To verify the correctness of the code.
• To test every function and procedure.
• To fix bugs early in the development cycle and to save costs.
• To help the developers understand the code base and enable
them to make changes quickly.
• To help with code reuse

49
50
Types of Unit Testing:
Manual and Automated

Workflow of unit testing:

51
Unit Testing Types:
• Black Box Testing: This testing technique is used in covering the
unit tests for input, user interface, and output parts.
• White Box Testing: This technique is used in testing the functional
behavior of the system by giving the input and checking the
functionality output including the internal design structure and
code of the modules.
• Gray Box Testing: This technique is used in executing the
relevant test cases, test methods, and test functions, and
analyzing the code performance for the modules.
Unit Testing Tools:
• Jtest
• Junit
• NUnit
• EMMA
• PHPUnit
52
Advantages of Unit Testing:
• Unit Testing allows developers to learn what functionality is
provided by a unit and how to use it to gain a basic understanding
of the unit API.
• Unit testing allows the programmer to refine code and make sure
the module works properly.
• Unit testing enables testing parts of the project without waiting for
others to be completed.
• Early Detection of Issues
• Improved Code Quality
• Increased Confidence
• Faster Development
• Better Documentation

53
Disadvantages of Unit Testing:
• The process is time-consuming for writing the unit test cases.
• Unit Testing will not cover all the errors in the module because
there is a chance of having errors in the modules while doing
integration testing.
• Unit Testing is not efficient for checking the errors in the UI(User
Interface) part of the module.
• It requires more time for maintenance when the source code is
changed frequently.
• It cannot cover the non-functional testing parameters such as
scalability, the performance of the system, etc.
• Difficulty in Testing Complex Units: Unit testing can be
challenging when dealing with complex units, as it can be difficult
to isolate and test individual units in isolation from the rest of the
system.

54
Integration testing:
• process of testing the interface between two software units or
modules.
• It focuses on determining the correctness of the interface.
• The purpose of integration testing is to expose faults in the
interaction between integrated units. Once all the modules have
been unit-tested, integration testing is performed.
Approaches of integration testing:
• Big-Bang integration testing
• Bottom-up integration testing
• Top-Down integration testing
• Mixed integration testing

55
Big-Bang integration testing:
• It is the simplest integration testing approach, where all the
modules are combined and the functionality is verified after the
completion of individual module testing.
Advantages:
• It is convenient for small systems.
• Simple and straightforward approach.
• Can be completed quickly.
• Does not require a lot of planning or coordination.
• May be suitable for small systems or projects with a low degree of
interdependence between components.

56
Disadvantages:
• There will be quite a lot of delay because you would have to wait
for all the modules to be integrated.
• High-risk critical modules are not isolated and tested on priority
since all modules are tested at once.
• Not Good for long projects.
• High risk of integration problems that are difficult to identify and
diagnose.
• This can result in long and complex debugging and
troubleshooting efforts.
• This can lead to system downtime and increased development
costs.
• May not provide enough visibility into the interactions and data
exchange between components.

57
Bottom-Up Integration Testing:
• each module at lower levels are tested with higher modules until
all modules are tested.
• The primary purpose is that each subsystem tests the interfaces
among various modules making up the subsystem. This
integration testing uses test drivers to drive and pass appropriate
data to the lower-level modules.
Advantages:
• several disjoint subsystems can be tested simultaneously.
• It is easy to create the test conditions.
• Best for applications that uses bottom up design approach.
• It is easy to observe the test results.

58
Disadvantages:
• Driver modules must be produced.
• In this testing, the complexity that occurs when the system is
made up of a large number of small subsystems.

59
Top-Down Integration Testing:
• used in order to simulate the behaviour of the lower-level modules
that are not yet integrated.
• testing takes place from top to bottom. First, high-level modules
are tested and then low-level modules and finally integrating the
low-level modules to a high level to ensure the system is working
as intended.
Advantages:
• Separately debugged module.
• Few or no drivers needed.
• It is more stable and accurate at the aggregate level.
• Easier isolation of interface errors.
• In this, design defects can be found in the early stages.

60
Disadvantages:
• Modules at lower level are tested inadequately.
• It is difficult to observe the test output.

61
Mixed Integration Testing:
• A mixed integration testing is also called sandwiched integration
testing. A mixed integration testing follows a combination of top
down and bottom-up testing approaches.
Advantages:
• Mixed approach is useful for very large projects having several
sub projects.
• This Sandwich approach overcomes this shortcoming of the top-
down and bottom-up approaches.
• Parallel test can be performed in top and bottom layer tests.
Disadvantages:
• requires very high cost because one part has a Top-down
approach while another part has a bottom-up approach.
• cannot be used for smaller systems with huge interdependence
between different modules.

62
Applications:
• Identify the components
• Create a test plan
• Set up test environment
• Execute the tests
• Analyze the results
• Repeat testing:

63
System Testing:
• System Testing is a type of software testing that is performed on
a complete integrated system to evaluate the compliance of the
system with the corresponding requirements.
System Testing Process: System Testing is performed in the
following steps:

64
Types of System Testing:
• Performance Testing: carried out to test the speed, scalability,
stability and reliability of the software product or application.
• Load Testing: carried out to determine the behavior of a
system or software product under extreme load.
• Stress Testing: performed to check the robustness of the
system under the varying loads.
• Scalability Testing: carried out to check the performance of a
software application or system in terms of its capability to scale
up or scale down the number of user request load.

Tools: Jmeter, Gallen Framework, Selenium

65
Advantages of System Testing :
• More knowledge of testing is not required by the testers.
• It will test the entire product or software so that we will easily
detect the errors or defects which cannot be identified during
the unit testing and integration testing.
• The testing environment is similar to that of the real time
production or business environment.
• It checks the entire functionality of the system with different
test scripts and also it covers the technical and business
requirements of clients.

66
Disadvantages of System Testing :
• time consuming process
• Cost is high.
• needs good debugging tool otherwise the hidden errors will not
be found.
• Limited visibility into the internal workings of the system.

67
Non functional testing:
Performance Testing
• type of software testing that ensures software applications
perform properly under their expected workload.
Types of performance testing:
• Load testing: simulates a real-world load on the system to see
how it performs under stress.
• Stress testing: tests the system’s ability to handle a high load
above normal usage levels.
• Spike testing: tests the system’s ability to handle sudden
spikes in traffic.

68
• Soak testing: tests the system’s ability to handle a sustained
load over a prolonged period.
• Endurance testing: similar to soak testing, but it focuses on
the long-term behaviour of the system under a constant load.

69
Performance Testing Attributes:
Speed, Scalability, stability, reliability

Objectives:
• to eliminate performance congestion.
• It uncovers what needs to be improved before the product is
launched in the market.
• to make software rapid.
• to make software stable and reliable.
• to evaluate the performance and scalability of a system or
application under various loads and conditions.

70
Performance Testing Process:

71
Advantages of Performance Testing :
• Identifying bottlenecks
• Improved scalability
• Improved reliability
• Reduced risk
• Cost-effective
• Improved user experience
• Better Preparation
• Compliance

72
Usability Testing
• type of testing, that is done from an end user’s perspective to
determine if the system is easily usable.
This testing has a cycle wherein when:
• the product is ready,
• customers are asked to test it,
• If any further changes,
• product (software) is returned to the development team with
feedback to update the changes,
• again the software had to run usability testing,
• if there are no more changes required,
• the software is launched in the market.

73
Phases of usability testing:

74
Advantages of Usability Testing :
• Learn if participants will be able to complete the specific task
completely.
• identify how long it will take to complete the specific task.
• Gives excellent features and functionalities to the product
• Improves user satisfaction and fulfills requirements based on
user’s feedback
• The product becomes more efficient and effective

75
Primary goals of Usability Testing :
• discovering problems (hidden issues) and opportunities,
• comparing benchmarks,
• and comparison against other websites.

The parameters tested during usability testing are efficiency,


effectiveness, and satisfaction.

76
Factors Affecting Cost of Usability Testing:
• No. of participants for testing.
• Number of Days which you need for testing.
• which type of testing.
• the size of the team used for testing.

77
elements that are needed are as follows:
• Time
• Rental cost
• Recruiting Costs
• Participants Compensation based on: You will need to
compensate the participants for their time and travel purposes
that also important to finding the testing budget.

78
Techniques and Methods of Usability Testing:
• Guerilla Testing
It is a type of testing where testers wander to public places and
ask random users about the prototype.
• Usability Lab
• Screen or Video Recording
Generally, there are two studies in usability testing –
• Moderated – the Moderator guides the participant for the
changes required in the product (software)
• Unmoderated – There’s no moderator (no human guidance),
participants gets a set of questions on which he/she has to
work.

79
Compatibility Testing :
• Type of non functional testing performed on an application to
check its compatibility (running capability) on different
platforms/environments.
• test aims to check the developed software application
functionality on various software, hardware platforms, networks
and browsers, etc.
• Types of Compatibility Testing:
1. Software
Types based on Version Testing:
Types of compatibility testing based on version testing:
a) Forward compatibility testing
b) Backward compatibility testing

80
2. Hardware
3. Smartphones
4. Network

How to perform Compatibility testing?


Testing the application in a same environment but having
different versions.

Testing the application in a same versions but having different


environment.

81
Why compatibility testing is important?
- It ensures complete customer satisfaction.
- It provides service across multiple platforms.
- Identifying bugs during development process.

Compatibility testing defects:


Variety of user interface.
Changes with respect to font size.
Alignment issues.
Issues related to existence of broken frames.
Issues related to overlapping of content.

82
Regression testing:
process of testing the modified parts of the code and the parts
that might get affected due to the modifications to ensure that
no new errors have been introduced in the software after the
modifications have been made.
When to do regression testing?
• When new functionality is added to the system and the code
has been modified to absorb and integrate that functionality
with the existing code.
• When some defect has been identified in the software and the
code is debugged to fix it.
• When the code is modified to optimize its working.

83
How Regression testing is done?

84
Techniques for the selection of Test cases for
Regression Testing
• Select all test cases
• Select test cases randomly
• Select modification traversing test cases: In this technique,
only those test cases are selected that cover and test the
modified portions of the source code and the parts that are
affected by these modifications.
• Select higher priority test cases:

85
86
Tools for Regression testing
• Selenium
• WATIR (Web Application Testing In Ruby)
• QTP (Quick Test Professional)
• RFT (Rational Functional Tester)
• Winrunner
• Silktest

87
Advantages of Regression Testing
-It ensures that no new bugs have been introduced after
adding new functionalities to the system.
-As most of the test cases used in Regression Testing
are selected from the existing test suite, and we
already know their expected outputs. Hence, it can be
easily automated by the automated tools.
-It helps to maintain the quality of the source code.
Disadvantages of Regression Testing
-It can be time and resource-consuming if automated
tools are not used.
-It is required even after very small changes in the code.

88
Smoke Testing:

also known as “Build Verification Testing”, “Build
Acceptance Testing,” or Confidence testing.

is a type of software testing that is typically performed at
the beginning of the development process to ensure that
the most critical functions of a software application are
working correctly.

determines whether the employed build is stable or not.

89
Characteristics of Smoke Testing:

Level of Testing: Without delving into specific functionality,
the testing procedure is superficial and broad-based,
covering only the most important features.

Automation: Automated smoke tests are a common way
to quickly and effectively confirm fundamental system
functionality.

Frequency of execution

Time Management: The process of determining the build’s
stability is usually swift, requiring little time.

Environment: Usually, smoke tests are carried out in a
controlled setting that is quite similar to the production
setting.

90
Goal of Smoke Testing :

Stop Wasting Resources

Time Management

Making Objective Decisions

Continuous Integration

Communication

91
Types of Smoke Testing:

Manual Testing

Automated Testing

Hybrid Testing

Daily Smoke Testing

Acceptance Smoke Testing

UI Smoke Testing: The user interface components of an
application are the only focus of UI smoke testing. It
checks that the fundamental user interface elements and
interactions are operating as intended.

92
Applying Smoke Testing at Different Levels:

Acceptance Testing Level: Smoke testing verifies that the
software build or application satisfies the minimal
acceptance criteria established by stakeholders or clients
during the acceptance testing stage.

System Testing Level: Smoke testing confirms that the
integrated system operates appropriately overall at the
system testing level.

Integration testing Level: Smoke testing is used at the
integration testing stage to verify how integrated modules
or components interact with one another.

93
Tools used for Smoke Testing:

Selenium, PhantomJS
Advantages of Smoke Testing:

Smoke testing is easy to perform.

It helps in identifying defects in the early stages.

It improves the quality of the system.

Smoke testing reduces the risk of failure.

Smoke testing makes progress easier to access.

It saves test effort and time.

It makes it easy to detect critical errors and helps in the
correction of errors.

94
Disadvantages of Smoke Testing:

Smoke Testing does not cover all the functionality in the
application. Only a certain part of the testing is done.

Errors may occur even after implementing all the smoke
tests.

In the case of manual smoke testing, it takes a lot of time
to execute the testing process for larger projects.

It will not be implemented against the negative tests or
with the invalid input.

95
Important Points:

Smoke testing is a type of software testing performed
early in the development process

The goal is to quickly identify and fix major issues with the
software

It tests the most critical functions of the application

Helps to determine if the build is stable enough to proceed
with further testing

It is also known as Build Verification Testing or Build
Acceptance Testing.

96

You might also like