Введение в тестирование по содержание
Скачать 3.94 Mb.
|
Трудности тестирования в каскадной модели 1/3#1 Поиск компромисса между качеством и сроками поставкиПоскольку тестирование начинается только в конце проекта, оно, как правило, выполняется в условиях нехватки времени. В таких ситуациях приходится выбирать между качеством и сроками поставки. Распространенная ситуация: тестировщики под давлением дают добро продукту, многие дефекты которого проявятся во время эксплуатации.В таких ситуациях тестировщиков могут обвинить в том, что они тормозят процесс.Трудности тестирования в каскадной модели 2/3#2 Разработчиков также поджимают сроки, в результате чего они передают тестировщикам нестабильные и часто не поддающиеся тестированию системы. Это приводит к тому, что львиная часть графика тестирования уходит на то, что по своей сути, является вынужденным, повторным модульным тестированием.Трудности тестирования в каскадной модели 3/3#3 Позднее включение тестировщиков в проектКогда тестировщики подключаются к работе на стадии формирования требований, тестирование выполняет превентивную функцию, анализируя требования и предотвращая попадание дефектов в код.При подключении тестировщиков на более поздних стадиях тестирование выполняется в лучшем случае в рамках реактивной стратегии, в худшем – экспромтом. При этом нет ни предупреждения дефектов, ни четких границ, ни ограниченного объема тестирования.Итеративные или инкрементальные модели – это модели, в которых система реализуется и тестируется итерационно, блокамиФормирование требований, проектирование, сборка, и тестирование системы делиться на большое количество итераций. Примеры: Rapid Application Development (RAD), Rational Unified Process (RUP) и гибкие методологии разработки (Agile).Цикл «планирование-действие-проверка-корректировка» Ключевые характеристикиСистема разрабатывается повторяющимися циклами (итеративная модель). Одновременно разрабатываются лишь небольшие части системы (инкрементальная модель) В результате каждой итерации появляется рабочий продукт, являющийся частью конечного разрабатываемого продукта ПреимуществаГибкость в принятии новых требований или изменений Возможность адаптации процесса на основе уроков, извлеченных из предыдущих итераций Более короткие сроки вывода продукта на рынок: возможность получить отзывы от заказчиков/пользователей путем демонстрации рабочих частей системы НедостаткиСтоимость продукта неизвестнаМогут возникнуть проблемы с архитектурой системы, поскольку требования для всего жизненного цикла программы не собираются заранее #1 Большие объемы регрессионного тестированияКаждое расширение системы требует регрессионного тестирования всех функций и возможностей, представленных в предыдущих итерациях.Поскольку наиболее важные функции и возможности, как правило, выполняются на более ранних итерациях, очень важно проследить, чтобы они не были повреждены.#2 Отсутствие четкого плана для обнаружения и устранения дефектовПроявляется это в том, что программисты уделяют все рабочее время последующим расширениям в то время, как тестировщики тестируют текущую итерацию.Как только тестировщики сообщают об обнаруженных дефектах, бизнес-аналитики, проектировщики и программисты, которые должны решать эти проблемы, начинают работать в режиме полной загрузки.#3 Отсутствие должного внимания и уважения к тестированиюЭта проблема не имеет всеобщего охвата, однако, в сообществе гибкой разработки есть, в некотором смысле пренебрежительное отношение к тестированию и связанными с ним активностями.Спиральная модельСистема разрабатывается на основе ранних прототипов. Разработка движется от прототипа к прототипу, каждый из которых тестируется, затем перепроектируется и повторно прототипируется, после чего снова тестируется. И так до тех пор, пока все рискованные конструктивные решения не пройдут тестирование (или не пройдут и будут отвергнуты) .Спиральная модельСпиральная модельКлючевые характеристикиСпиральная модель сочетает в себе концепцию итеративной разработки с систематикой и контролем водопадной модели:Данная модель включает в себя большую часть этапов водопадной модели, и в том же порядке. Однако этапы отделены друг от друга планированием, оценкой рисков, прототипированием и имитацией. На каждой итерации по всему циклу продукт является расширением более раннего продукта (как в итеративной модели) Расширение модели осуществляется только после анализа рисков: во время каждого цикла проводиться поиск крупных рисков и делаются попытки по их устранению |