10.56M
Category: softwaresoftware

Обеспечение качества. Семинар 9

1.

Семинар 9

2.

Ваши вопросы

3.

План занятия
Что такое тестирование?
Разница между QA и тестированием?
Как нарисовать тест план?
Как открыть тест кейсы?

4.

Определения
Тестирование программного обеспечения (Software Testing)
проверка соответствия реальных и ожидаемых результатов поведения
программы, проводимая на конечном наборе тестов.
Разработка
Тестирование
Запуск

5.

Определения
Цель тестирования
проверка соответствия ПО предъявляемым требованиям, обеспечение
уверенности в качестве ПО, поиск очевидных ошибок в программном
обеспечении, которые должны быть выявлены до того, как их обнаружат
пользователи программы

6.

Для чего проводится тестирование ПО?
● проверка соответствия требованиям;
● обнаружение проблем на более ранних этапах разработки и
предотвращения повышения стоимости продукта;
● обнаружение вариантов использования, которые не были
предусмотрены при разработке;
взгляд на продукт со стороны пользователя.

7.

Для чего проводится тестирование ПО?
● проверка соответствия требованиям;
● обнаружение проблем на более ранних этапах разработки и
предотвращения повышения стоимости продукта;
● обнаружение вариантов использования, которые не были
предусмотрены при разработке;
взгляд на продукт со стороны пользователя.

8.

Quality Assurance vs тестирование
контроль качества на всех циклах
производства, начиная с этапа планирования
ответственность за конечное качество
продукта
создание и выполнение тест-кейсов

9.

Quality Assurance vs Quality Control

10.

Верификация и валидация
Верификация (verification) — это
процесс оценки системы, чтобы
понять, удовлетворяют ли
результаты текущего этапа
разработки условиям, которые
были сформулированы в его
начале.
Валидация (validation) — это
определение соответствия
разрабатываемого ПО ожиданиям и
потребностям пользователя, его
требованиям к системе.

11.

Этапы тестирования продукта
1. Работа с требованиями. Знакомство с требованиями заказчика.
Обсуждение, что должен из себя представлять итоговый продукт
2. Разработка стратегии тестирования. Оценка сроков тестирования,
выявление среды тестирования, объединение всей информации,
полученной при работе с требованиями.
3. Создание тестовой документации. Написание сценариев, которые
позволят проверить функционал.
4. Тестирование прототипа. Тестирование основного функционала
продукта, корректировка целей, добавление фичей.
5. Основное тестирование. Выполнение общей проверки продукта.
6. Стабилизация. На данном этапе происходит работа над устранением
багов.
7. Эксплуатация. Проводится регресс-тестирование, устранение
ошибок, которые нашел конечный пользователь.

12.

Этап 1. Работа с требованиями
Выявление противоречия в
требованиях;
Общение с заказчиком
Помощь с определением потенциальных
дефектов в функционале.

13.

Требования
Требования — это спецификация (описание) того, что должно быть
реализовано.
Функциональные требования:
Нефункциональные требования:
Основные функции (возможности),
качественные показатели, которые
которыми должен обладать продукт,
нужны чтобы выполнить условия
что закрепляется соглашением.
соглашения с пользователем.

14.

Этап 2. Разработка стратегии тестирования и
планирование процедур контроля качества
Оценка сроков тестирования
Разработка стратегии тестирования
Определение среды тестирования
План тестирования продукта

15.

Тестовая среда
Тестовая среда – это специально подготовленное окружение, в
котором проводятся испытания программного продукта. Она
создается с целью максимально приблизить условия работы
программы к реальным, одновременно контролируя и изолируя ее
от внешних воздействий.

16.

Тестовая среда
QA-engineer
Users
Production
Test sandbox

17.

Этап 3. Создание тестовой документации
● Создание тестовых сценариев: что и как будет проверяться
при различных видах тестированиях;
● Создание отчетности: результаты тестирования, списка багов
и их серьезность;

18.

Этап 4. Тестирование прототипа
● поиск ошибок в логике основного функционала
● заказчик смотрит прототип и вносит правки в требования

19.

Этап 5. Основное тестирование
формируются репорты о найденных дефектах;
выполняется набор тестовых сценариев;
создается тестовая среда;
выполняется полноценное тестирование, виды которого были
задокументированы на этапе создания тестовой
документации

20.

Этап 6. Стабилизация
● прекращаем добавлять новые фичи
● только исправление багов

21.

Этап 7. Эксплуатация и поддержка
● релиз продукта
● поддержка после релиза

22.

