Найти тему
Будни тестировщика

Определяя фокус.

Давайте перейдем к трем требованиям по весу: FUN-UNDERWEIGHT, FUNNORMALWEIGHT и FUN-OVERWEIGHT. Сейчас самое время разделить входные и выходные значения на классы эквивалентности, как было объяснено раньше:

< 3 кг → недостаточный вес;

≥ 3 кг и < 6 кг → нормальный вес;

≤ 6 кг → избыточный вес.

Давайте предположим, что котов взвешивают с инкрементом в одну десятую килограмма. Это можно уточнить, обсудив с системными инженерами и другими заинтересованными лицами. Мы можем выбрать явные граничные значения: 2.9, 3.0, 5.9 и 6.0 кг. Теперь давайте добавим внутреннее значение из каждого класса эквивалентности: 1.6 кг для недостаточного веса, 5.0 кг для нормального веса и 10 кг для избыточного веса. Мы также хотим добавить неявные граничные значения — скажем, 0 и 1000 кг. Последнее значение предполагает, что 1000 кг является теоретической верхней границей для кота перед тем, как он превратится в черную дыру в соответствии с моим пониманием физики (замечу, что автор не является физиком). В завершение давайте проверим некоторые угловые случаи: отрицательное число (-13), нечисловую строку (quackadoodle_doo). Посмотрите, как много внимания уделяется определению множества входных значений для этих требований по сравнению с начальным сообщением. Так как определение статуса веса кота является сутью приложения, ему должно уделяться больше внимания с точки зрения тестирования:

ИДЕНТИФИКАТОР: UNDERWEIGHT-INTERNAL

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра недостаточный вес кота, составляющий 1.6 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 1.6

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 1.6"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота недостаточный"

ИДЕНТИФИКАТОР: UNDERWEIGHT-LOWER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра вес невесомого кота, составляющий 0 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 0

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 0"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота недостаточный"

ИДЕНТИФИКАТОР: UNDERWEIGHT-UPPER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра недостаточный вес кота, составляющий 2.9 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 2.9

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 2.9"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота недостаточный"

ИДЕНТИФИКАТОР: NORMALWEIGHT-INTERNAL

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра нормальный вес кота, составляющий 5 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 5

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 5"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота нормальный"

ИДЕНТИФИКАТОР: NORMALWEIGHT-LOWER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра нормальный вес кота, составляющий 3 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 3

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 3"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота нормальный"

ИДЕНТИФИКАТОР: NORMALWEIGHT-UPPER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра нормальный вес кота, составляющий 5.9 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 5.9

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 5.9"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота нормальный"

ИДЕНТИФИКАТОР: OVERWEIGHT-INTERNAL

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра избыточный вес кота, составляющий 10 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 10

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 10"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота избыточный"

ИДЕНТИФИКАТОР: OVERWEIGHT-LOWER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра избыточный вес кота, составляющий 6 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 6

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 6"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота избыточный"

ИДЕНТИФИКАТОР: OVERWEIGHT-UPPER-BOUNDARY

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра избыточный вес кота, составляющий 1000 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 1000

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher 1000"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа выводит на экран сообщение "Вес кота избыточный"

ИДЕНТИФИКАТОР: WEIGHTSTATUS-INVALID-NEGATIVE

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра отрицательный вес кота, составляющий -13 кг

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: -13

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher -13"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа не отображает информацию о статусе веса кота и прекращает работу

ИДЕНТИФИКАТОР: WEIGHTSTATUS-INVALID-STRING

ТЕСТ-КЕЙС: Запустить программу и передать в качестве параметра неправильный строковый аргумент

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: "quackadoodle_doo"

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher quackadoodle_doo"

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Нет в наличии

ПОСТУСЛОВИЯ: Программа не отображает информацию о статусе веса кота и прекращает работу

Может показаться, что слишком много текста для этих тестов с их относительной важностью! Впрочем, запомните, что объем требуемой документации будет зависеть от вашей компании, от правовых требований к тестируемой системе и т. д. Хотя мы создали относительно проработанный тест-план, в отважном стартапе могут ограничиться простым списком различных проверяемых значений и неформально ожидаемых поведений программы. Ответственность в определении нужного поведения может оказаться на тестировщике. И хотя это потребует от него больше работы и умственных усилий, а также готовности к возможным ошибкам, компромисс будет состоять в том, что тестовый план окажется более гибким, а разработка его пройдет быстро. В тестировании программного обеспечения, как и во всей сфере разработки, очень редко встречаются "абсолютно правильные" ответы, и часто приходится выбирать правильные компромиссы.

Также имеется некоторое пересечение между двумя последними тест-кейсами (WEIGHTSTATUS-INVALID-NEGATIVE и WEIGHTSTATUS-INVALID-STRING) и предыдущими тест-кейсами по проверке требования FUN-PARAMETER. И хотя они рассматривают немного отличающиеся аспекты системы, в работе все они используют методологию черного ящика. Можно было бы сказать, что они не являются необходимыми, хотя тестирование белого ящика может показать, что различные части системы тестируются различными тест-кейсами.

В зависимости от культуры компании и того, что ожидается от документации тестплана, мы могли бы сжать тест-кейсы таким образом, чтобы каждый из них работал со множеством значений. И хотя я не рекомендую такой подход — проще копировать и вставлять, а большее количество тест-кейсов позволяет им быть более конкретным — это экономит время при написании. Это также позволяет каждому тесткейсу покрыть бóльшую "территорию", но добавляет дополнительный шаг для определения того, где кроется проблема, если тест-кейс завершился неуспешно. Опуская эту оговорку, давайте рассмотрим пример сжатия трех тест-кейсов о недостаточном весе в один:

ИДЕНТИФИКАТОР: UNDERWEIGHT-INTERNAL

ТЕСТ-КЕЙС: Запустить программу и передать ей в качестве параметра значения недостаточного веса кота

ПРЕДУСЛОВИЯ: Нет

ВХОДНЫЕ ЗНАЧЕНИЯ: 0, 1.6, 2.9

ШАГИ ВЫПОЛНЕНИЯ: В командной строке запустите "catweigher n", где n равняется одному из входных значений

ВЫХОДНЫЕ ЗНАЧЕНИЯ: Не доступны

ПОСТУСЛОВИЯ: Для каждого из входных значений программа выводит на экран сообщение "Вес кота недостаточный"