Файл: Лекция 1 Тема Отладка и тестирование информационных систем 1 Введение. Организация тестирования в команде разработчиков.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 71
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лекция 1 Тема 1. Отладка и тестирование информационных систем 1.1 Введение. Организация тестирования в команде разработчиков
Тестирование информационных систем
Введение
Процесс разработки программного обеспечения предполагает три стадии тестирования:
автономное тестирование компонентов программного обеспечения;
комплексное тестирование разрабатываемого программного обеспечения;
системное или оценочное тестирование на соответствие основным критериям качества.
Введение
Для повышения качества тестирования рекомендуется соблюдать следующие основные принципы:
предполагаемые результаты должны быть известны до тестирования;
следует избегать тестирования программы автором;
досконально изучать результаты каждого теста;
необходимо проверять работу программы на неверных данных;
вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части.
Введение
2 подхода к формированию тестовых наборов
Структурный Функциональный
- базируется на том, что известны алгоритмы работы программы. В основе структурного тестирования лежит концепция максимально полного тестирования всех маршрутов программы.
- основывается на том, что алгоритм работы программного обеспечения не известен. Тесты строят, опираясь на функциональные спецификации. Программа рассматривается как «черный ящик», и целью тестирования является выяснение обстоятельств, в которых поведение программы не соответствует требованиям.
Отладка(debug, debugging) - процесс поиска, локализации и исправления ошибок в программе.
Тестирование - это процесс выполнения ПО системы или компонента в условиях анализа или записи получаемых результатов с целью проверки (оценки) некоторых свойств тестируемого объекта.
Тестирование - это процесс анализа пункта требований к ПО с целью фиксации различий между существующим состоянием ПО и требуемым (что свидетельствует о проявлении ошибки) при экспериментальной проверке соответствующего пункта требований.
Тестирование - это контролируемое выполнение программы на конечном множестве тестовых данных и анализ результатов этого выполнения для поиска ошибок.
Целью проектирования тестовых вариантов является систематическое обнаружение различных классов ошибок при минимальных затратах времени и стоимости.
Тестирование обеспечивает:
Обнаружение ошибок.
Демонстрацию соответствия функций программы ее назначению.
Демонстрацию реализации требований к характеристикам программы.
Отображение надежности как индикатора качества программы.
Коммуникация и взаимодействие в процессе тестирования
Аккаунт-менеджер
Менеджер проекта (Project manager, руководитель проекта, проект-менеджер; сокращенно - PM, ПМ, РП)
Системный аналитик (аналитик)
Системный архитектор (архитектор)
Программист (разработчик)
Ведущий программист (технический лидер, техлид)
QA-специалист
SDET-специалист (контроль качества, автоматизация тестирования)
QA lead (ведущий специалист по управлению и контролю качества)
Тимлид
Методология тестирования
Виды тестирования:
Блочное тестирование
Тестирование компонента
Интеграционное тестирование
Регрессивное тестирование
Тестирование системы
Фазы тестирования
Реализация тестирования делится на три этапа:
1. Создание тестового набора (test suite) путем ручной разработки или автоматической генерации для конкретной среды тестирования (testing environment).
2. Прогон программы на тестах, управляемый тестовым монитором (test monitor, test driver) с получением протокола тестирования (test log).
3. Оценка результатов выполнения программы на наборе тестов с целью принятия решения о продолжении или остановке тестирования.
Тестовые среды
Среда тестирования — это настройка программного и аппаратного обеспечения для групп тестирования для выполнения тестовых случаев.
! Испытательный стенд или тестовая среда настраиваются в соответствии с требованиями тестируемого приложения. В некоторых случаях испытательный стенд может представлять собой комбинацию тестовой среды и тестовых данных, которые он использует.
Тестовый план - это документ, или набор документов, который содержит тестовые ресурсы, перечень функций и подсистем, подлежащих тестированию, тестовую стратегию, расписание тестовых циклов, фиксацию тестовой конфигурации (состава и конкретных параметров аппаратуры и программного окружения), определение списка тестовых метрик, которые на тестовом цикле необходимо собрать и проанализировать (например метрик, оценивающих степень покрытия тестами набора требований).
Тесты разрабатывают на основе спецификаций как вручную, так и с помощью автоматизирующих средств.
Для оценки качества тестов используют различные метрики, связанные с количеством найденных дефектов, покрытием кода, функциональных требований, множества сценариев.
Вся информация об обнаруженных в процессе тестирования дефектах (тип, условия обнаружения, причина, условия исправления, время, затраченное на исправление) заносятся в базу дефектов.
Информация о тестовом плане, тестах и дефектах используется в конце каждого цикла тестирования для генерации тестового отчета и корректирования системы тестов для следующей итерации.
Типы тестирования по виду подсистемы или продукта таковы:
Тестирование основной функциональности, когда тестированию подвергается собственно система, являющаяся основным выпускаемым продуктом.
Тестирование инсталляции включает тестирование сценариев первичной инсталляции системы, сценариев повторной инсталляции (поверх уже существующей копии), тестирование деинсталляции, тестирование инсталляции в условиях наличия ошибок в инсталлируемом пакете, в окружении или в сценарии и т. п.
Тестирование пользовательской документации включает проверку полноты и понятности описания правил и особенностей использования продукта, наличие описания всех сценариев и функциональности, синтаксис и грамматику языка, работоспособность примеров и т. п.
Сложная система — система, состоящая из множества взаимодействующих составляющих, вследствие чего сложная система приобретает новые свойства, которые отсутствуют на подсистемном уровне и не могут быть сведены к свойствам подсистемного уровня.
! Эффективно начинать тестирование комплексных (и других) систем на ранних стадиях разработки ПО.
На каждом уровне тестирование повторяется многократно, образуя циклы: тестирование — исправление — повторное тестирование.
Тестирование выполняется всегда, для всех объектов ПО системы независимо от ее критичности.
Спасибо за внимание!
Тестирование информационных систем
Введение
Процесс разработки программного обеспечения предполагает три стадии тестирования:
автономное тестирование компонентов программного обеспечения;
комплексное тестирование разрабатываемого программного обеспечения;
системное или оценочное тестирование на соответствие основным критериям качества.
Введение
Для повышения качества тестирования рекомендуется соблюдать следующие основные принципы:
предполагаемые результаты должны быть известны до тестирования;
следует избегать тестирования программы автором;
досконально изучать результаты каждого теста;
необходимо проверять работу программы на неверных данных;
вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части.
Введение
2 подхода к формированию тестовых наборов
Структурный Функциональный
- базируется на том, что известны алгоритмы работы программы. В основе структурного тестирования лежит концепция максимально полного тестирования всех маршрутов программы.
- основывается на том, что алгоритм работы программного обеспечения не известен. Тесты строят, опираясь на функциональные спецификации. Программа рассматривается как «черный ящик», и целью тестирования является выяснение обстоятельств, в которых поведение программы не соответствует требованиям.
Отладка(debug, debugging) - процесс поиска, локализации и исправления ошибок в программе.
Тестирование - это процесс выполнения ПО системы или компонента в условиях анализа или записи получаемых результатов с целью проверки (оценки) некоторых свойств тестируемого объекта.
Тестирование - это процесс анализа пункта требований к ПО с целью фиксации различий между существующим состоянием ПО и требуемым (что свидетельствует о проявлении ошибки) при экспериментальной проверке соответствующего пункта требований.
Тестирование - это контролируемое выполнение программы на конечном множестве тестовых данных и анализ результатов этого выполнения для поиска ошибок.
Целью проектирования тестовых вариантов является систематическое обнаружение различных классов ошибок при минимальных затратах времени и стоимости.
Тестирование обеспечивает:
Обнаружение ошибок.
Демонстрацию соответствия функций программы ее назначению.
Демонстрацию реализации требований к характеристикам программы.
Отображение надежности как индикатора качества программы.
Коммуникация и взаимодействие в процессе тестирования
Аккаунт-менеджер
Менеджер проекта (Project manager, руководитель проекта, проект-менеджер; сокращенно - PM, ПМ, РП)
Системный аналитик (аналитик)
Системный архитектор (архитектор)
Программист (разработчик)
Ведущий программист (технический лидер, техлид)
QA-специалист
SDET-специалист (контроль качества, автоматизация тестирования)
QA lead (ведущий специалист по управлению и контролю качества)
Тимлид
Методология тестирования
Виды тестирования:
Блочное тестирование
Тестирование компонента
Интеграционное тестирование
Регрессивное тестирование
Тестирование системы
Фазы тестирования
Реализация тестирования делится на три этапа:
1. Создание тестового набора (test suite) путем ручной разработки или автоматической генерации для конкретной среды тестирования (testing environment).
2. Прогон программы на тестах, управляемый тестовым монитором (test monitor, test driver) с получением протокола тестирования (test log).
3. Оценка результатов выполнения программы на наборе тестов с целью принятия решения о продолжении или остановке тестирования.
Тестовые среды
Среда тестирования — это настройка программного и аппаратного обеспечения для групп тестирования для выполнения тестовых случаев.
! Испытательный стенд или тестовая среда настраиваются в соответствии с требованиями тестируемого приложения. В некоторых случаях испытательный стенд может представлять собой комбинацию тестовой среды и тестовых данных, которые он использует.
Тестовый план - это документ, или набор документов, который содержит тестовые ресурсы, перечень функций и подсистем, подлежащих тестированию, тестовую стратегию, расписание тестовых циклов, фиксацию тестовой конфигурации (состава и конкретных параметров аппаратуры и программного окружения), определение списка тестовых метрик, которые на тестовом цикле необходимо собрать и проанализировать (например метрик, оценивающих степень покрытия тестами набора требований).
Тесты разрабатывают на основе спецификаций как вручную, так и с помощью автоматизирующих средств.
Для оценки качества тестов используют различные метрики, связанные с количеством найденных дефектов, покрытием кода, функциональных требований, множества сценариев.
Вся информация об обнаруженных в процессе тестирования дефектах (тип, условия обнаружения, причина, условия исправления, время, затраченное на исправление) заносятся в базу дефектов.
Информация о тестовом плане, тестах и дефектах используется в конце каждого цикла тестирования для генерации тестового отчета и корректирования системы тестов для следующей итерации.
Типы тестирования по виду подсистемы или продукта таковы:
Тестирование основной функциональности, когда тестированию подвергается собственно система, являющаяся основным выпускаемым продуктом.
Тестирование инсталляции включает тестирование сценариев первичной инсталляции системы, сценариев повторной инсталляции (поверх уже существующей копии), тестирование деинсталляции, тестирование инсталляции в условиях наличия ошибок в инсталлируемом пакете, в окружении или в сценарии и т. п.
Тестирование пользовательской документации включает проверку полноты и понятности описания правил и особенностей использования продукта, наличие описания всех сценариев и функциональности, синтаксис и грамматику языка, работоспособность примеров и т. п.
Сложная система — система, состоящая из множества взаимодействующих составляющих, вследствие чего сложная система приобретает новые свойства, которые отсутствуют на подсистемном уровне и не могут быть сведены к свойствам подсистемного уровня.
! Эффективно начинать тестирование комплексных (и других) систем на ранних стадиях разработки ПО.
На каждом уровне тестирование повторяется многократно, образуя циклы: тестирование — исправление — повторное тестирование.
Тестирование выполняется всегда, для всех объектов ПО системы независимо от ее критичности.
Спасибо за внимание!