Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Тема испытаний и тестирования во всех моделях СМК занимает особое место, и написано на эту тему уже очень много.
Это очень важный процесс: во многих компаниях поэтому и всю деятельность по обеспечению качества проекта ошибочно сводят именно к организации только тестирования.
Самым понятным действием для обеспечения качества ИТ-проекта, конечно, является увеличение степени покрытия тестовыми сценариями функциональности внедряемой системы до 100 %.
Как этого достигнуть? Немного вспомним теорию [11]. Сообществом тестировщиков и практической работой выделены основные типы тестов (рис. 2.10).
Современные руководства, такие как MSF [5], выделяют следующие рекомендации к разработке тестов:
• все необходимые тесты должны быть готовы к моменту реализации той или иной части программы, при этом обычно один тест соответствует одному требованию;
• совокупность ранее созданных тестов должна (при неизменных требованиях) выполняться на любой версии программы;
• если в требования вносятся изменения, то тесты должны меняться максимально оперативно.
Иными словами, ошибка— будь она в требованиях, в проекте или в реализации — не живет дольше момента запуска теста, проверяющего реализацию именно данного требования потребителя. Значит, хотя время между «внесением» ошибки и ее обнаружением может оказаться и большим, но впустую усилий потрачено не очень много, реализация же не успела уйти далеко.
И это очень важно как раз для качества проекта в целом из-за снижения трудозатрат на переделки.
Конкретный пример. Разрабатывается приложение над БД, формочки уже готовы, можно начинать делать тесты, но бизнес-логика реализована не полностью, БД не готова.
Что делать? Заменить в бизнес-слое неработающие функции, которые должны обращаться к БД, заглушками, которые, скажем, читают данные из файла или возвращают какие-то «правдоподобные» случайно сгенерированные данные, а то и просто всегда одно и то же значение. И использовать эту «заглушку» при модульном тестировании и для отладки тестовых сценариев. А когда появится реализация, пригодная для интеграционного тестирования, то вот они и тесты, тут как тут, готовые и отлаженные.
Вообще процесс исправления ошибок имеет рефлекторный характер — уничтожение выявленной ошибки частенько приводит I к появлению новых и даже более серьезных проблем. И если
ошибка заложена в логической структуре программы, то, возможно, придется менять и логику и переписывать приличные куски кода.
Как свидетельствует печальная статистика [11], каждое исправление ошибки имеет 15 % вероятности породить новую ошибку. Поэтому надо взять за правило — чем раньше спроектирован тест, тем больше надежда на успех.
И лучше всего спроектировать тест еще на этапе логического построения системы. Но скажем честно: программисты ненавидят тестирование.
Это, наверное, самое нудное и раздражающее занятие в разработке систем. Тестирование — это часы и дни погони,за неизвестными багами, отладка, проверка всех возможных комбинаций и ситуаций — и все для того, чтобы убедиться, что программа или система в большинстве случаев работает правильно. Но все равно что-нибудь да и ускользнет от внимания.
Поэтому на практике критерием успешности тестирования служит достижение точки конвергенции (Bug Convergence) — когда скорость устранения ошибок начинает превосходить скорость их обнаружения (рис. 2.11).
Поскольку количество найденных, но не устраненных ошибок может колебаться даже после того, как оно начало убывать, конвергенция может рассматриваться скорее как тенденция, нежели как фиксированный момент во времени.
Вслед за этой вехой количество активных ошибок должно продолжать убывать вплоть до следующей вехи — точки достижения нуля. Но точка конвергенции дает проектной группе возможность понять, что процесс тестирования уже близится к концу.
Точка достижения нуля (Zero-bug Bounce) — это момент, когда впервые все выявленные ошибки оказываются устраненными (см. рис. 2.11). Вслед за ней пики количества активных ошибок должны уже становиться все меньше и меньше вплоть до полного угасания в момент, когда бизнес-решение уже достаточно стабильно для выпуска.
Заметим, что новые ошибки после достижения этой вехи наверняка будут найдены. Однако точка достижения нуля — первый момент в работе над проектом, когда команда уже может честно отчитаться об отсутствии активных ошибок и сфокусироваться на сохранении этого состояния.
И наконец, тестирование приемлемости для потребителей (User Acceptance Testing).
Производятся такие тесты, как правило, начиная с фазы разработки и продолжаются вплоть до фазы внедрения.
Их цель — убедиться в том, что новая система в целом отвечает требованиям бизнеса потребителя. Это включает проверку интеграции системы с работающими в производственной среде бизнес-приложениями.
Тестирование потребительских качеств дает персоналу сопровождения и пользователям возможность понять и испытать новую технологию на практике. Этот процесс как раз и помогает выявить аспекты, в которых у пользователей в дальнейшем могут возникнуть трудности, что плавно переносит нас к обсуждению следующего действия.
Дата публикования: 2015-01-04; Прочитано: 526 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!