Что пишут в блогах

Подписаться

Онлайн-тренинги

Конференции

Что пишут в блогах (EN)

Разделы портала

Про инструменты

.
Записная книжка тест-дизайнера, часть 9: Быстрые тесты
03.06.2020 00:00

Автор: Рикард Эдгрен (Rikard Edgren)
Оригинал
Перевод: Ольга Алифанова

Добавьте в ваш прогон немного быстрых и не всегда полезных тестов (взято у Кейнера/Баха).

  1. Тест ботинка – найдите поле ввода, переведите в него курсор, положите ботинок на клавиатуру и уйдите на обед.
  2. Граничное тестирование – тестируйте на границах, потому что неверное кодирование границ – распространенная ошибка.
  3. Атаки Уиттакера – Ввод: принудительные сообщения об ошибках, значения по умолчанию, исследование данных, переполнение буфера. Ищите взаимодействия, повторяйте многократно. Вывод: различный, неверный, изменение свойств, обновление экрана. Изучите сохраненные данные и расчеты. Наполните или повредите файловую систему, проверьте невалидные и недоступные файлы.
  4. Тестирование вмешательства – отмена, пауза, замена, прекращение, назад/далее, противоборство, удаление, выход из системы.
  5. Протестируйте недавние изменения – возможны неожиданные побочные эффекты.
  6. Исследуйте взаимоотношения данных – используйте зависимости, отслеживайте данные, вмешивайтесь, удаляйте.
  7. Тур вариативности – варьируйте как можно больше во всех возможных направлениях.
  8. Тур сложности – ищите наиболее сложные функции и данные, создавайте сложные файлы.
  9. Тур образца данных – пользуйтесь любым доступным образцом везде, где это возможно. Чем сложнее, тем лучше.
  10. Непрерывное использование – не перезагружайте систему при тестировании. Оставляйте окна и файлы открытыми. Повышайте использование диска и памяти в надежде, что система со временем самостоятельно завяжется узлами.
  11. Правки – установите параметр на определенное значение, а затем, позднее, измените значение на что-нибудь еще, не перезагружая и не воссоздавая документ или структуру данных.
  12. Куча мала – запустите много одновременных процессов и множество одновременно существующих состояний.
  13. Подсечка – начните использовать функцию, когда система находится в подходящем состоянии, а затем на полпути измените состояние системы на неподходящее.
  14. Наследие сообщений об ошибках – вызовите сообщения об ошибках. Тщательно тестируйте после того, как они закрылись.
  15. Кликобезумие – тестирование, конечно, намного шире "стука по клавиатуре", но эта фраза родилась не просто так. Попробуйте постучать по клавиатуре. Попробуйте покликать везде.
  16. Множество экземпляров – запустите несколько копий приложения одновременно. Открывайте одни и те же файлы.
  17. Взаимодействия функций – выясните, при каких условиях отдельные функции взаимодействуют или делятся данными. Ищите взаимозависимости. Пройдитесь по ним. Нагрузите их.
  18. Дешевые инструменты! – учитесь использовать InCtrl5, Filemon, Regmon, AppVerifier, Perfmon, Task Manager, Threadhijacker, Zed Attack Proxy, Color Oracle (все они бесплатны).
  19. Ресурсный голод – прогрессивно снижайте память и другие ресурсы, чтобы продукт грациозно деградировал (или неуклюже рухнул).
  20. Игра "Так сказано в книге" – поищите онлайн-справку или руководство пользователя, и найдите инструкции для чего-нибудь интересного. Сделайте это, и на основании этого импровизируйте.
  21. Безумные конфигурации – измените конфигурацию операционной системы нестандартным или необычным образом до или после установки продукта.
  22. Гроккинг – найдите часть продукта, которая создает большие объемы данных или очень быстро выполняет какую-либо операцию.

Интерпретация

Что угодно – интерпретация. Цель тестирования – это не просто проставить "пройдено/упало", это мало что значит. Вы должны быть открыты к важной информации и искать ее широким бреднем. Иногда необходимо начать тест, не имея ожидаемого результата или оракула под рукой, пользуясь вместо ними своим здравым смыслом и любопытством для определения деталей проблемы или поиска полезной и важной информации. Часто вам потребуется проводить последующие тесты для понимания, что значил результат предыдущих. Вы можете искать во многих местах, дабы избежать ошибок интерпретации.

Вы можете фиксировать все, что, с вашей точки зрения, важно для получателей. Тестировщики могут найти баги, риски, странные моменты, проблемы, артефакты, интересности, тесты, зависимости, вопросы, ценности, подходы, идеи, улучшения, обходные пути, модели, связи.

Если вы знаете несомненные идеальные способы, то, конечно, используйте их как оракулы.

Счастливые случайности

Даже при наилучшем тест-дизайне вы не сможете выяснить все значимое о продукте. Однако при открытом и заинтересованном выполнении тестов вы можете воспользоваться счастливыми случайностями – тестирование переполнено ими.

Если этого с вами не происходит, воспользуйтесь этой отличной практикой.

  1. Будьте открыты счастливым случайностям – самые важные вещи часто находятся, когда вы ищете что-то другое. Если бы мы точно знали, где расположены все баги, нам бы хватило автоматизации или детальных тест-сценариев (или мы бы вообще не заморачивались с тестами). Поэтому убедитесь, что смотрите на картину в целом, везде, где только можно. Странное поведение может быть как нерелевантным, так и ключевым для получения важной информации. Тестирование всегда подразумевает выборку, и счастливые случайности  -ваш друг и спаситель.

Такие случайности – это не удача, немного удачи в них присутствует.

Обсудить в форуме