пятница, 18 ноября 2011 г.

Lesson 50 (часть 1)

День сегодня какой-то неспокойный.

Процитирую Славу П.:

- Кто ее блин создает эту обстановку нервную, которая в проекте? Леша? По Леше можно приборы калибровать!

И еще сэра Терри:
- Нельзя сказать, что Витинари был расистом. Он одинаково ненавидел все расы.
(вроде так)



Слово Канеру:

Техники тестирования основанные на том, что тестируется.



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

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

Функциональное тестирование Тестировать функции, одну за другой. Тестируйте функции тщательно, до такой степени, пока вы не сможете с уверенностью сказать, что функция работает. Функциональное тестирование методом белого ящика обычно называется юнит-тестированием и концентрируется на функциях в том виде, в каком мы их видим в коде. Функциональное тестирование черного ящика концентрируется на командах и фичах, которые видит или может использовать пользователь. Желательно проводить функциональное тестирование до того, как будут проводиться более сложные тесты, вовлекающие несколько функций. В сложных тестах первая сломавшаяся функция может остановить весь тест и не позволить вам искать ошибки дальше. Если вы полагаетесь на комплексные испытания, не используя тестирование отдельных функций, вы можете до самого конца не узнать, что одна из функций сломана и тратить огромное количество времени на поиск неисправности в сложном тесте для поиска неисправности в одной маленькой функции.

Интеграционное функциональное тестирование Тестирование совместной работы нескольких функций.

Хождение по меню Проход по всем пунктам меню в графическом интерфейсе пользователя, выбирая каждый пункт меню.

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

Анализ классов эквивалентности Класс эквивалентности это набор значений переменной, которые вы рассматриваете как эквивалентные. Сценарии эквивалентны, если вы верите, что а) они тестируют одно и то же б) если один из них нашел баг, который, скорее всего, найдут и другие в) один из них не нашел баг, которые не найдут и другие. Как только вы нашли класс эквивалентности - протестируйте один или два его члена.

Тестирование граничных значений Класс эквивалентности это набор переменных. Если вы можете отразить их на числовой оси, то граничными значениями будут наибольшие и наименьшие значения класса. В тестировании граничных значений вы тестируете их, а также те граничные значения близлежащих классов, которые лишь ненамного меньше, чем наименьшее значение вашего класса и ненамного больше, чем наибольшее значение вашего класса. Рассмотрим поле ввода, принимающее целые значения от 10 до 50. Значения, представляющие интерес, это: 10(меньшее значение), 9(наибольшее неподходящее значение), 50(наибольшее), 51(наименьшее неподходящее).


Часть вторая

Комментариев нет:

Отправить комментарий