Цикл тестирования новой фичи в
проекте
1. Анализ требований
2. Написание тест плана
3. Тестирование по тест плану, составление баг репортов
4. Исправление багов
5. Тестирование на test окружении
6. Тестирование на stage окружении
7. Релиз

23.

Тест-план
Тест план (Test Plan) — это документ, который описывает весь объем работ
по тестированию, начиная с описания объекта, стратегии, расписания,
критериев начала и окончания тестирования, до необходимого в процессе
работы оборудования, специальных знаний, а также оценки рисков.

24.

Тест-кейсы
Тестовый сценарий (test case) — это артефакт, описывающий совокупность
шагов, конкретных условий и параметров, необходимых для проверки
реализации тестируемой функции или её части.

25.

Что есть в тест кейсе
Предусловия (PreConditions) — Список условий, выполнение
которых говорит о том, что система находится в пригодном для
проведения основного теста состояния.
Шаги (Steps) — список действий, которые необходимо совершить,
для проверки части системы
Ожидаемый результат (Expected result) — что по факту должны
получить.

26.

Чеклист
Чек-лист (check list) — это документ, который описывает что
должно быть протестировано. Чек-лист может быть абсолютно
разного уровня детализации.
Чаще всего чек-лист содержит только действия, без ожидаемого
результата. Чек-лист менее формализован.

27.

Баг репорт
Bug report (отчет об ошибке) - документ, содержащий информацию о
выявленном недостатке, ошибке, недочете.
В Bug Report входят:
- Описание ошибки
- Шаги для воспроизведения
- Ожидаемый результат
- Фактический результат
- Дополнительные артефакты *

28.

Пример
Вспомним нашу программу для работы с резюме

29.

Пример. Формулируем требования
Какие требования у нас есть к системе? Начнем с функциональных
● По GET запросу на /index.html должно отдаваться резюме в котором
есть поля Имя, Должность, Место работы, Дата создания. Дата создания
не должна меняться при повторном запросе
● По POST запросу на /resume/generate html страничка должна обновлять
Дату создания и возвращать новую html страничку, а также эту html
страничку на все последующие GET запросы /index.html
● При запуске приложение должно разворачивать http сервер на 80
порту

30.

Пример. Формулируем требования
Теперь
нефункциональные
● Приложение должно устанавливаться и запускаться по инструкции из
README
● Приложение должно гарантировать хранение конфиденциальной
информации

31.

Создаем тест-кейсы
1. Запуск приложения
Входные данные
В репозитории есть файл README.md с инструкцией по установке и
инструкцией по запуску
Шаги
Выполнить установку по инструкции из README
Выполнять запуск по инструкции из README
Сделать GET запрос curl http://localhost/index.html
Ожидаемый результат
В результате должна отдаться актуальная страничка с полями: Имя,
Должность, Место работы, Дата создания

32.

2. При GET запросах дата создания не меняется
Входные данные
Приложение запущено на localhost:80
Шаги
Сделать GET запрос curl http://localhost/index.html
Сделать второй раз GET запрос curl http://localhost/index.html
Ожидаемый результат
Оба запроса вернули код 200 и html страничку
Оба GET запроса вернуть одинаковые html странички
Обе страницы корретно отображаются в браузере
https://http.cat/status/200

33.

3. Обновление даты создания
Входные данные
Приложение запущено на localhost:80
Шаги
Сделать GET запрос curl http://localhost/index.html
Сделать POST запрос curl -X POST http://localhost/resume/render
Ожидаемый результат
Оба запроса вернули код 200 и html страничку
Поле "Дата создания" у страницы 2 больше чем у страницы 1
Обе страницы корректно отображаются в браузере

34.

4. Нельзя получить доступ к файлам вне папки public
Входные данные
Приложение запущено на localhost:80
Шаги
Сделать GET запрос curl http://localhost/.env
Сделать GET запрос curl http://localhost/../.env
Ожидаемый результат
Все запросы вернули 404
https://http.cat/status/404

35.

5. Нельзя сделать GET запрос на http://localhost/resume/render
Входные данные
Приложение запущено на localhost:80
Шаги
Сделать GET запрос curl http://localhost/index.html
Сделать GET запрос curl http://localhost/resume/render
Сделать GET запрос curl http://localhost/index.html
Ожидаемый результат
Первый и третий запросы вернули одинаковые странички
Второй запрос вернул 405 ошибку
https://http.cat/status/405

36.

Задание 8 “Тестирование приложения”
● появится 11 марта 21:00 в SmartLMS
● дедлайн 16 марта в 00, грузить
отчетом в SmartLMS
● внимательно смотрите на критерии
оценивания, на 4+ вам надо найти
все критичные ошибки программы
Не забудьте про опрос после
семинара
English     Русский Rules