Mutation Testing
Definition - What does
Mutation Testing
mean?
Mutation testing is a method of software testing in which program or source code is deliberately manipulated, followed by suite of testing against the mutated code. The mutations introduced to source code are designed to imitate common programming errors. A good unit test suite typically detects the program mutations and fails automatically.
Mutation testing is used on many different platforms, including Java, C++, C# and Ruby.
Techopedia explains
Mutation Testing
Mutation testing is a simple but ingenious method used to validate source code correctness and the testing process. The concept was first coined by Richard Lipton in 1971, and there has been a surge of interest since that time.
Mutation testing's working mechanism is simple and straightforward. A piece of source code encompassing all unit tests is selected. After verifying all positive testing for a given source code, a mutation is introduced into the program.
The degree of mutation applied to a given code block may vary. A common mutation testing implementation involves replacing a logical operator with its inverse. For example, operator "! =" is used in place of "= =." In some cases, mutation involves rearranging lines to change the execution order or even deleting a few lines of code. Complex mutation testing levels may result in compilation errors.
Once a program is modified, a suite of unit tests are executed against the mutated code. The mutated code passes or fails the unit test, depending on the testing quality. A well-written unit test must detect mutated code errors, resulting in failure. A unit test that fails to detect code errors may require a rewrite.
Mutation testing facilitates the following advantages:
Program code fault identification
Effective test case development
Detection of loopholes in test data
Improved software program quality
Elimination of code ambiguity
Disadvantages of mutation testing include:
Difficult implementation of complex mutations
Expensive and time-consuming
Requires skilled testers with programming knowledge
Home
Dictionary
Tags
Software
Related Terms
Source Code
Black Box Testing
Software Engineering
Conditional Logical Operator (C#)
White-Box Testing
Compiler
Related Videos
Related Links
Related White Papers
Other Resources
5 Things Your Software Development Teams Should be Doing Now
- In this ever-changing world of software development, it's critical to keep up with technologies, methodologies and trends. Discover five tested and proven software development practices your team should be utilizing to accelerate software delivery.
Related Tags
Categories:
Development
Programming Tools
Software Applications
Software Testing
Software
Recommended For You
close
5 Steps to Creating a Successful API
Read More
ยป
Tweet
Tweet
Popular White Papers
Techopedia Newsletter Sign-Up
Get Techopedia delivered to your inbox!
Term of the Day:
Get a new Techie Term sent to you every business day
Best of Techopedia:
We"ll bring you the best Techie articles each month.
Sign-In
Join Techopedia
Follow Us
Follow Techopedia on Facebook
Follow Techopedia on LinkedIn
Follow Techopedia on Twitter
Add Techopedia on Google Plus
Get Techopedia on RSS
Home
Dictionary
Articles
Tutorials
Newsletters
Development
Networks
Wireless
Support
Linux
Enterprise
Enterprise Apps
Security
CRM
IT Business
IT Careers
IT Management
Trends
Cloud Computing
Mobile computing
Personal Tech
Gaming
Internet
Search Engines
Social Media
World Wide Web
All Topics
Hacking
Online Marketing
Buzzwords and Jargon
Viruses
Operating Systems
Legal
People