Шрифт:
1. Ввод действительных данных (valid input).
2. Ввод недействительных данных (invalid input).
Пустой ввод (Nul input) может принадлежать как к действительному,
так и к недействительному вводу в зависимости от спецификации.
Например, при регистрации в поле для Имени буквы (letters) или в со-
четании буквы и пробелы (white space) — это действительный ввод,
цифры (numbers), специальные знаки (special characters, например "&")
и/или пустой ввод — это недействительный ввод. Если спек не делает
уточнений, что есть действительный и недействительный ввод, посы-
лайте е-мейл продюсеру, а если спека нет в принципе, то полагайтесь
на пункт 5 источников из предыдущей лекции.
Итак, у нас есть пять условий, и нам вполне по силам проверить
каждое из них.
Что, если условий у нас 1000?
Пример
1. for line in range( 1000): # для каждого номера от 0 до 999
2.
print "My number is "+str(line) # напечатать значение номера.
Первым значением вывода будет "My number is 0 ".
Последним значением вывода будет "My number is 999 ".
Допустим, что мы должны протестировать каждое из 1000 кон-
кретных значений вывода. Ожидаемым результатом первого вит-
ка цикла будет 0, второго — 1, энного — {п - 1).
Если кому-то проверка 1000 ожидаемых результатов покажется
терпимой задачей, то мы можем привести пример со встроенным
циклом:
Пример (do not try it at home — не пытайтесь запустить этот код на
своем компьютере!)
1. for line in range( 1000): #для каждого номера от 0 до 999
2.
for item in range( 1000): # для каждого номера от 0 до 999.
3.
amount =line + item # сложить два значения.
4.
print "Сумма равна "-/-amount # напечатать значение суммы.
Цель тестирования Decoded
29
В итоге получается миллион (1000 х 1000) ожидаемых результатов.
Добавим масла в огонь: в большинстве случаев с реальным ПО
мы интегрируем одни части кода с другими и в итоге получаем
столько вариантов конкретных значений ожидаемых результатов,
что на 100%-ю проверку не хватит и пяти жизней. Шести жизней
хватить должно, но они будут самыми печальными из всех исто-
рий о бессмысленном существовании.
Постановка мозгов
В мире с ограниченными ресурсами (например, время на тестирова-
ние) 100%-е тестирование ПО — это фикция (я говорю о реальном
ПО, а не о программах из наших примеров) и единственное, что мы
можем сделать как тестировщики, — это профессионально, творчески
и добросовестно спланировать и провести наше тестирование. Про-
сочившиеся баги — это неизбежное зло, но свести его к мини-
муму — в наших руках.
ВТОРАЯ КОНЦЕПЦИЯ: критерий эффективности тестирования —