Планы тестирования и как их лучше всего написать

StackOverflow https://stackoverflow.com/questions/32377

  •  09-06-2019
  •  | 
  •  

Вопрос

Мы пытаемся найти наилучший способ написания тестов в нашем плане тестирования.В частности, при написании теста, предназначенного для использования кем бы то ни было, включая сотрудников отдела контроля качества, должны ли этапы теста быть очень конкретными или более широкими, что дает тестировщику больше возможностей для выполнения задачи.В качестве очень простого примера, если вы тестируете открытие документа в текстовом редакторе document, должен ли тест читать:

  1. С помощью мыши откройте меню файл
  2. Выберите "Открыть файл ..." в меню "Файл".
  3. В появившемся диалоговом окне "Открыть файл" перейдите к x и дважды щелкните документ с именем y

или

  1. Вызовите диалоговое окно открытия файла
  2. Откройте файл y

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

Это было полезно?

Решение

Мой первый вопрос был бы таким: почему ваш отдел контроля качества не пишет планы тестирования?Как правило, разработчики программного обеспечения предоставляют QA функциональную спецификацию того, как должно работать программное обеспечение, а затем QA создает планы тестирования на основе этого.

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

Если существует несколько способов достижения цели, вам нужно описать каждый путь, чтобы достичь ее.

Другие советы

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

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

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

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

  • люди, проводящие тесты, не могут прийти и задать вам вопросы
  • люди, проводящие тесты, не знакомы с вашим продуктом

Вы можете избежать некоторых деталей, если они не соответствуют действительности.Однако это все еще зависит :)

При всем при этом то, что вы напишете, не является тем, что обычно считается "планом тестирования".План тестирования описывает, какие типы тестов будут выполняться (функциональные, регрессионные, безопасности и т.д.), какие функции должны быть протестированы, возможно, даже какие тесты должны быть написаны, кто будет проводить тестирование, когда запланированы группы тестов и другие действия типа планирования.

То, что вы описали выше, - это просто набор тестов.

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

Давайте различать План тестирования и Наборы тестов :)

Набор тестов - это сам набор тестов

План тестирования - это [часть] набора тестов + доступные ресурсы (люди, оборудование, время, ...).

Можно использовать оба варианта (подробный и "черновой"), описанные в вашей тестовой документации, просто разместите подробные и "черновые" тесты в разных документах и расставьте приоритеты в этих документах.

Затем, когда у вас будет достаточно времени для полного тестирования продукта, вы берете все документы, скажем, категории А, и тестируете продукт в соответствии с этими документами.Если у вас нет времени, но вам нужно быстро сделать вывод о качестве, вы берете документы категории В и проходите описанные там проверки.

хорошая сторона:вы можете выбрать способ тестирования продукта

плохая сторона:вам нужны "дублирующие" документы

Совершенно нормально требовать точных, подробных шагов по повторному воспроизведению, когда кто-то обнаруживает проблему.Но если вы напишете свои планы тестирования таким образом, вы рискуете столкнуться со следующими проблемами:

1) Невнимательная слепота - Я наблюдал за людьми, выполняющими подробный сценарий процедурного тестирования, послушно проходящими и скрупулезно записывающими каждый шаг и ПОЛНОСТЬЮ УПУСКАЮЩИМИ из ВИДУ вопиющую ошибку прямо перед ними.Потому что этого "не было в сценарии".Их внимание было настолько сосредоточено на всех этих сложных этапах тестирования, что они буквально не могли видеть стоящих перед ними проблем.

2) Вы пропустите ВСЕ те ошибки, которые находятся всего в одном шаге от вашего очень подробного, очень конкретного пути.Когда клиенты получат ваш продукт, они не будут следовать подробному плану тестирования.Они будут перемещаться по вашему приложению различными способами.Они изменят свое мнение.У них будут имена длиннее или короче, чем вы считали вероятными.Они завершат транзакцию на полпути и откажутся от нее.Они будут блуждать.Они не будут придерживаться одного пути.И каждый раз, когда кто-то повторяет тест, они снова будут пропускать эти ошибки.

3) Вы потратите невероятно много времени, пытаясь написать тестовые сценарии "любой может следовать этому".Поверьте мне, я потратил годы, пытаясь довести это до совершенства, и это просто невозможно по-человечески.Хуже того, количество времени, которое вы тратите на то, чтобы сделать это, можно было бы потратить с гораздо большей пользой каким-то другим способом, так что качество вашего продукта ухудшится.

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

Расширяйте свои планы тестирования и позволяйте людям, проводящим тестирование, высказывать свое мнение.Если у вас есть информация о конкретных сценариях использования, которые необходимо протестировать, или о том, как целевая группа пользователей захочет работать, то предоставьте ее тестировщикам вместе с планами тестирования - возможно, в виде пользовательских персонажей, возможно, просто в виде вариантов использования.Если вам нужно отметить конкретные вещи галочками, подумайте об использовании контрольного списка.(Для получения дополнительной информации смотрите превосходную презентацию Джема Канера www.kaner.com/pdfs/ValueOfChecklists.pdf).

В качестве альтернативы, запишите свои планы тестирования в виде коротких ознакомительных инструкций.Вы могли бы, например, дать такие рекомендации, как:"Пользователи Callcentre будут использовать рабочие станции без подключенной мыши.Изучите процесс оформления заявки от имени клиента, убедившись, что все действия можно выполнить только с помощью сочетаний клавиш. " Это с гораздо большей вероятностью приведет к тому, что ваши тестировщики обнаружат дефекты, чем сказать "Tab в поле 1.Введите "Жалоба на качество линии".Внесите вкладку в поле 2.Выберите "Телефонный звонок" из выпадающего меню.Вкладка внутрь ....поле 68."

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

если вы изложите все в мельчайших деталях (например,"в меню файл выберите "Открыть" ..."), чем преимущество в том, что вы можете использовать подрядчиков, которые не знакомы с вашей системой. но вам потребуется больше времени, чтобы написать вот так

если вы пропустите много деталей (например,"откройте файл документа ..."), чем тот, кто использует ваш план тестирования, с большей вероятностью застрянет и не будет прерывать вас для получения разъяснений. но это гораздо быстрее для написания

может быть ложной экономией думать, что это будет быстрее, если вы сделаете быструю версию, если в итоге вы просто потратите дополнительное время на объяснение системы специалисту по контролю качества

у меня есть статья, в которой я более подробно останавливаюсь на этой теме: Написание Плана тестирования системы

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

-- ФИЛЬМ

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top