пятница, 2 июля 2010 г.

Формализованное (scripted) тестирование: преимущества и недостатки

Недавно прочитал книгу «A Practitioner's Guide to Software Test Design» by Lee Copeland (http://www.amazon.com/Practitioners-Guide-Software-Test-Design/dp/158053791X ) очень понравилось четкое определение преимуществ и недостатков формализованного (scripted) тестирования.
Приведу примеры из книги .

Преимущества:
1.    Формализованное тестирование обеспечивает разделение работ – планирование, проектирование, разработка и выполнение тест кейсов может быть выполнено людьми со специфическими навыками и в различное время на протяжении процесса разработки.
2.    Техники тестирования, такие как разбиение на классы эквивалентности, тестирование граничных условий, тестирование потока данных, парное тестирование и т.д. могут быть интегрированы непосредственно в процесс тестирования и использоваться для проверки соблюдения процессов.
3.    Из-за того, что формализованные тесты созданы из требований, дизайна и кода, все важные атрибуты системы покрываются тестами и это покрытие можно продемонстрировать.
4.    Из-за того, что тест кейсы можно однозначно отлинковать к требованиям, покрытие  дизайна и кода может быть легко определено и измерено.
5.    Из-за того что тесты детализированы, они легче поддаются автоматизации.
6.    Из-за того, что тесты создаются на ранних этапах в процессе разработке, это позволяет высвободить дополнительно время в критический период выполнения тестирования.
7.    В ситуациях, когда отсутствует хорошая спецификация требований, тест кейсы по окончанию проекта становятся де-факто спецификацией требований, включая также фактические результаты выполнения тестирования.
8.    Формализованные тесты, которые написанные с достаточным уровнем детализации, могут быть выполнены людьми, которые не обладают достаточными знаниями в предметной области или в тестировании программного обеспечения.
9.    Путем создания тестов на ранних этапах проекта мы можем обнаружить неисследованные ранее области.

Недостатки:
1.    Формализованное тестирование напрямую зависит от качества требований. Были ли требования действительно завершенными, стабильными и однозначными, когда они брались за основу для формализованного тестирования? Вряд ли.
2.    Формализованное тестирование, по своему определению, не гибкое. Оно всегда следует согласно запланированному перечню действий (скрипту). Если, во время тестирования, мы увидим что-то странное, мы сделаем заметку, но не будем продолжать «копать» в этом направление. Почему? Из-за того, что этого нет в скрипте. Множество интересных дефектов могут быть пропущены при использовании данного подхода.
3.    Формализованное тестирование часто используется для снижения роли тестировщика. Данный подход можно описать как «Научи тестировщика выполнять один вид тестов и отправь его тестировать гору тестов. Из-за большого количества тестов, мы вероятно найдем большинство дефектов»

1 комментарий:

  1. Хорошая статья. Грамотно изложено преимущества и недостатки. И преимущества взяли верх.

    ОтветитьУдалить