Чтение онлайн

на главную

Жанры

tестирование dot com
Шрифт:

4. elif user_input == "owl": # ЕСЛИ пользователь ввел "сова",

5. print "You probably like grey color" # вывести на

экран "Вероятно, вам нравится серый цвет".

6. elif user_input == "bear ": # ЕСЛИ пользователь ввел "медведь", 7. print "You probably like brown color" # вывести на

экран "Вероятно, вам нравится коричневый цвет".

8. elif user_input == "": # ЕСЛИ

пользователь не ввел никаких

данных,

9. print "Probably, you don't know what is your totem

animal" # вывести на экран "Вероятно, вы не знаете свое

тотемное животное".

Это маленькая, симпатичная и на первый взгляд никчемная про-

грамма послужит нам для того, чтобы мы увидели 4 условия

(conditions), одно из которых заработает, если мы ее запустим.

Если условие верно, например, пользователь ввел "frog", то, как

за преступлением — наказание (в идеальном случае), наступает

последствие — выполнение условия (конечно, если код

работает) — вывод на экран текста "You probably like green

color". Ежу понятно, что для тестирования нам нужно проверить

все 4 условия.

1. Ввести "frog".

2. Ввести "owl".

3. Ввести "bear".

4. Ничего не вводить, а просто равнодушно нажать Enter.

28

Тестирование Дот Ком.Часть 1

Однако если ввести "hedgehog" ("еж"), то Python по-английски

(т.е. без всякого сообщения) закончит выполнение программы.

Итак, добавим к нашим четырем условиям игольчатое пятое:

5. Любой ввод, отличный от ввода 1—4 включительно.

Постановка мозгов

Везде, где есть ввод (input) данных, у нас есть два пути:

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%-ю проверку не хватит и пяти жизней. Шести жизней

Поделиться:
Популярные книги

Приручитель женщин-монстров. Том 3

Дорничев Дмитрий
3. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 3

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

Заплатить за все

Зайцева Мария
Не смей меня хотеть
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Заплатить за все

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Гром над Империей. Часть 1

Машуков Тимур
5. Гром над миром
Фантастика:
фэнтези
5.20
рейтинг книги
Гром над Империей. Часть 1

Идеальный мир для Социопата 7

Сапфир Олег
7. Социопат
Фантастика:
боевая фантастика
6.22
рейтинг книги
Идеальный мир для Социопата 7

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Защитник

Астахов Евгений Евгеньевич
7. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Защитник

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2

Генерал Империи

Ланцов Михаил Алексеевич
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Генерал Империи

Машенька и опер Медведев

Рам Янка
1. Накосячившие опера
Любовные романы:
современные любовные романы
6.40
рейтинг книги
Машенька и опер Медведев