Жизненный цикл бага
Каждый найденный баг всегда проходит через конкретные “этапы”, которые называются жизненный цикл бага. Цикл, его этапы и переходы между ними сильно зависят от процесса тестирования и разработки, используемого в компании. Поэтому рассматриваем базовый процесс, этапы которого существуют в 99% случаев.
Этапы жизненного цикла бага
1. Открыт (Open) — баг создан, оформлен и передан разработчику / команде разработки
2. В Работе (In Progress) — ведутся работы по исправлению
3. Исправлен (Ready for check) — баг исправлен и передан тестировщику на повторную проверку
4. Закрыт (Closed) — баг проверен и больше не воспроизводится
Переходы бага между этапами жизненного цикла
Переходы между этапами жизненного цикла пронумерованы в соответствии с нумерацией списка ниже.
1. Открыт — Закрыт. Если баг — это “не баг”, он может сразу быть закрыт, без промежуточных операций. Иногда этот переход выносят в отдельный этап жизненного цикла, который называется Отклонен (Rejected). Он используется для анализа процесса тестирования или оценки работы тестировщиков / разработчиков. Если происходит отклонение бага, разработчик должен аргументированно описать, почему он не считает найденную неточность багом, а решение про исправление или закрытие должен принимать человек, который отвечает за качество.
2. Открыт — В Работе. Баг подтвержден и передан разработчикам, которые начали работу над исправлением.
3. В Работе — Закрыт. Бывает, что в ходе исправления ошибки разработчик понимает, что это не ошибка, а что-то другое. (фича / неточность в требованиях, которую обсудили без тестировщиков и т.п.) В этом случае разработчик описывает, почему это не баг, и закрывает задачу. Иногда этот переход выносят в отдельный этап жизненного цикла, Не Баг (Not A Bug). В таком случае задача возвращается тестировщикам, они ее пересматривают и либо закрывают, соглашаясь с разработчиком, либо исправляют описание и заново открывают.
Появление большого количества багов в статусе “Не Баг” говорит о проблемах в коммуникации и / или документации.
4. В Работе — Исправлен. Ошибку локализовали и исправили, она передана тестировщику.
5. Исправлен — Открыт. Тестировщик проверил исправление, баг все еще воспроизводится, то есть не исправлен. Он возвращается разработчику (возможно с указанием каких-то дополнительных деталей). Этот переход может существовать как отдельный этап жизненного цикла бага — Переоткрыт (Reopened). Появление большого количества багов в статусе “Переоткрыт” может говорить о проблемах в оформлении багов и использоваться для анализа качества работы тестировщиков.
6. Исправлен — Закрыт. Тестировщик проверил исправление, баг больше не воспроизводится.
7. Закрыт — Открыт. Если баг случайно закрыли, должна быть возможность его переоткрыть.
Порядок выполнения работы:
- Изучить теоретические положения о фиксации багов и ошибок в ПО, способы их документирования, состав баг-репорт, инструментальные средства фиксации багов.
- Выполнить задание по варианту в виде десктопного приложения Windows Form или WPF (не консольное) с ошибками интерфейса, функционала, удобства использования (эргономики, UX).
- Составить баг-репорты по всем ошибкам, внести их в отчет по практике.
- Выполнить сравнительный анализ инструментальных средств фиксации багов в виде таблицы и занести их в отчет по практике.
Варианты выполнения:
1.Проверить, делится ли введенное число на 5, 11, 13.
2.Составить программу, которая вычисляет значение Z = X/Y, где Y ==SinX + 0,5. В случае Y = 0 вывести на печать сообщение «Деление на 0».
3.Определить, имеется ли среди чисел A, B, C хотя бы одно четное.
4.Даны два целых числа: А и С. Если число С отрицательное, вычислить остаток от деления А на С. Если число С положительное, вывести на печать число, следующее за суммой А и С.
5.Определить, попадает ли число Х в интервалы от –14 до 2 и от 5 до 10. Напечатать модуль этого числа в случае положительного ответа.
6.Две точки задаются своими координатами. Определить, какая из них находится дальше от окружности заданного радиуса с центром в начале координат.
7.Проверить, делится ли введенное число на 5, 4, 12.
8. В зависимости от введенного признака вычислить длину окружности при k = 1 (L = 2πR); площадь
круга k = 2 (L = πR2). Радиус один и тот же, задается пользователем.
9. Написать программу вычисления корней квадратного уравнения Ax2 + Bx + C = 0.
10.Определить, попадает ли точка с координатами Х, Y внутрь круга радиусом R (центр круга совпадает с началом координат).
11.Даны два действительных числа. Удвоить первое число, если оно меньше второго. В противном случае вычислить модуль суммы этих чисел.
12. Радиус окружности, вписанной в равносторонний треугольник, равен R. Составить программу для вычисления стороны (признак N = 1), высоты (признак N = 2) или площади треугольника (признак N = 3).
13.Определить, в каком координатном угле находится точка с координатами (X, Y), вывести на печать координаты этого угла.
14.Определить, какие из данных трех действительных чисел A, B, C являются целыми.
15.Написать программу вычисления стоимости покупки с учетом скидки. Скидка на 3% предоставляется, если сумма покупки больше 500 руб., на 5% – если сумма покупки больше 1 000 руб.
16. Введите три угла и проверьте, может ли треугольник иметь такие углы.
17. На некотором участке дороги разрешенная скорость составляет 60 км/ч. Введите скорость водителя и определите, движется ли он с разрешенной скоростью, или же его следует наказать согласно ПДД.
18. Введите три целых числа и определите, сколько среди них двузначных.
19. На сейфе установлен код 3169. Введите код и сообщите, откроется ли сейф.
20. Введите координаты точки в двумерном пространстве (x и y) и проверьте, попадает ли она в единичную окружность.
Контрольные вопросы:
1. Понятие тестирование ПО.
2. Что такое дефект, ошибка, отказ?
3. Классификация багов?
4. Что такое баг-репорт, какую информацию он содержит?
5. Какое ПО применяют для фиксации ошибок и багов в программах?
Литература:
Святослав Куликов. «Тестирование программного обеспечения. Базовый курс». Распространяется бесплатно в pdf-формате. http://svyatoslav.biz/software_testing_book_download/
Интернет источники:
http://www.protesting.ru/testing/ портал тестирования
https://habr.com/ru/post/279535/ тестирование ИТ-систем
https://www.rstqb.org/ru/ портал сертификации