Как понять, когда нужно прекратить тестирование?

Как понять, когда нужно прекратить тестирование?
Как понять, когда нужно прекратить тестирование? - nci @ Unsplash

Я знаю, что это очень простой вопрос. Для некоторых программных приложений существует большое, почти бесконечно большое количество тестовых случаев для приложения. Непрактично тестировать все эти тестовые случаи. Как нам решить, когда прекратить тестирование? (кроме "когда закончатся деньги").

В книге Гленфорда Майерса The Art of Software Testing есть простое, но хорошо обоснованное правило для этого: Тестирование завершено, когда вы перестали находить ошибки. Или, более практично, когда скорость, с которой вы находите новые ошибки, значительно замедляется.

Ошибки имеют тенденцию "группироваться" в определенных модулях и определенных функциях: Как только вы нашли ошибку в одном из них, вы знаете, что вам следует искать в нем еще больше ошибок. Чтобы найти ошибки, вы можете использовать техники тестирования "черного ящика", тестирования "белого ящика" и мутационного тестирования. Пока вы находите ошибки, вы знаете, что ваш процесс тестирования работает!

Чтобы представить себе свой прогресс, постройте график количества ошибок, найденных вашей командой за день. Если график наклоняется вниз, то вы знаете, что методы, которые использует ваша команда, все равно их не найдут. Конечно, если вы считаете, что ваши методы не соответствуют требованиям, то, пожалуйста, прочитайте книгу Майерса и примените ее принципы.

Есть вероятность, что вы просто не успели пропустить новый патч с ошибками, и скорость нахождения ошибок значительно возросла бы, если бы вы продолжили тестирование еще немного. Однако, если вы уверены, что ваши методы надежны, это маловероятно.


LetsCodeIt, 27 мая 2023 г., 03:39

Похожие посты

Как написать тесты для Selenium (или аналогичные), которые не будут срабатывать из-за незначительных или косметических изменений?"Тестирование" на доске во время собеседования: законный способ подкрепить свой код (на доске)?Приводит ли предоставление разработчику более медленной машины для разработки к более быстрому/эффективному коду?Считаются ли тестировщики низкопрофильными?Что должен делать тестировщик (специалист по обеспечению качества) в scrum-команде?Что бы вы добавили в этот контрольный список проектов по разработке программного обеспечения?Различия между уровнями сертификации качества программного обеспечения?Когда это становится излишеством?Действительно ли big-O так важна при работе в промышленности?Должна ли компания-разработчик программного обеспечения иметь специальную команду для исследований и/или полезных библиотек?