Области эквивалентности
Входные данные программ часто можно разбить на несколько классов. Входные данные, принадлежащие одному классу, имеют общие свойства, например это положительные числа, отрицательные числа, строки без пробелов и т.п. Обычно для всех данных из какого-либо класса поведение программы одинаково (эквивалентно). Из-за этого такие классы данных иногда называют областями эквивалентности [34]. Один из систематических методов обнаружения дефектов состоит в определении всех областей эквивалентности, обрабатываемых программой. Контрольные тесты разрабатываются так, чтобы входные и выходные данные лежали в пределах этих областей. На рис. 20.4 каждая область эквивалентности изображена в виде эллипса. Области эквивалентности входных данных – это множества данных, все элементы которых обрабатываются одинаково. Области эквивалентности выходных данных – это данные на выходе программы, имеющие общие свойства, которые позволяют считать их отдельным классом. Корректные и некорректные входные данные также образуют две области эквивалентности.
Рис. 20.4. Области эквивалентности
После определения областей эквивалентности для каждой из них подбираются тестовые данные. При выборе тестовых данных можно руководствоваться следующим полезным правилом: для тестов выбираются данные, расположенные на границе области эквивалентности, и отдельно данные, лежащие внутри этой области. Основная причина такого выбора данных заключается в следующем. В процессе разработки системы разработчики и программисты используют для тестов типичные значения входных данных, находящиеся внутри области эквивалентности. Граничные значения часто нетипичны (например, нулевое значение обрабатывается не так, как неотрицательные числа) и потому игнорируются программистами. Хотя чаще всего ошибки в программе возникают именно при обработке подобных нетипичных значений.
Области эквивалентности определяются на основании программной спецификации или документации пользователя и опыта испытателя, выбирающего классы значений входных данных, пригодные для обнаружения дефектов. Пусть, например, в спецификации программы указано, что в программу могут вводиться от 4 до 10 целых пятизначных чисел. Области эквивалентности и возможные значения тестовых входных данных для этого примера показаны на рис. 20.5.
Рис. 20.5. Области эквивалентности
Покажем получение тестовых данных на примере спецификации упрощенной программы Seach (поиск), которая выполняет поиск заданного элемента key (ключ) в последовательности элементов. Программа возвращает номер позиции этого элемента в последовательности. Спецификация программы, представленная во врезке 20.1, содержит предусловие и постусловие. Предусловие указывает, что программа поиска не работает с пустыми последовательностями. Постусловие определяет, что если элемент, равный ключу, есть в последовательности, то переменная Found принимает значение true (истина). Индекс L обозначает позицию ключевого элемента в последовательности. Если элемент, равный ключу, в последовательности отсутствует, то этот индекс не определен.
Читайте также: Avon приглашает жительниц Калининградской области на бесплатное обследование у маммолога Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|