гост. 19621_ГОСТ Р 56920_Определения (1). Системная и программная инженерия
Скачать 0.52 Mb.
|
5.6.1 Введение Основанный на рисках подход к тестированию, представленный в 5.4, широко применяется и является с точки зрения серии стандартов ИСО/МЭК/ИИЭР 29119 фундаментальным подходом. Существует множество различных методов планирования и реализации тестирования проектов. Традиционная практика была вынуждена базироваться на тестировании выполнения требований получать перед выполнением теста контрольные примеры вручную и использовать смесь ручного и автоматизированного управления выполнением теста. Использование тестирования на базе рисков не означает, что эти практики нельзя использовать в планировании тестирования, претендующего на соответствие с ИСО/МЭК/ИИЭР 29119-2. Выбор стратегии тестирования определяется множеством рисков, таких как риски организации, риски проекта и элемента тестирования. Например, организация может подвергаться риску нарушения контракта, если она не гарантирует, что проверяется каждое требование. Поэтому применение основанной на требованиях практики может быть способом управления этим организационным риском. В данном разделе представлен ряд методик тестирования, каждая из которых может использоваться как составная часть стратегии тестирования, создаваемой в соответствии с ИСО/МЭК/ИИЭР 29119-2. Как правило, изолированное применение любой из этих методик тестирования маловероятно, и она может использоваться в качестве составной части большей стратегии тестирования. Этот раздел описывает применяемые в настоящее время различные методики тестирования для того, чтобы продемонстрировать некоторые возможности тестирования, доступные во время планирования тестирования. 5.6.2 Основанное на требованиях тестирование Главная цель основанного на требованиях тестирования состоит в обеспечении гарантии, что во время тестирования требования к элементу тестирования были рассмотрены (то есть "покрыты") для определения того, отвечает ли элемент тестирования требованиям конечного пользователя. Это тестирование используется также для сбора и предоставления заинтересованным сторонам другой ценной информации жизненного цикла, такой как идентифицированные в элементе тестирования дефекты. При применении этой практики требования используются для того, чтобы предоставлять информацию, необходимую для принятия решений по планированию, проектированию и реализации тестирования и выполнению процессов. Следует отметить, что основанное на требованиях тестирование может быть, в частности, использовано для получения результатов верификации требований, определенной в ИСО/МЭК 12207. В основанном на требованиях тестировании преимущественно используется тестирование по сценарию. Контрольные примеры пишутся перед выполнением теста в ходе процесса Разработки и Реализации Тестирования. Далее контрольные примеры выполняются в ходе процесса Выполнения Теста согласно расписанию, определенному в Процедуре Тестирования. Затем производится анализ результатов выполнения теста для последующего усовершенствования тестирования, которое может потребовать дополнительной работы по проектированию тестирования и сценария контрольного примера. Контрольные примеры, создаваемые в ходе такого дополнительного проектирования тестирования, документируются и проводятся далее в жизненном цикле выполнения теста. Основанное на требованиях тестирование может поддерживаться другими методиками тестирования, если эти методики помогают продемонстрировать, что требования тестируются надлежащим образом. Для обеспечения гарантии выполнения всех требований дополнительно к использованию основанного на требованиях тестирования с целью разрешения других рисков могут быть применены и другие методы (например, тестирование на базе опыта). Необычным является требование отсутствия регрессивных дефектов, оставшихся в поставленном продукте. Однако в этом случае можно применить исследовательское тестирование как способ разрешения этого риска регрессии. Целесообразность применения основанного на требованиях тестирования зависит от контекста. Если требования не полны или не согласованы, то и результирующее тестирование может иметь те же недостатки. Даже если требования хорошо определены, есть опасность того, что бюджетные ограничения и ограничения времени могут не позволить проверить все требования. В случае если требования определены с дополнительной информацией об их относительных приоритетах, эта информация может быть использована для определения приоритетов тестирования (в этом случае основанный на рисках подход может быть использован для назначения более высокого приоритета высокоприоритетному требованию). На практике тестеры при выполнении основанного на требованиях тестирования часто используют дополнительную информацию таким образом, чтобы самые важные (соответствующие самым высоким рискам) требования были протестированы наиболее тщательно и раньше других. 5.6.3 Модельное тестирование В тестировании широко используется понятие модели, представляющей ожидаемое поведение элемента тестирования, которое является базисом тестирования. Эта модель может быть представлена в форме требований на естественном языке, ментальных образов, математических уравнений, графических нотаций (например, диаграммы изменения состояний, диаграммы UML) или матрицы (например, таблицы решений), или совокупностью этих форм. Традиционно тестер использует модель, чтобы вручную получить входы и ожидаемые результаты тестирования при выполнении тестирования на основе спецификации, а также ожидаемые результаты при выполнении тестирования на основе структуры (входы тестирования в этом случае получаются в результате анализа структуры элемента тестирования). Далее тестирование выполняется либо вручную, либо с использованием инструментов тестирования. Модельное тестирование использует принципиально иную практику, хотя в ее основании лежит модель ожидаемого поведения. Особенность модельного тестирования заключается в требовании от модели формальности и подробности, достаточных для получения из модели необходимой для тестирования информации. Подобная информация может включать в себя планы тестирования, проект, процедуры, входы, риски и/или прогнозы. Преимущества использования модельного тестирования заключаются в генерации информации тестирования, повышенном уровне автоматизации в жизненном цикле тестирования (от планирования до документирования) и ранней идентификации некоторых видов ошибок. Следствием повышенного уровня автоматизации является факт того, что за относительно короткое время могут быть автоматически сгенерированы, выполнены и проверены миллионы контрольных примеров. Типичными для использования модельного тестирования условиями являются важные приложения, отказ от которых может привести к большому ущербу и требуемое поведение которых поддается моделированию в форме, позволяющей использовать инструменты модельного тестирования (нужно также наличие необходимого для создания и поддержки модели квалифицированного персонала). Графическая нотация UML часто используется в качестве базы этих моделей, хотя используются и другие нотации. Другим соображением в пользу использования модельного тестирования является то, что при эксплуатации предполагается сопровождение приложения на регулярной основе, а изменение модели проще, чем обновление автоматизированных сценариев тестирования (каждый раз после обновления модели инструмент модельного тестирования может далее генерировать и запускать множество тестов при относительно низкой стоимости). Использование модели может обеспечить преимущества и в других областях. Например, автоматическая генерация исходного кода на основе модели может уменьшить количество дефектов определенных типов, создаваемых во время разработки (например, опечаток в коде и дефектов, которые могут быть обнаружены модельной проверкой). Это облегчает процесс тестирования за счет сокращения числа дефектов в элементах тестирования, попадающих в тестирование из процесса разработки. 5.6.4 Математическое тестирование Математические методики тестирования могут использоваться для планирования, проектирования, выбора данных и установки входных условий в случае, если возможно достаточно детальное определение пространства входа или выхода элемента тестирования. В своем подходе математические методы используют различные области математики. Эти методы могут уменьшить величину субъективной систематической ошибки выбора контрольного примера и назначения приоритетов. На практике в математическом тестировании используется множество методик, однако наиболее часто используют методики проектирования тестирования, описанные в ИСО/МЭК/ИИЭР 29119-4: - комбинаторное тестирование; - случайный выбор контрольного примера. Дополнительно статическое моделирование может использоваться для определения тестового покрытия (не рассматривается в ИСО/МЭК/ИИЭР 29119-4), например: - типологическая выборка; - Fuzz-тестирование; - кластерная выборка; - выборка экспертной оценки. Математические методики тестирования могут также использоваться для объективной выборки на базе математических инструментов и методов из пространства контрольных примеров. Для использования математических методик тестирования в общем случае необходимы автоматизированные инструменты для обработки большого количества сгенерированных входов. 5.6.5 Основанное на опыте тестирование Основанное на опыте тестирование базируется на следующих аспектах: - предыдущий опыт тестирования; - знание определенного программного обеспечения и систем; - знание проблемной области; - метрики из предыдущих проектов (внутри организации и в отрасли). В ИСО/МЭК/ИИЭР 29119-4 описан основанный на опыте метод проектирования тестирования "Предположение об ошибках". Другие методики проектирования тестирования, основанные на опыте, включают в себя "Исследовательское тестирование", "Программные атаки" и "Свободное тестирование", но не ограничены этими методиками. "Исследовательское тестирование" и "Программные атаки" не входят в ИСО/МЭК/ИИЭР 29119-4 в качестве методов проектирования тестирования, поскольку эти методики допускают использование различных методов проектирования тестирования. Исследовательское тестирование сочетает в себе действия, описанные в ИСО/МЭК/ИИЭР 29119-2 как процессы "Разработки и Реализации Тестирования" и процессы "Выполнения Теста" для динамичного достижения целей тестирования. Обычно при использовании исследовательского тестирования контрольные примеры не разрабатываются и не документируются заранее, а в решении, что и как должно тестироваться следующим, тестер руководствуется интуицией, любознательностью и результатами предыдущих тестирований. Исследовательское тестирование, предположение об ошибках и свободное тестирование - это методики тестирования, которые не связаны с большими объемами документации (например, процедурами тестирования), необходимой для выполнения тестирования. Что касается использования сценария, то в своей большей части методики, основанные на опыте тестирования, используются без предварительного сценария. Использование таких методов может обеспечить только адаптированное соответствие ИСО/МЭК/ИИЭР 29119-2. 5.6.6 Тестирование по сценарию и тестирование без сценария В таблице 1 приведены преимущества и недостатки тестирования по сценарию и тестирования без сценария. Необходимо отметить, что в проекте эти два метода не исключают друг друга, а чаще всего соединяются в гибридной методике на базе уровня риска элемента тестирования. Основным фактором при принятии решения об использовании тестирования по сценарию, без сценария или гибрида того и другого является профиль риска элемента тестирования. Например, на практике гибридная методика может использовать в одном и том же проекте тестирование по сценарию для проверки элементов тестирования с высоким риском и тестирование без сценария для проверки элементов тестирования с низким риском. Таблица 1 - Сравнение методов выполнения теста по сценарию и без сценария
5.7 Автоматизация в тестировании Многие задачи и действия, описанные в ИСО/МЭК/ИИЭР 29119-2 как процессы Менеджмента Тестирования и Динамического Тестирования, а также многие аспекты методов тестирования, представленные в ИСО/МЭК/ИИЭР 29119-4, могут быть автоматизированы. Автоматизация тестирования может использоваться для поддержки одной из методик тестирования, представленных в 5.6 (например, Модельное Тестирование почти всегда базируется на использовании при выполнении теста автоматизированных инструментов). Автоматизация тестирования требует использования программного обеспечения, обычно называемого инструментами тестирования. Несмотря на то что обычно автоматизированным тестированием считается выполнение тестирования по сценарию, а не выполнение тестером теста вручную, многие из дополнительных задач и действий тестирования могут поддерживаться инструментами на базе программного обеспечения. В списке представлены некоторые примеры областей, в которых действуют инструменты тестирования: - менеджмент контрольных примеров; - мониторинг тестирования и управления; - генерация тестовых данных; - статический анализ; - генерация контрольных примеров; - выполнение контрольных примеров; - реализация и обслуживание тестовой среды; - тестирование на основе сеанса. Имеется большое разнообразие доступных инструментов автоматизации тестирования. Они могут разрабатываться в организации или быть получены извне как коммерческий продукт либо как программное обеспечение с открытым доступом. 5.8 Управление дефектами Менеджеры по тестированию проекта часто ответственны за управление дефектами в проекте (также называемое управлением инцидентами). Управление дефектами регламентируется ИСО/МЭК/ИИЭР 29119-2 и используется тестерами в расследовании и документировании инцидентов тестирования, а также в повторном тестировании дефектов в случае необходимости. Другие аспекты управления дефектами не рассмотрены непосредственно в серии стандартов ИСО/МЭК/ИИЭР 29119. Понятия и процессы управления дефектами описаны в ИСО/МЭК12207, ИСО/МЭК 20000 и ИИЭР 1044. Приложение А (справочное). Роль тестирования в верификации и валидации Приложение А (справочное) На рисунке А.1 показана классификация действий верификации и валидации. Верификации и валидации могут быть подвергнуты системы, аппаратные и программные продукты. Эти виды действий определены и детализированы в ИИЭР 1012 и ИСО/МЭК 12207. Большая часть верификации и валидации осуществляется посредством тестирования. Серия стандартов ИСО/МЭК/ИИЭР 29119 рассматривает динамическое и статическое тестирование программного обеспечения (непосредственно или через ссылки), частично охватывая модели верификации и валидации. Исчерпывающее рассмотрение модели верификации и валидации выходит за рамки серии стандартов ИСО/МЭК/ИИЭР 29119, но тестеру важно понимать, как тестирование вписывается в эту модель. Рисунок А.1 - Иерархия действий верификации и валидации Рисунок А.1 - Иерархия действий верификации и валидации Приложение В (справочное). Метрики и показатели Приложение В (справочное) |