0% found this document useful (0 votes)
28 views8 pages

Unit 3

Static Testing is a software testing method that identifies defects without executing code, making it essential for early bug detection, cost reduction, and improved productivity. Various activities such as informal reviews, walkthroughs, and inspections are part of static testing, while dynamic testing involves executing code to find defects. The document also covers different testing types, including unit, integration, system, user acceptance, non-functional, and regression testing, each with specific objectives and techniques.

Uploaded by

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

Unit 3

Static Testing is a software testing method that identifies defects without executing code, making it essential for early bug detection, cost reduction, and improved productivity. Various activities such as informal reviews, walkthroughs, and inspections are part of static testing, while dynamic testing involves executing code to find defects. The document also covers different testing types, including unit, integration, system, user acceptance, non-functional, and regression testing, each with specific objectives and techniques.

Uploaded by

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

UNIT-3

Static Testing

Static Testing is a type of Software Testing method that is performed to check the
defects in software without actually executing the code of the software application.
Whereas in Dynamic Testing checks, the code is executed to detect the defects.

Need for Static Testing


Static testing is needed whenever the following situations are encountered while
testing an application or software:
1. Increased software size: Static testing is required to get free from bugs in the
early stages of development as with testing activity the size of the software
increases which is difficult to handle due to a reduction in the productivity of the
code coverage.
2. Dynamic testing is expensive: Dynamic testing is more expensive than static
testing as dynamic testing uses test cases that have been created in the initial
stages and there is also a need to preserve the implementation and validation of
the test cases which takes a lot of time from test engineers:
3. Dynamic testing is time-consuming: Static testing is required as dynamic
testing is a time-consuming process.
4. Bugs detection at early stages: Static testing is helpful as it finds bugs at
early stages, while dynamic testing finds bugs at later stages which makes it
time-consuming and costly to fix the bugs.
5. Improvement of development productivity: Static testing helps to identify
bugs early in the software development thus it helps to reduce the flaws during
production and increase development productivity.

Static Testing Activity

o Informal reviews
In informal review, the document designer place the contents in front of viewers, and
everyone gives their view; therefore, bugs are acknowledged in the early stage.
o Walkthrough
Generally, the walkthrough review is used to performed by a skilled person or expert to
verify the bugs. Therefore, there might not be problem in the development or testing
phase.

1
o Peer review
In Peer review, we can check one another's documents to find and resolve the bugs,
which is generally done in a team.
o Inspection
In review, the inspection is essentially verifying the document by the higher
authority, for example, the verification of SRS [software requirement specifications]
document.
o
o

o Validation Activites
o unit testing

o The unit testing is the first level of functional testing to perform any testing on the
software application.
o We will perform the unit testing whenever the application is ready and given to the Test
engineer. He/she will start checking every component of the module or application
independently or one by one. And this process is known as components testing.
o The primary objective to perform unit testing is to test the correctness of remote code
and validate the unit components with their performance.
Integration testing

o When we have successfully done the unit testing on the specific software, we will go for
the integration testing. The integration testing will help us to combined individual units
and tested as a group. And it is the second levelof functional testing.
o When all the components or modules are working independently, we will check the data
flow between the dependent modules, which is known as integration testing.
o The developers and the test engineer perform the integration testing. And the main
purpose of the integration is to identify the faults in the interaction between the
integrated units.
System testing

o System testing is used to check the end-to-end flow of an application or the software as
a user.
o System testing is also known as end-to-end testing as the testing environment is
similar to the production environment.
o In the third level (system testing) of functional testing, we go through all the necessary
modules of an application and check if the end features or the end business works fine,
and test the product as a whole system.
User acceptance testing

2
o The user acceptance testing is performed to certify the system according to
requirements. The customer or client does it before accepting the final product.
o In other words, we can say that the UAT is done by the customer (domain expert) for
their satisfaction and check whether the application is working according to given
business scenarios and real-time scenarios.
o It is the last level of functional testing, which is execute before releasing the software to
the market or production environment where two or more end-users will involve.

Non- Functional testing


Another part of black-box testing is non-functional testing. It is used to test non-functional constraints
like load test, reliability, performance, and software accountability.

The main objective of performing the non-functional testing is to test the software system's reading speed
according to the non-functional parameters because these parameters are never tested before the
functional testing.

Non-functional testing plays a vital role in customer satisfaction while testing the software or the
application.

It reduces the risk of production and related costs of the software, and it provides a thorough knowledge
of product behavior and used technologies.

Furthermore, the non-functional testing is divided into various parts, which can be performed at the test
level.

o Performance testing
o Usability testing
o Compatibility testing
o Recovery testing
o Security testing
Let's understand them in details one by one:

Performance Testing

o The performance testing is the most importantly used type of non-functional


o Once the software is stable and moved to the production, and it may be accessed by
multiple users concurrently, we will do performance testing.
o The performance testing is testing where we check the behavior of an application by
applying some load.
o As we know it is non-functional testing, which doesn't mean that we always use
performance testing when the application is functionally stable; only then we go for
performance testing.
Usability Testing

o In usability testing, we will check the user-friendliness, efficiency, and accuracy of the
software application.
o If we are using usability testing, it ensures that the developed software is easy to test
while using the system without facing any problem and makes end-user life easier.
Compatibility testing

