Лекция № 11
Служба обеспечения качества – Quality Assurance (qa)
- это группа или отдел фирмы, специализирующийся на независимом тестировании, отслеживании ошибок и общей оценке качества продуктов на разных стадиях их разработки.
Отслеживание ошибок заключается в контроле процесса их исправления и сборе статистики о нем. В частности, составляются еженедельные отчеты для руководства:
Сводные отчеты за неделю об ошибках: выявленных (новых), исправленных, задержанных и т.д., отсортированных по приоритетам, по функциональным областям и пр.
Еженедельные отчеты о состоянии проекта, напр., в следующей форме:
Состояние проекта
Программа Сalcdog Выпуск 2.10
Отчет сгенерирован 08.03.01. Предыдущий отчет датирован 01.03.01.
На дату предыдущего
К-во неисправленных ошибок Сейчас отчета
Фатальных 113 100
Серьезных 265 220
Незначительных 333 300
Всего 711 620
С момента составления предыдущего отчета:
выявлено ошибок 182
исправлено ошибок 85
отложено исправление ошибок 7
Всего отложено исправление ошибок 118
Подобные сводные отчеты генерируются после каждого цикла тестирования и выпуска очередной версии. Они содержат информацию о динамике процесса разработки и качестве работы команды. В принципе, возможен сбор подобной статистики поименно по исполнителям для оценки уровня качества работы персонала, но это опасно с психологической точки зрения.
Cредства автоматизации тестирования
А. Автоматизация прогона тестов - актуально для регрессионного тестирования -
автоматический запуск программы с каждым тестом из набора, сравнение реального результата с ожидаемым и выдача отчета об обнаруженных расхождениях - ошибках.
Это сравнительно просто делается для неинтерактивной программы, считывающей все входные данные из файла: пишется командный файл или скрипт. Существует стандарт IEEE скриптового языка для описания тестовых наборов. Для интерактивной программы приходится перенаправлять клавиатурный ввод и экранный вывод на файловые. Здесь две проблемы: невозможность задания временных параметров ввода и трудность формального определения ошибок видимых на экране. Первая проблема решаются специальными средствами перехвата и запоминания ввода с клавиатуры и мыши; процесс такой записи на порядок более трудоемкий, чем ручной ввод, поэтому затраты на нее окупаются только после десятого прогона тестового набора.
В целом разумно автоматизировать прогон только ограниченного набора тестов – «приемочного», в который включают наиболее важные тесты.
B. Средства автоматизации анализа результатов тестов:
Отладчики стандартных систем программирования - помогают локализовать ошибку. Вопрос 1.
Анализаторы динамики (profilers - профайлеры) - помогают проверять соответствие тестовых наборов структурным критериям тестирования (а также служат средством протоколирования времени выполнения отдельных функций, т.е. измерения производительности отдельных частей программы с целью ее оптимизации).
Профайлеры входят в состав стандартных отладчиков; существуют также специальные инструменты производства компании Rational:
Rational Pure Coverage - выявляет участки кода, пропущенные при тестировании: инструмент подсвечивает их красным цветом. То есть, он помогает убедиться, выполнен ли критерий С1.
Rational Quantify - генерирует в табличной форме список всех вызываемых в процессе работы приложения функций, указывая временные характеристики каждой из них. Это делается путем вставки счетчиков машинных циклов в код для каждого функциональ-ного блока тестируемой программы, включая все используемые ею компоненты (DLL, системные вызовы).
Rational Purify – собирает статистику об использовании памяти приложением, написанном на VC++, и позволяет локализовать ошибки: утечки памяти, потерянные блоки, фиктивные ссылки.
С. Средства автоматизации подготовки тестов
Генераторы случайных тестов в заданных классах входных данных.
Средства автоматической генерации структурных тестов, например, по методу "символического выполнения" Кинга.