О постановке мозгов для тестировщика

Предположим, перед вами - текстовое поле. Самое обычное текстовое поле. В него можно ввести число от -99 до 99. После "тыца" на Enter на выходе получаете Строку в формате "Вы ввели число: ..."

И вот садится наш тестировщик Вася за машинку, открывает софтину и начинает думать:
1. Оукей, давайте сначала разгребемся с классами эквивалентности. У нас их четыре: 
[1..9], [-9..-1], [10..99]. [-99..-10]. 

2. Хм, а нолик-то ни туда, ни туда не влезает, и его вообще можно со знаками загонять в это самое поле. Давайте и это учтём. 

3. Продумаем тестирование граничных значений.

И вот сидит наш Вася, довольный и радостный, т.к. умудрился за столь короткое время покрыть все-все валидные значения и даже несколько невалидных(+0, -0, негативные граничные значения меньше -99 и больше 99)
Пятница, вечер, сидеть на работе не хочется, и наш Василий, хватая конверт с очередной зарплатой, идет отмечать окончание рабочей недели в рэсторан.

Но верно ли, что при правильном прохождении тест-кейсов, кусок, назначенный Василию для проверки, будет работать правильно? 

Теперь перенесемся на секунду в отдел разработки, где очень молодой, но безумно перспективный Junior Java Developer Сергей пишет код для данного функционала. И принимает его метод на вход далеко не строку, а коды ASCII-символов.
Сергей, будучи разработчиком перспективным, заранее определяет граничные значения кодов для чисел. Например, по верхней границе -  57(ASCII-код девятки). Но конец тяжелой рабочей недели и пламенная СМСка от любимой девушки не дают Сергею сосредоточиться, и вместо 57 в коде оказывается граничное верхнее значение 58.

Казалось бы, при правильных значениях всё должно работать.Но стоит нашему дорогому и горячо любимому пользователю ввести символ двоеточия, и программа будет свято убеждать его в том, что этот символ является числом. Итог: Сергея в предынфарктном состоянии срывают на работу(Release is coming)  прямо из объятий любимой, Василий остается без премии, а наш дорогой пользователь строчит гневные комментарии в раздел поддержки программы.

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

3 комментария:

  1. Этот пример очень хорошо показан в книге Канера в первой главе так что тему можно развивать

    ОтветитьУдалить
  2. Best Bitcoin casino site for US players 2021
    Best Bitcoin casino site for US players 2021. We give you an insight 카지노사이트luckclub into the top online casinos for US players with games, bonuses, promotions and more.

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