Оглавление:
Определение - что означает мутационное тестирование?
Мутационное тестирование - это метод тестирования программного обеспечения, при котором программа или исходный код преднамеренно манипулируется, после чего следует набор тестов с использованием мутированного кода. Мутации, введенные в исходный код, предназначены для имитации распространенных ошибок программирования. Хороший набор модульных тестов обычно обнаруживает мутации программы и автоматически завершается с ошибкой.
Мутационное тестирование используется на разных платформах, включая Java, C ++, C # и Ruby.
Техопедия объясняет мутационное тестирование
Мутационное тестирование - это простой, но оригинальный метод, используемый для проверки правильности исходного кода и процесса тестирования. Впервые эта концепция была придумана Ричардом Липтоном в 1971 году, и с тех пор наблюдается повышенный интерес.
Механизм мутационного тестирования прост и понятен. Кусок исходного кода, охватывающий все модульные тесты, выбран. После проверки всех положительных тестов для данного исходного кода, мутация вводится в программу.
Степень мутации, применяемая к данному блоку кода, может варьироваться. Обычная реализация тестирования мутации включает замену логического оператора его обратным. Например, оператор "! =" Используется вместо "= =." В некоторых случаях мутация включает в себя перестановку строк для изменения порядка выполнения или даже удаление нескольких строк кода. Сложные уровни тестирования мутации могут привести к ошибкам компиляции.
Как только программа модифицирована, выполняется набор модульных тестов с измененным кодом. Измененный код проходит или не проходит модульное тестирование, в зависимости от качества тестирования. Хорошо написанный модульный тест должен обнаруживать ошибки в коде, приводящие к сбою. Модульный тест, который не может обнаружить ошибки кода, может потребовать переписать.
Мутационное тестирование дает следующие преимущества:
- Идентификация неисправности кода программы
- Разработка эффективного тестового примера
- Обнаружение лазеек в тестовых данных
- Улучшенное качество программного обеспечения
- Устранение неоднозначности кода
Недостатки мутационного тестирования включают в себя:
- Сложная реализация сложных мутаций
- Дорого и отнимает много времени
- Требуются опытные тестировщики со знанием программирования
