лекции. 10032023-Л-Тема1-10-Инструментарии анализа качества ПП. 10042023 тема 10. Инструментарии анализа качества программных продуктов в среде разработке. Методология тестирования
Скачать 20.66 Kb.
|
10042023- Тема 1.10. Инструментарии анализа качества программных продуктов в среде разработке. Методология тестирования Тестирование - самая популярная методика повышения качества, подкрепленная многими исследованиями и богатым опытом разработки коммерческих приложений. Существует множество видов тестирования: одни обычно выполняют сами разработчики, а другие - специализированные группы. Виды тестирования перечислены ниже: · Блочным тестированием называют тестирование полного класса, метода или небольшого приложения, написанного одним программистом или группой, выполняемое отдельно от прочих частей системы. · Тестирование компонента - это тестирование класса, пакета, небольшого приложения или другого элемента системы, разработанного несколькими программистами или группами, выполняемое в изоляции от остальных частей системы. · Интеграционное тестирование - это совместное выполнение двух или более классов, пакетов, компонентов или подсистем, созданных несколькими программистами или группами. · Регрессивным тестированием называют повторное выполнение тестов, направленное на обнаружение дефектов в программе, уже прошедшей этот набор тестов. · Тестирование системы - это выполнение ПО в его окончательной конфигурации, интегрированного с другими программными и аппаратными системами. Фазы тестирования: Реализация тестирования делится на три этапа: 1. Создание тестового набора (test suite) путем ручной разработки или автоматической генерации для конкретной среды тестирования (testing environment). 2. Прогон программы на тестах, управляемый тестовым монитором (test monitor, test driver) с получением протокола тестирования (test log). 3. Оценка результатов выполнения программы на наборе тестов с целью принятия решения о продолжении или остановке тестирования. Тестовые среды: Среда тестирования — это настройка программного и аппаратного обеспечения для групп тестирования для выполнения тестовых случаев. Другими словами, он поддерживает выполнение теста с настроенным оборудованием, программным обеспечением и сетью. Испытательный стенд или тестовая среда настраиваются в соответствии с требованиями тестируемого приложения. В некоторых случаях испытательный стенд может представлять собой комбинацию тестовой среды и тестовых данных, которые он использует. Важно понимать, что процесс тестирования требует системного подхода и использовать для этого лучшие практики недостаточно. Чтобы получить положительные результаты, необходимо с самого начала организовать процесс правильно. Для начала необходимо определиться с целями, областью, методологией тестирования и позаботиться о подготовке тестовой среды. Сегодня многие организации, в том числе команды разработки, уходят от традиционных подходов к организации тестовых сред. Если раньше под эти задачи разворачивали собственную инфраструктуру, которая требовала отдельной поддержки и дополнительных финансовых вливаний, теперь чаще отдается предпочтение более экономичным вариантам. Одним из них является виртуальный хостинг, представляющий собой один из удобных вариантов организации процесса тестирования, который отличается целым рядом конкурентных преимуществ. Примечательно, что тестовые среды, развернутые на базе виртуального хостинга, избавляют от простоев собственных серверов, поскольку отпадает необходимость в их использовании. Вместо этого вы получаете необходимые виртуальные ресурсы без потери качества. В последнее время большинство приложений создаются с возможностью доступа через стандартный интернет-браузер, и они также нуждаются в проверке работоспособности на уровне кода. Очень важно, чтобы приложение точно повторяло взаимодействие с пользователем. Кроме того, важно получить обратную связь относительно производительности и надежности работы сервиса. Используя для этих задач виртуальный хостинг, можно получить практически мгновенный ответ и обратную связь относительно функциональности и согласованности работы конкретного решения. Методология тестирования сложных систем: Тестирование сложных программных решений и комплексных систем. Сложная система — система, состоящая из множества взаимодействующих составляющих, вследствие чего сложная система приобретает новые свойства, которые отсутствуют на подсистемном уровне и не могут быть сведены к свойствам подсистемного уровня. Эффективно начинать тестирование комплексных (и других) систем на ранних стадиях разработки ПО. Методы тестирования в основном отличаются подходами к выбору множества тестовых данных из входного пространства. Основная цель тестирования — обнаружить дефекты в ПС и установить ее функциональную пригодность, удобство применения, производительность и др. Тестирование на протяжении процесса разработки сложной структуры из модулей выполняется на нескольких уровнях. Для каждого определяются категория объектов тестирования (ПС, компоненты, отдельные модули) и набор проверяемых тестируемых характеристик. На каждом уровне тестирование повторяется многократно, образуя циклы: тестирование — исправление — повторное тестирование. В современной практике тестирования все виды действий, начиная с планирования до оценки результатов тестирования, должны интегрироваться в четко определенный, документируемый и контролируемый процесс тестирования. Это облегчает взаимодействие между разработчиками, группой тестирования и руководством проекта, а также позволяет сделать процесс видимым, повторяемым и измеряемым. Тестирование имеет много общего с процессами верификации и валидации (V& V). Общность процесса тестирования с процессами V& V заключается в единстве состава и структуры планов, рекомендуемых стандартом IEEE Std. 829, а также объектов и применяемых методов. Отличие этих процессов состоит в условиях их применения. Тестирование выполняется всегда, для всех объектов ПО системы независимо от ее критичности. Процессы V&.V в современной трактовке стандартов IEEE Std. 1012 и ISO/IEC 12207 — поддерживающие процессы, которые могут применяться к выбранным объектам тестирования для проверки планов тестирования и подтверждения того, что выполненное тестирование адекватно уровню критичности ПС. По отношению к процессу тестирования V&V выполняет контрольную функцию и подтверждает соответствие объектов установленным требованиям. Тестирование ПС тесно связано с отладкой и собственно программированием, но охватывает гораздо более широкий круг проблем и участников — программистов, тестировщиков, аналитиков и инженеров по качеству. Традиционно выделяются три уровня тестирования ПО: автономное или модульное (unit testing); интеграционное (integrating testing); системное (system testing). В стандарте ISO/IEC 12207 прослеживаются четыре уровня тестирования: • модульное (в процессе «Построение ПО»); • интеграционное (в процессе «Сборка ПО»); • тестирование ПС (как процесс); • системное (в процессе «Испытания ПС») Тестирование отдельных модулей: Инструментарии анализа качества программных продуктов в среде разработки. Software Quality Assurance (SQA) — это комплекс мероприятий по обеспечению качества в процессах разработки программного обеспечения. Это гарантирует, что разработанное программное обеспечение соответствует и соответствует определенным или стандартизированным спецификациям качества. SQA — это непрерывный процесс в рамках жизненного цикла разработки программного обеспечения (SDLC), который регулярно проверяет разработанное программное обеспечение, чтобы убедиться, что оно соответствует требуемым показателям качества. Практики SQA применяются в большинстве типов разработки программного обеспечения независимо от используемой модели разработки программного обеспечения. SQA включает и внедряет методологии тестирования программного обеспечения для тестирования программного обеспечения. Вместо проверки качества после завершения, SQA обрабатывает тест на качество на каждом этапе разработки, пока программное обеспечение не будет завершено. С SQA процесс разработки программного обеспечения переходит в следующую фазу только тогда, когда текущая / предыдущая фаза соответствует требуемым стандартам качества. SQA обычно работает над одним или несколькими отраслевыми стандартами, которые помогают в разработке рекомендаций по качеству программного обеспечения и стратегий реализации. Включает в себя следующие виды деятельности: Определение и реализация процесса Аудиторская проверка Повышение квалификации Могут проводиться процессы: Методология разработки программного обеспечения Управление проектом Управление конфигурацией Разработка требований / Управление Предварительный расчет Разработка программного обеспечения Тестирование и др. После того, как процессы определены и внедрены, Контроль качества выполняет следующие обязанности: Выявить слабые места в процессах Исправить эти недостатки, чтобы постоянно улучшать процесс |