Тестирование программных средств Сафронов Сергей, 2009 год
Домашнее задание Домашнее задание Программа: Входные данные: Входные данные: ЧислоЧисло МесяцМесяц День неделиДень недели Выходные данные: Выходные данные: Список лет от 2000 до 2100, когда эта дата попадает на этот день неделиСписок лет от 2000 до 2100, когда эта дата попадает на этот день недели «?»: расписать классы эквивалентности
Правила выделения классов эквивалентности Если входное условие описывает диапазон, то выделяют один правильный класс эквивалентности и два неправильных Если входное условие описывает диапазон, то выделяют один правильный класс эквивалентности и два неправильных Если входное условие описывает множество значений, каждое из которых трактуется особо, то определяется правильный класс эквивалентности для каждого из значений и один неправильный класс значений Если входное условие описывает множество значений, каждое из которых трактуется особо, то определяется правильный класс эквивалентности для каждого из значений и один неправильный класс значений Если входное условие трактуется как «должно быть», то делается один правильный класс эквивалентности и один неправильный Если входное условие трактуется как «должно быть», то делается один правильный класс эквивалентности и один неправильный Если есть подозрение, что различные элементы класса эквивалентности могут трактоваться программой по разному, следует разбить класс на несколько подклассов Если есть подозрение, что различные элементы класса эквивалентности могут трактоваться программой по разному, следует разбить класс на несколько подклассов
Решение Входные условияПравильные классы эквивалентности Неправильные классы эквивалентности День недели[пн], [вт], [ср], [чт], [пт], [сб], [вс] [гг] Число_1[1;29] (-,0] [32,+) Число_2[30] Число_3[31] Месяц_1[1], [3], [5], [7], [8], [10], [12] (-,0] [13,+) Месяц_2[2] Месяц_3[4], [6], [9], [11],
Решение (2) Пары подклассов: Набор 1: Набор 1: Число_1 х (Месяц_1, Месяц_2, Месяц_3) Набор 2: Набор 2: Число_2 х (Месяц_1, Месяц_3) Набор 3: Набор 3: Число_3 х Месяц_1
Решение (3) Входные условияПравильные классы эквивалентности Неправильные классы эквивалентности День недели[пн] (1), [вт] (2), [ср] (3), [чт] (4), [пт] (5), [сб] (6), [вс] (7) [гг] (8) Набор 1(9) (10) (11) (12) (13) Набор 2(14) (15) Набор 3(16) (17)
Правила составления тестов Каждому классу эквивалентности назначается уникальный номер Каждому классу эквивалентности назначается уникальный номер Проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности до тех пор, пока не будут покрыты все правильные классы эквивалентности Проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности до тех пор, пока не будут покрыты все правильные классы эквивалентности Проектирование тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности пока все неправильные классы эквивалентности не будут покрыты тестами Проектирование тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности пока все неправильные классы эквивалентности не будут покрыты тестами
Список тестов Корректные тесты (1; 1; пн) (1; 1; пн) (30; 4; вт) (30; 4; вт) (31; 5; ср) (31; 5; ср) (2; 2; чт) (2; 2; чт) (3; 3; пт) (3; 3; пт) (4; 4; сб) (4; 4; сб) (5; 5; вс) (5; 5; вс) классов классов => (1), (9) => (2), (14) => (3), (16) => (4) => (5) => (6) => (7)
Список тестов (2) Некорректные тесты (1; 1; гг) (1; 1; гг) (0; 2; пн) (0; 2; пн) (49; 3; вт) (49; 3; вт) (4; -1; ср) (4; -1; ср) (5; 14; чт) (5; 14; чт) (30; 2; пт) (30; 2; пт) (31; 4; сб) (31; 4; сб) класса класса => (8) => (10) => (11) => (12) => (13) => (15) => (17)