3
o The next type of non-functional testing is compatibility testing, which is used to
check the functionality of an application on different software, hardware platforms,
network, and browsers.
o The compatibility testing is not performed for all the applications; we will use the
compatibility testing only for those applications where we don't have control over the
platform used by users.
Recovery testing

o In recovery testing, we can verify how well a system can recover from hardware
failures and crashes.
o It reproduced the failure modes or essential producing failures in a controlled
environment.
o The recovery testing is performed to confirm that a system is fault-tolerant and can
improve well from failures.
Security testing

o The security testing is used to discover the weaknesses, risks, or threats in the software
application and help us stop the nasty attack from outsiders and ensure our software
applications' security.
o The main purpose of security testing is to identify all the possible uncertainties and
vulnerabilities of the application so that the software does not stop working.

Regression Testing

Regression testing is like a software quality checkup after any changes are made.
It involves running tests to make sure that everything still works as it should, even
after updates or tweaks to the code. This ensures that the software remains
reliable and functions properly, maintaining its integrity throughout its development
lifecycle.
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.
Process of Regression testing
Firstly, whenever we make some changes to the source code for any reason like
adding new functionality, optimization, etc. then our program when executed fails
in the previously designed test suite for obvious reasons. After the failure, the
source code is debugged to identify the bugs in the program. After identification of
the bugs in the source code, appropriate modifications are made. Then appropriate
test cases are selected from the already existing test suite which covers all the

4
modified and affected parts of the source code. We can add new test cases if
required. In the end, regression testing is performed using the selected test cases.
progressive testing vs regression testing

5
Objectives of Regressive Testing
Checks if bug has been addressed: The first objective in bug-fix testing is to check whether
the bug fixing has worked or not. Therefore, you run exactly the same test that was executed
when the problem was first found. If the program fails on this testing, it means the bug has not
been fixed correctly and there is no need to do any regression testing further.
Finds other related bugs: It may be possible that the developer has fixed only the symptoms
of the reported bugs without fixing the underlying bug. Moreover, there may be various ways to
produce that bug. Therefore, regression tests are necessary to validate that the system does
not have any related bugs.
Check effect on other parts of program: It may be possible that bug-fixing has unwanted
consequences on other parts of a program. Therefore, regression tests are necessary to check
the influence of change in one part on other parts of the program.

Types of Regression Testing :


There are 4 types of regression testing in software testing. Let’s discuss them one
by one:
1. Corrective Regression testing –
This type of testing is used in the software testing process when specifications are
not modified and all test cases can be reused in the testing. It requires less time to
find the faults or bugs. It is known as one of the most popular types in the current
generation and also for its convenience and repetitive use in testing.
This testing technique analyses the effect of new code on the product’s existing
source code and also uses a subset of existing test cases to minimize the costs
and efforts needed for testing.

2. Progressive Regression testing –


This type of testing is used in the software testing process when the specifications
are modified or changed and all the new test cases must be created newly. This
testing is recommended when you are developing new test cases.
It also allows the testers to perform the required step within the modified or
updated version of the program without using the current program code. The
testing also works fine when there are only a few changes to be performed in the
model and also while creating new test cases.

3. Retest-all Regression testing –


This type of testing is used in the software testing process and it reuses all tests
but this method of testing may require more time and cost as it does the
unnecessary execution of tests. Therefore, it is advised for the testers to know and
understand the activity before starting the testing process.

6
However, when the modification to a system is small, this method of testing is not
recommended. Also, It is not recommended to perform this testing for every
software product because of time constraints as most of the clients prefer avoiding
this.

4. Selective Regression testing –


This type of testing is used in the software testing process that uses a subset of
the existing test cases to reduce the time and cost of the testing. The objective of
this testing is to find the dependencies between a test case and the program
entities it covers. Selective regression uses the following steps in its testing
process:
 Step 1. The first step is to identify the affected components of the software after
the program has been changed.

 Step 2. After that, it selects a subset of test cases from an existing test suite(set
of test cases) that covers the components of software affected by the changes
or modifications.

 Step 3. Then, it tests the changed program to create the correctness of the
program.

 Step 4. After that, it examines the test results to identify the software failure.

 Step 5. If it finds any fault then it corrects that fault(s) that causes that failure.

 Step 6. At last, it updates the test suite and test history of the program.
Various types of testing are used by software engineers and testers. Therefore,
every tester needs to find the right testing type and set of processes so that they
can save cost and energy and work with great efficiency.

Regression techniques
Regression testing can be performed using the following techniques:

7
1. Re-test All:

Re-Test is one of the approaches to do regression testing. In this approach, all the test case suits should
be re-executed. Here we can define re-test as when a test fails, and we determine the cause of the failure
is a software fault. The fault is reported, we can expect a new version of the software in which defect
fixed. In this case, we will need to execute the test again to confirm that the fault fixed. This is known as
re-testing. Some will refer to this as confirmation testing.

The re-test is very expensive, as it requires enormous time and resources.

2. Regression test Selection:

o In this technique, a selected test-case suit will execute rather than an entire test-case
suit.
o The selected test case suits divided in two cases

o Reusable Test cases.


o Obsolete Test cases.
o Reusable test cases can use in succeeding regression cycle.
o Obsolete test cases can't use in succeeding regression cycle.
3. Prioritization of test cases:

Prioritize the test case depending on business impact, critical and frequently functionality used. Selection
of test cases will reduce the regression test suite

You might also like