Тестовые случаи для тестирования кода ..... какие границы? - PullRequest
1 голос
/ 17 февраля 2011

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

Однако, так как я только что закончил колледж со степенью бакалавра в CS, я довольно новичок в профессиональном мире ...и особенно QA.

В любом случае, ему трудно найти действительно хороший «метод» для получения хорошего результата теста.

Как, скажем, ваши вводимые числа с клавиатуры (0-9) .....Таким образом, чтобы проверить, вы протестируете принятый диапазон (например, 1-100), но затем я спрашиваю себя, сколько я должен тестировать в этом диапазоне (имейте в виду, что некоторые из них невозможно автоматизировать, поскольку нам приходится время от времени нажимать их вручную).)

Тогда вы явно протестируете вне диапазона (но сколько раз?)

И, например, вводите символы ASCII, которые не принадлежат, например, * $%, или символы.Я немного озадачен тем, как дать хороший тестовый пример для ограниченных / неограниченных случаев?

Есть идеи?

Ответы [ 3 ]

1 голос
/ 17 февраля 2011

Я бы порекомендовал просмотреть Блог тестирования Google для получения информации о стратегиях тестирования. Джеймс Уиттакер также написал пару книг по тестированию. Я сам не читал книги, но надеюсь в какой-то момент.

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

1 голос
/ 17 февраля 2011

Если это помогает, вы столкнулись с действительно трудной проблемой - любой, кто говорит вам, что легко или тривиально выбрать правильные контрольные примеры из почти бесконечного числа, либо неосведомлен, либо пытается продать вам очень дорогой инструмент !

Группировка вашего вклада в семейства (или эквивалентные разделы), как подсказывает другой ответ, может оказаться полезной. Я бы посоветовал почитать о дизайне тестов - мне нравится книга Ли Коупленда «Руководство для практиков по разработке тестов программного обеспечения», но вы также можете найти книгу Тобби Райбера «Essential Test Design» полезной - она ​​доступна для бесплатной загрузки в формате PDF здесь: http://www.ryber.se/?p=213 - взгляните на главу 10, чтобы начать с.

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

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

Вот видео о граничном тестировании и некоторые ссылки на дополнительные ресурсы: http://www.testingreflections.com/node/view/4292

1 голос
/ 17 февраля 2011

Ищите входные семьи.

отрицательный, неотрицательный, 0, неположительный, положительный, 0 цифр, 1 цифра, 2 цифры, 3 цифры ...

Это примеры входных семейств.

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

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

...