Mutation Testing - Software Testing

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Mutation Testing – Software Testing

Mutation Testing is a type of Software Testing that is performed to design new


software tests and also evaluate the quality of already existing software tests.
Mutation testing is related to modification a program in small ways. It focuses
to help the tester develop effective tests or locate weaknesses in the test data
used for the program.

.
Objective of Mutation Testing:
The objective of mutation testing is:
 To identify pieces of code that are not tested properly.
 To identify hidden defects that can’t be detected using other testing
methods.
 To discover new kinds of errors or bugs.
 To calculate the mutation score.
 To study error propagation and state infection in the program.
 To assess the quality of the test cases.
Advantages of Mutation Testing:
 It brings a good level of error detection in the program.
 It discovers ambiguities in the source code.
 It finds and solves the issues of loopholes in the program.
 It helps the testers to write or automate the better test cases.
 It provides more efficient programming source code.
Disadvantages of Mutation Testing:
 It is highly costly and time-consuming.
 It is not able for Black Box Testing.
 Some, mutations are complex and hence it is difficult to implement or run
against various test cases.
 Here, the team members who are performing the tests should have good
programming knowledge.
 Selection of correct automation tool is important to test the programs.

Regression Testing – Software Engineering


Regression testing is a crucial aspect of software engineering that ensures the
stability and reliability of a software product. It involves retesting the previously
tested functionalities to verify that recent code changes haven’t adversely
affected the existing features.
By identifying and fixing any regression or unintended bugs, regression
testing helps maintain the overall quality of the software. This process is
essential for software development teams to deliver consistent and high-quality
products to their users.

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

Techniques for the selection of Test cases for Regression Testing


 Select all test cases: In this technique, all the test cases are selected from
the already existing test suite. It is the simplest and safest technique but
not very efficient.
 Select test cases randomly: In this technique, test cases are selected
randomly from the existing test suite, but it is only useful if all the test
cases are equally good in their fault detection capability which is very
rare. Hence, it is not used in most of the cases.
 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: In this technique, priority codes are
assigned to each test case of the test suite based upon their bug detection
capability, customer requirements, etc. After assigning the priority codes,
test cases with the highest priorities are selected for the process of
regression testing. The test case with the highest priority has the highest
rank. For example, a test case with priority code 2 is less important than a
test case with priority code 1

You might also like