Как разбить кого-то на тестирование? - PullRequest
9 голосов
/ 03 февраля 2010

OK. Наш продукт работает. Бета-тестеры на самом деле делают свое дело. Время следующей итерации. Но как обеспечить качество? Нам нужен тестер!

Как мне заставить кого-то свежего с улицы начать тестирование? Я понятия не имею, как это сделать сам (я разработчик, а не тестер)!

Мы крошечная команда:

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

Никто из нас не знает, как сделать это профессионально. Пока что имеем:

  • группа виртуальных машин, охватывающая конфигурации, которые мы хотели бы протестировать
    • различные версии окон
    • немецкий и английский, два языка, которые могут использоваться нашими клиентами
    • программное обеспечение хоста, для которого мы пишем (Autodesk Revit Architecture 2010, мы создаем плагин для расчетов энергии)
  • текстовый документ, описывающий некоторые тесты, которые я провел (установил релиз xyz, сделал это, сделал это и т. Д.)
  • система отслеживания ошибок, тестер может добавлять все найденные ошибки

Полагаю, нам понадобится тестовый скрипт. Но как? Кто? Какие? Когда?

Ответы [ 5 ]

7 голосов
/ 03 февраля 2010

Почему вы ищете "кого-то с улицы"?Для меня это звучит как вопрос: «Я хочу нанять нового программиста, как я могу вывести кого-то с улицы и заставить его ускорить программирование моего программного обеспечения?».Почему вы хотите сделать это, нанимая кого-то, кто уже является программистом?

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

В частности, я бы, вероятно, искал:

  1. Кто-то с некоторым опытом, выполняя тесты под его поясом (так как вы будете хотетьон на самом деле делает тесты).
  2. Кто-то с некоторым опытом написания планов тестирования / и т.д.
  3. Кто-то с некоторым опытом работы в команде QA.

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

2 голосов
/ 03 февраля 2010

Перед тем, как кого-то тестировать, убедитесь, что вы соответствуете требованиям для тестирования. Как минимум вам нужно:

Спецификация: некий авторитетный источник информации о том, что должно делать приложение. Это может быть эксперт, который может ответить на все вопросы о том, что именно должно делать приложение, но чем больше записано и чем более формально оно определено, тем лучше.

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

Если у вас нет этих двух вещей, обеспечение качества - это просто несбыточная мечта.

Теперь, если вы встретились с ними и пытаетесь обучить кого-то тестировать, вот мой ускоренный курс по тестированию.

По сути, тестирование приложения означает, что вы пытаетесь обеспечить две вещи:

  • Программа делает то, что должна.

  • Программа не делает то, что не должна делать.

Это основной настрой, который я использую. Основываясь на этом, я подхожу к вещам с точки зрения действий и пытаюсь проверить:

  1. Ожидаемое действие с ожидаемыми предварительными условиями дает ожидаемый эффект.
  2. Ожидаемое действие с неожиданными предварительными условиями не дает эффекта или обрабатывается соответствующим образом.
  3. Неожиданное действие не дает эффекта или обрабатывается соответствующим образом.
  4. Никаких неожиданных эффектов не возникает.

Элемент 1 взят непосредственно из спецификации: вы убедитесь, что программа делает то, что должна.

В пунктах 2 и 3 возникает искусство тестирования. Какие неожиданные действия и предварительные условия я могу выполнить? Я мог бы попытаться ввести неправильный пароль. Я мог бы попытаться напрямую ввести URL предположительно защищенной страницы. Я мог бы попытаться вставить нечетные символы Unicode в текстовое поле. Я мог бы попытаться поместить код SQL или javascript в текстовое поле.

Пункт 4 - это бесконечная ничейная страна испытаний, часть, которая делает невозможным полное испытание. (2 и 3 также бесконечны, но не настолько унылы, чтобы думать о них.) Это не значит, что вы игнорируете это. Вы всегда следите за чем-то необычным. Кроме того, иногда возникает вдохновение, и вы думаете о возможном способе вызвать неожиданный эффект: «Что произойдет, если я войду между 11:59:59 PM и 12:00:00 AM третьего вторника месяца? я администратор. " Технические знания и взгляд в черный ящик помогают с такими сценариями.

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

2 голосов
/ 03 февраля 2010

Ну, вы хотите расширить свою команду тестером? Рассматривали ли вы просто найма специалиста по тестированию из консультационной фирмы?

1 голос
/ 03 февраля 2010

В идеале вам нужно дать тестеру:

  • обучение , чтобы убедиться, что он знает продукт, который будет тестироваться.
  • документация о том, какие ожидаемые результаты.
  • планы испытаний - что необходимо проверить и как
  • a система отслеживания испытаний дляотслеживать, что тестируется, что прошло тесты, что нужно исправить, и т. д. Эта система не должна быть слишком сложной, в зависимости от размера проекта, таблицы Excel может быть достаточно.
0 голосов
/ 03 февраля 2010

В своем подкасте # 64 Джефф и Джоэл обсуждают (среди прочего), какими навыками должен обладать хороший тестер. Стенограмма также доступна (примерно на полпути вниз страницы)

...