Шрифт:
"Разработка дизайна продукта и создание документации") и про-
должаются на стадии "Кодирование".
2. Планирование тестирования
происходит на стадии "Кодирование".
3. Исполнение тестирования
происходит на стадии "Исполнение тестирования и ремонт багов".
Важный момент:
показанная связь между циклом разработки ПО и циклом тести-
рования — это всего лишь типичная модель взаимодействия
процессов, в то время как на практике, и особенно в стартапах,
встречается множество ситуаций, когда, например, нет спеков,
код уже написан и его срочно нужно протестировать навскидку,
нет времени на создание тест-документации и пр. Поэтому пред-
лагаю, чтобы мы, изучая цикл тестирования, абстрагирова-
лись от цикла разработки.
Что нам это даст? Гибкость, так как,
зная цикл тестирования как независимый процесс, мы сможем
легко связать его с любым циклом разработки ПО в любой ин-
тернет-компании.
Цикл тестирования ПО
133
Итак, независимый процесс, называемый циклом тестирования
ПО, состоит из трех стадий:
1. Изучение и анализ предмета тестирования.
2. Планирование тестирования.
3. Исполнение тестирования.
1. Изучение и анализ предмета тестирования
Вопрос: что можно протестировать в интернет-проекте?
Легитимные варианты ответа:
• интерфейс пользователя (например, что определенная кноп-
ка называется "Купить", а не "Кипуть");
• скорость работы веб-сайта (например, то, что при одно-
временной работе с сайтом 200 пользователей скорость за-
грузки веб-страницы составляет не более 5 секунд);
• документацию (например, что спек не содержит противо-
речий и неточностей).
Все это правильно, но есть нечто более важное.
Вопрос: для чего пользователи приходят на наш веб-сайт? Ответ:
для удовлетворения своих потребностей — покупка книг, чтение
анекдотов, проверка баланса кредитной карты и т.д. и т.п.
Вопрос: как можно удовлетворить потребности пользователя?
Ответ: нужно
• придумать (продюсер),
• написать (программист),
• протестировать (тестировщик) и
• передать пользователям (релиз-инженер)
средства, которые эти потребности удовлетворят. Этими средст-
вами являются ФУНКЦИОНАЛЬНОСТИ интернет-проекта.
Вот формальное определение:
функциональность (functionality, feature) — это средство для
решения некой задачи.
Примеры из реальной жизни
Функциональность компьютерных колонок "Volume" решает задачу
"Как изменить громкость звука".
Функциональность "Казино" решает задачу "Как незаметно для себя
потратить все отпускные деньги".
Функциональность "Принтер" решает задачу "Как распечатать документ".
134
Тестирование Дот Ком. Часть 2
Примеры из виртуальной жизни
Функциональность "Корзина" решает задачу "Как хранить информацию
о товаре, выбранном пользователем".
Функциональность "Добавление товара в корзину" решает задачу "Как
добавить товар в корзину".
Функциональность "Удаление товара из корзины" решает задачу "Как