лекция. Лекция Тестирование как часть процесса верификации программного. Лекция Тестирование как часть процесса верификации программного обеспечения
Скачать 10.8 Kb.
|
Лекция Тестирование как часть процесса верификации программного обеспечения Лекция 1. Тестирование как часть процесса верификации программного обеспечения. 1. Задачи верификации в рамках жизненного цикла ПО Все используемые на практике модели жизненного цикла по схеме организации работ являются разновидностями либо каскадной, либо итеративной модели, поэтому независимо от процесса разработки ПО верификация играет в нем ключевую роль, решая следующие задачи. Выявление дефектов (ошибок, недоработок, неполноты и пр.) различных артефактов разработки ПО (требований, проектных решений, документации или кода), что позволяет устранять их и поставлять пользователям и заказчикам более правильное и надежное ПО. Выявление наиболее критичных и наиболее подверженных ошибкам частей создаваемой или сопровождаемой системы. Контроль и оценка качества ПО во всех его аспектах. Предоставление всем заинтересованным лицам (руководителям, заказчикам, пользователям и пр.) информации о текущем состоянии проекта и характеристиках его результатов. Предоставление руководству проекта и разработчикам информации для планирования дальнейших работ, а также для принятия решений о продолжении проекта, его прекращении или передаче результатов заказчику. 2. Верификация и другие процессы разработки и сопровождения ПО Процессом жизненного цикла ПО называется группа видов деятельности, выполняемых для решения определенного набора связанных задач по разработке или сопровождению ПО. Международные стандарты ISO 12207, IEEE 1074, ISO 15288, ISO 15504 используют несколько отличающиеся системы процессов. С технической точки зрения верификация и валидация являются неотъемлемыми элементами деятельности по обеспечению качества. Экспертизы и аудит, в свою очередь, являются методами проведения верификации и валидации, такими же, как тестирование, оценка архитектуры на основе сценариев или проверка моделей. 3. Верификация различных артефактов жизненного цикла ПО Артефакты жизненного цикла ПО можно разделить на технические и организационные. К техническим артефактам относятся описание требований (техническое задание), описание проектных решений (эскизный и технический проекты), исходный код (текст программы), документация пользователей и администраторов (рабочая документация), сама работающая система. Техническими также являются вспомогательные артефакты для проведения верификации и валидации — формальные модели требований и проектных решений, наборы тестов и компоненты тестового окружения, модели поведения реального окружения системы. Организационными артефактами являются структура работ, разнообразные проектные планы (план-график работ, план конфигурационного управления, план обеспечения качества, план обхода и преодоления рисков, планы проверок и испытаний и пр.), описания системы качества, описания процессов и процедур выполнения отдельных работ. Верификация может и должна проводиться для всех видов артефактов, создаваемых при разработке и сопровождении программных систем. 4. Методы верификации программного обеспечения В данном разделе рассматриваются методы верификации ПО, в основном нацеленные на оценку технических артефактов жизненного цикла. Такие методы в имеющейся литературе разделяются на следующие группы. Экспертиза (review) различных артефактов жизненного цикла ПО. Обычно в качестве видов экспертиз выделяют организационные экспертизы (management review), технические экспертизы (technical review), сквозной контроль (walkthrough), инспекции (inspection) и аудиты (audit). С середины 1990-х активно развиваются методы оценки архитектуры ПО на основе сценариев (scenario based software architecture evaluation), обычно не соотносимые с «традиционными» экспертизами. От других методов верификации экспертизу отличает возможность выполнять ее, используя только сами артефакты жизненного цикла, а не их модели (как в формальных методах) или результаты работы (как в динамических). Экспертиза применима к любым свойствам ПО и любым артефактам жизненного цикла и на любом этапе проекта, хотя для разных целей могут использоваться разные ее виды. В то же время экспертиза не может быть автоматизирована и требует активного участия людей. Статический анализ свойств артефактов жизненного цикла ПО используется для проверки формализованных правил корректного построения этих артефактов и поиска часто встречающихся дефектов по некоторым шаблонам. Такой анализ хорошо автоматизируется и может быть практически полностью возложен на инструменты, хотя иногда необходимо вручную определить, например, принятые в проекте стандарты кодирования. Формальные методы верификации используют для анализа свойств ПО формальные модели требований, поведения ПО и его окружения. Динамические методы верификации, в рамках которых анализ и оценка свойств программной системы делаются по результатам ее реальной работы или работы некоторых ее моделей и прототипов. Примерами такого рода методов являются обычное тестирование или имитационное тестирование, мониторинг, профилирование. Синтетические методы. В последние 10-15 лет появилось множество исследовательских работ и инструментов, в рамках которых применяются элементы нескольких перечисленных выше видов верификации. Так, в отдельные области выделились динамические методы, использующие элементы формальных, — тестирование на основе моделей (model-based testing, model driven testing) [73] и мониторинг формальных свойств (runtime verification, passive testing). Ряд инструментов построения тестов существенно использует как формализацию некоторых свойств ПО, так и статический анализ кода. Общая идея таких методов вполне понятна — попытаться сочетать преимущества основных подходов к верификации, купировав их недостатки. http://dogmon.org |