В. А. КАРАНДАСОВ
Научный руководитель – В. П. РУМЯНЦЕВ, к. т.н., доцент
Московский инженерно-физический институт (государственный университет)
методы и средства выявления дефектов программного обеспечения на ранних стадиях разработки
В докладе рассказывается о методах и средствах повышения качества процесса тестирования программного обеспечения путем проведения статического тестирования на ранних этапах разработки программного обеспечения, о возможностях ускорения процесса статического тестирования программного обеспечения с помощью применения инструментальных средств. Приводится практический пример статического тестирования интегрированной распределенной системы электронного документационного обеспечения управления предприятием «LanDocs: XML–ПОДСИСТЕМА ОБМЕНА».
На сегодняшний день для индустрии разработки программного обеспечения очень важен вопрос повышения качества процесса тестирования программного обеспечения и вопрос времени, необходимого для тестирования проекта.
Качество тестирования проекта во многом зависит от своевременного применения эффективных технологий не только динамического, но и статического тестирования. Под статическим тестированием (static testing) понимается анализ разрабатываемого продукта с целью подтверждения целесообразности разработки продукта и его соответствия предъявленным требованиям аналитическими методами, проверка программы без запуска на машине (desk checks).
Рекомендуемые методы static testing – инспекции, сквозной контроль для тестирования промежуточных продуктов которые создаются на протяжении ЖЦ разработки, экспертные оценки, анализ цикломатической сложности, формальные оценки, применение контрольных перечней, аудит, критический анализ, сравнительный анализ, дискуссионные группы, использование прототипов, анализ псевдокода, ведение отчетности о процессе выполнения инспекций, использование листингов перекрестных ссылок, ведение баз данных материалов совместного использования и другие [1].
Необходимо также установить функциональные и конструктивные требования к характеристикам качества: корректность, способность к взаимодействию, защищенность, надежность, эффективность, практичность, сопровождаемость, мобильность или другие, а также следует произвести выбор показателей (метрик) качества (внутренних, внешних, в использовании) [2].
Очевидно, что с целью сокращения времени, необходимого для тестирования проекта, требуется внедрение и использование различных инструментальных средств, так, в частности, для процесса статического тестирования это могут быть:
1. инструменты анализаторы – анализаторы покрытия кода, средства обнаружения утечки памяти и ошибок времени выполнения, утилиты сравнения файлов, программы проверки перекрестных ссылок;
2. инструменты тестирования исходного кода – программы проверки синтаксиса, отладчики, различные инструменты реализации кода, средства сравнения версий;
3. аудита требований - инструменты моделирования бизнес-процессов, инструменты управления конфигурацией, управление технической экспертизой, генераторы документов, инструменты управления и отслеживания требований, верификаторы требований, генераторы сценариев использования системы;
4. проектировочные – инструменты проектирования БД, инструменты проектирования приложений, инструменты создания прототипов;
Также в отдельных случаях: инструменты тестирования сетей, инструменты тестирования web-приложений, тестовые драйверы для приложений не имеющих графического интерфейса [3].
В результате, большинство стратегических ошибок разработки проекта возможно выявить и предотвратить именно на этапе статического тестирования (что ведет к существенной экономии времени и затрат на разработку программного продукта) поэтому важно при организации общего процесса тестирования не пренебрегать преимуществами, которые дает статическое тестирование и оптимизировать его, внедряя инструментальные средства автоматизации и повышая уровень зрелости процессов реализации статического тестирования.
Список литературы
1. Калбертсон Роберт, Браун Крис, Кобб Гэри. Быстрое тестирование: Rapid Testing. Изд. Вильямс, 20с. ISBN -X.
2. Липаев и оценивание характеристик качества программных средств: Методы и стандарты. М.: СИНТЕГ, 20c., 20 ил. (Серия "Информационные технологии").
3. Дастин Элфрид, Рэшка Джефф, Пол Джон. Автоматизированное тестирование программного обеспечения: Automated Software Testing. Изд. Лори, 20с.


