Добавить юзера c обычной подпиской

Стань тестировщиком сегодня
Уровень 2
Место тестирования в процессе разработки

Добро пожаловать в новый уровень, мой юный падаван! Перед тем, как ты узнаешь новые тайны силы тестирования, я хотел бы разобрать с тобой домашнее задание. На видео магистр Ки-Ади-Мунди покажет, как он протестировал сайт из практического задания. Он поделится тайнами практического тестирования, расскажет на что обращать внимание и какой подход применять.

Итак, приступим к нашей теме - "Место тестирования в процессе разработки". Возможно, ты будешь уверять, что ты совсем не готов еще, но уже на втором уровне тебе придется встретиться с силами зла! Как ты догадываешься - главные силы зла - это программисты или разработчики. Именно они создают коварный код, который содержит все эти ужасные баги.
Кто-то скажет, что в жизни они добродушные бородатые толстячки, которые и мухи не обидят. И это тоже правда. Но на поле разработки ПО - это наши главные враги.
Мой юный падаван, сегодня мы идем на рискованное мероприятие, мы будем наблюдать за тем как идет процесс на звезде смерти (у программистов) и сравнивать их рабочий процесс с нашим, чтобы быть максимально эффективными. Ибо врага нужно знать лучше чем друга!
Стадии тестирования и разработки
Уровень 2 Galaxy QA Academy, еще не доступен в мобильной версии, пожалуйста воспользуйтесь десктопной. Извините за неудобства.

Development process
Testing process
Проектирование тестов. Например тест кейсов
Программирование (coding)
Выполение тестов (прохождение тест кейсов, запуск автотестов)
Отладка тестов
(адаптация тест кейсов к изменившемуся функционалу)
Cоздание версий продукта который вы тестируете (build)


Результат тестирования
(test result)
Поддержка продукта
Поддержка продукта
Далее схема организации взаимодействия разработки и тестирования ПО. Про каждый этап вы можете узнать подробнее перейдя по ссылке, хотя большинство этих понятий вы еще встретите на следующих уровнях более подробно.

Подробнее о стадиях тестирования
Тестирование
программного продукта
Планирование процесса тестирования
Проектирование тестов
Выполнение
тестов (testing cycles)
Отладка тестов
Системное тестирование
(System Testing)
Стадии статического тестирования:
-
Анализ требований - изучение спецификаций, функциональных требований к системе. Получение данных для составления плана проведения тестирования
-
Планирование процесса тестирования - определение объемов тестирования, подходов, ресурсов и расписание выполнения намеченных действий
-
Проектирование тестов - определение цели тестирования, спецификации входных данных, архитектуры тестов для упорядочивания тестов по группам
Стадии динамического тестирования :
-
Выполнение тестов (testing cycles) - непосредственная проверка спроектированных тестов, анализ всевозможных тестовых случаев
-
Отладка тестов - Пересмотр и отладка тестовых случаев
-
Системное тестирование (System Testing) - Функциональная проверка, тестирование для определения рабочих характеристик
-
Приемочные испытания (Acceptance Testing): Альфа-тестирование, Бета-тестирование
-
Эксплуатация и поддержка - Проверка результатов, исправление дефектов
Приемочные испытания
(Acceptance Testing)
Эксплуатация и
поддержка
Мы увидели концепцию процесса тестирования и разработки, так сказать - с высоты птичьего полета. Теперь пора спуститься на землю и рассмотреть конкретные вещи.
Давайте рассматривать вещи от простого к сложному:
-
Анализ требований - уровень 8
-
Планирование - уровень 7
-
Проектирование тестов - вот тут давайте поподробнее
Все пункты далее мы начнем рассматривать сейчас и плавно продолжим над ними работать в следующем уровне. Начнем тему с того, что поймем что же такое Тест.

Определение теста и тестового набора



Тест – «триплет» Вход/Состояние/Выход
Тест - это последовательность шагов/действий, которая переводит систему из одного состояния в другое
Тест описывается аббревиатурой ISO, где:
-
[I] – is input data or action (входные данные или действия)
-
[S] – is State of system at which data will be input (состояние системы, которая получает входные данные или воздействие)
-
[O] – is the expected Output (ожидаемые Выход, выходные данные или выходное состояние системы)
Тестовый набор
-
Набор тестов, реализующих законченную бизнес задачу, автоматизированную функциональностью системы под тестом
-
Тестовый набор включает, кроме непосредственно тестовых сценариев, также и тестовые данные или правила их создания/генерации
Тестовый набор – практические соображения
-
После объединения тестов в наборы не должно оставаться незадействованных тестов
-
При проектировании тестов «сверху вниз», тест кейсы будут являться частями тестовых наборов
-
Рекомендуется применять именно проектирование тестов «сверху вниз»
Тестовое покрытие – практические соображения
-
Количество тестов не определяет качество тестового покрытия
-
% тестового покрытия не определяет степень доверия к результатам тестирования, если он не равен 100%
-
100% покрытие в условиях реальных разработок практически недостижимо
-
Увеличивайте порог тестового покрытия в случае возникновения ошибок в тестовой области или компоненте
Разработка тестовых сценариев – практические соображения
Существуют формальные методы разработки тестовых сценариев
-
Методология разработки тестовых случаев на основе сценариев использования
-
Методология разработки тестовых случаев на основе ортогональной классификации дефектов
Существуют формальные методики оценки объемов работ требуемых для минимального тестового покрытия
-
Метод расчета цикломатической сложности основанный на метрике МакКаби (McCabe)
Смешанные методики - комбинация подходов

Классификация тестирования по уровню «готовности» системы
Unit level - модульный уровень
-
Тестирование целостности кода на уровне логических модулей
-
Выполняется разработчиками
-
Контролируется группой тестирования с помощью инструментов анализа покрытия кода unit-тестами (unit test coverage tools)
Комментарий: согласно TDD концепции, тестировщик должен требовать от программистов покрытия кода unit-тестами (элементарное тестирование каждого модуля). Не всегда является обязанностью тестировщика. C точки зрения мануального тестирования модульный уровень - это тестирование отдельно стоящей формы входа (login + password)
Integration level - кросс модульное взаимодействие
-
Тестирование промежуточных результатов интеграции системы
-
Выполняется разработчиками и тестировщиками
Комментарий: c точки зрения мануального тестирования это перенос вашей формы входа на страницу сайта и проверка взаимодействия формы и страницы сайта.
System level - уровень системы в целом
Валидация полностью построенной системы на соответствие сформулированным требованиям
Под - уровни системного тестирования:
-
Alpha Testing
Выполняется группой тестирования внутри команды/организации разработки
-
Beta Testing
Выполняется группой тестирования в среде дружественно настроенных клиентов
-
Acceptance Testing
Выполняется клиентом с целью определить будет ли система принята в эксплуатацию
-
«Дымовое тестирование» (smoke testing) Выполняется группой тестирования с целью определения будет ли система принята в тестирование. Применяется для того чтобы определить рабочая ли программа в принципе и стоит ли начинать цикл тестирования.
Комментарий: c точки зрения мануального тестирования это тестирования формы в рамках всего проекта. Пример - проверка базы данных пользователей в которой должна появится новая запись после регистрации пользователя на вашем готовом сайте через форму входа
