пятница, 11 июня 2010 г.

Когда полезен тест-дизайн?

На форуме прозвучал вопрос про ситуации, когда необходим тест-дизайн, и когда - нет. Отвечаю расширенно и здесь :)

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

Чек-лист - это перечисление областей/действий, которые надо протестировать, без описания шагов.
Чек-лист

Свободное тестирование - неограниченное рамками тестовых спецификаций творческое тестирование.
Эксплоративное тестирование

Чтобы ответить на вопрос, что и когда нужно делать, надо сначала понять, что и зачем нужно :)
Зачем пишутся чек-листы?
- Чтобы ничего не забыть
- Чтобы оценивать масштабы работ
- Чтобы иметь возможность приоритезации проверок
- Для подспорья неопытным сотрудникам
- Чтобы иметь возможность приблизительно отслеживать, что работает, а что - нет

Зачем пишутся тест-кейзы?
- Чтобы ничего не забыть
- Чтобы по ним можно было учить новых сотрудников
- Чтобы точно знать, что работает
- Чтобы иметь детальную отчётность
- Чтобы иметь возможность точного планирования
- Чтобы в работу можно было подключать не выскококвалифицированных сотрудников

Получилось приблизительно такая схемка:


Исходя из этих пунктов, уже почти понятно, когда что использовать - нужны ли нам кейзы, чек-листы, или вообще ничего не нужно...
Но, не тут-то было! У любых подходов есть и свои негативные факторы:

Минусы чек-листов:
- Непонятно, что именно было протестировано
- Нужно некоторое (небольшое) время на их создание

Минусы тест-кейзов:
- Большие затраты на их создание
- Необходимость поддержки в случае изменений в продукте
- Эффекти пестицида (кейзы со временем перестают находить ошибки)
- Скука со стороны тестировщиков (не всем нравится гонять одно и то же)

Соответственно, мы получаем "плюсы" - это то, что мы получаем. И минусы - это цена, которую мы платим за эти плюсы.
В каждом конкретном случае список плюсов и минусов (особенно плюсов) может существенно расширять. И что выбирать будет зависеть от того, готовы ли вы платить такую цену за такие плюсы :)

10 комментариев:

  1. Спасибо.
    Вы знаете как происходит процесс тестирования в стартапах, где не пользуются тестдизайном?

    ОтветитьУдалить
  2. admin, а с чего Вы взяли, что в стартапах не используется тест-дизайн? Сама занята сейчас одним стартапом. Тест-дизайн присутствует :)

    Я бы не типировала стартапы/не стартапы. Во многих крупных компаниях хаос. Во многих крохотных проектах - контролируемый процесс. От размера команды он не зависит.

    А вообще, опыт работы вообще без тест-дизайна есть. Не буду разглашать имя компании, но тестеров в ней было не меньше 15-20. Как тестируют? Запускают программу и тестируют! :)

    ОтветитьУдалить
  3. Вот про последний абзац можно подробней?). Получается что люди просто руководствуясь своей интуицией и жизненным опытом безсистемно пытаются найти баги? Как мне кажется такой метод не позволяет полностью покрыть тестами программу, и после релиза 100% пользователи найдут баги.

    ОтветитьУдалить
  4. admin, баги в любом случае найдут :)
    но в таком случае их явно будет больше. Потому что:
    - нет продумывания и согласования, что тестировать => хуже покрытие
    - невозможно чётко поделить, кто что тестирует => многие делаеют одно и то же => неоптимальная трата ресурсов
    - в таких условиях для многих сотрудников мотивация - найти максимум багов. При этом неважно, что это за баги - критичные для пользователя, найденные в специфичных условиях, или мелочи, которые пользователю не важны, но которые легко найти => баги заводятся для количества => пропускаются важные, но сложные в поиске баги
    - неизвестно точно, что протестировано => невозможно оценить качество перед релизом => релиз происходит зачастую интуитивно.

    Заранее предвкушу вопрос "почему так было сделано?": потому что руководство считало, что 20 студентов за копейки эффективнее, чем 5 профессиональных тестеров. От себя добавлю, что я не согласна :)

    ОтветитьУдалить
  5. Natalya Rukol, спасибо.

    ОтветитьУдалить
  6. "Сама занята сейчас одним стартапом."
    А почему такой опытный специалист как вы, не работает в гугле?:)

    ОтветитьУдалить
  7. "А почему такой опытный специалист как вы, не работает в гугле?:)"
    А что, в гугле мёдом намазано? :) Мне интереснее делать что-то своё. Собственно, вышеописанный стартап тоже мой :)

    ОтветитьУдалить
  8. В гугле есть стабильность. Его сотрудники не боятся что завтра их разгонят изза кризиса. А стартап это риск. Свой стартап - большой риск :).

    ОтветитьУдалить
  9. Во-первых, риск - это интересно :) По-крайней мере, мне.
    А во-вторых, непрерывное развитие и рост квалификации нивелируют риски. Полученные ошибки - тоже опыт!

    ОтветитьУдалить
  10. Интересно узнать ваше мнение.
    http://game-ts.blogspot.com/2010/09/help.html

    ОтветитьУдалить