Тестирование программных средств Сафронов Сергей, 2009 год.

Презентация:



Advertisements
Похожие презентации
Тестирование программных средств Сафронов Сергей, 2009 год.
Advertisements

1. Задача Исходные данные: Программа производит чтение трех целых чисел, которые интерпретируются как длины сторон треугольника. Далее программа печатает.
Методы тестирования Впрактике тестирования используются методы: статический, детерминированный, стохастический ивреальном масштабе времени. Статическое.
55 Всего заданийВремя тестированиямин. Введите фамилию и имя Тест АЛГЕБРА 9 класс Начать тестирование МНОЖЕСТВА И ОПЕРАЦИИ НАД НИМИ.
Введение в тестирование. 1. Команда тестирования Тестер; Разработчик тестов; Разработчик автоматизированных тестов.
Тестирование программных продуктов «Разработка тестов (test case design)» СПб 2009, Oksana Naboka.
ОСНОВЫ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММ. Разработка программ - промышленное производство необходима технология разработки программ. Д. Кнут «Искусство программирования.
Тестирование ПО. Пример серии тестов Программа для складывания двух двузначных чисел Первый тест 2+3 Известно ли вам, что это за программа? Как с ней.
Методы тестирования 6 августа 2011 года. Пример для тестирования Программа читает три числа с экранной формы. Эти числа соответствуют длинам сторон треугольника.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Тестирование ОО программ Сергей Андреев, JetBrains 18 апреля 2012.
55 Всего заданийВремя тестированиямин. Введите фамилию и имя Тест АЛГЕБРА 9 класс Начать тестирование МНОЖЕСТВА И ОПЕРАЦИИ НАД НИМИ ВАРИАНТ 2.
Цель олимпиады по информатике способствовать поиску наиболее одаренных школьников. Важной особенностью задач, используемых при проведении школьного и муниципального.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 2. Знакомство с построением диаграмм вариантов.
Разбор заданий ЕГЭ Типичные задания С1. Содержание Задача С1 варианта 1 и другие типичные задачиС1 варианта 1 другие типичные задачи Задача С1 варианта.
1 Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением.
Жизненный цикл ПО. При разработки реального программного продукта возникают сложности. Часто решение задач не так очевидно, как кажется первоначально.
Построение автоматов управления системами со сложным поведением на основе тестов с помощью генетического программирования Федор Николаевич Царев, СПбГУ.
Этапы решения задач на компьютере.
Этапы решения задач на компьютерах Постановка задачи Формальное построение модели задачи Формальное построение модели задачи Построение математической.
Транксрипт:

Тестирование программных средств Сафронов Сергей, 2009 год

Оглавление Проектирование тестов Проектирование тестов Методики проектирования тестовМетодики проектирования тестов Эквивалентное разбиение Эквивалентное разбиение Правила выделения классовПравила выделения классов Правила составления тестовПравила составления тестов Анализ граничных значений Анализ граничных значений Правила составления тестовПравила составления тестов

Проектирование тестов Ресурсы всегда ограничены, поэтому самым важным является следующий вопрос: Какое подмножество всех возможных тестов имеет наибольшую вероятность обнаружения большинства ошибок? Понятно, что худший вариант – это стохастическое (как придется), но как надо?

Методики проектирования тестов Черный ящик: Эквивалентное разбиение Эквивалентное разбиение Анализ граничных значений Анализ граничных значений Метод функциональных диаграмм Метод функциональных диаграмм Стеклянный ящик: Покрытие строк Покрытие строк Покрытие условий Покрытие условий Покрытие условных операторов Покрытие условных операторов

Эквивалентное разбиение Технология проектирования тестов, ориентированная на снижение общего числа тестов Технология проектирования тестов, ориентированная на снижение общего числа тестов Основная мысль – разбить все данные для программы на классы Основная мысль – разбить все данные для программы на классы Если проектировать тесты для каждого класса, а не для каждого члена класса – то общее число тестов уменьшится Если проектировать тесты для каждого класса, а не для каждого члена класса – то общее число тестов уменьшится

Эквивалентное разбиение (2) Правильный тест Уменьшает более чем на единицу число других тестов, которые нужно разработать для достижения приемлемого уровня тестирования Уменьшает более чем на единицу число других тестов, которые нужно разработать для достижения приемлемого уровня тестирования Покрывать значительную часть других возможных тестов Покрывать значительную часть других возможных тестов

Эквивалентное разбиение Разработка тестов идет в два этапа: Выделение классов эквивалентности Выделение классов эквивалентности Построение тестов Построение тестов Входные условияПравильные классы эквивалентности Неправильные классы эквивалентности

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

Правила составления тестов Каждому классу эквивалентности назначается уникальный номер Каждому классу эквивалентности назначается уникальный номер Проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности до тех пор, пока не будут покрыты все правильные классы эквивалентности Проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности до тех пор, пока не будут покрыты все правильные классы эквивалентности Проектирование тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности пока все неправильные классы эквивалентности не будут покрыты тестами Проектирование тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности пока все неправильные классы эквивалентности не будут покрыты тестами

Практика Программа получается на вход 3 целых значения. Эти числа являются длинами сторон треугольника. Результатом работы программы является сообщение – каким является этот треугольник: прямоугольным, равносторонним, равнобедренным, неравносторонний. «?»: расписать классы эквивалентности

Решение Корректные классы (2,2,2) – равносторонний (2,2,2) – равносторонний (3,2,2) – равнобедренный (3,2,2) – равнобедренный (3,4,5) – прямоугольный (3,4,5) – прямоугольный (2,3,4) - неравносторонний (2,3,4) - неравносторонний Некорректные классы (2,2,-1) – отрицательная сторона (2,2,-1) – отрицательная сторона (3,2,1) – вырожденный (3,2,1) – вырожденный (2,2,0) – нулевая длина (2,2,0) – нулевая длина (5,3,1) – не треугольник (5,3,1) – не треугольник (2,3,А) – не число (2,3,А) – не число

Практика 2 Есть поле ввода времени: формат ввода «чч»:«мм»:«сс» «?»: Расписать классы эквивалентности

Решение Входные условияПравильные классы эквивалентности Неправильные классы эквивалентности Часы[0;23](-,0) [24,+) (NaN) Минуты[0;59](-,0) [60,+) (NaN) Секунды[0;59](-,0) [60,+) (NaN)

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

Правила составления тестов 1. Построить тесты для границ области и тесты с неправильными данными для случаев незначительного выхода за границы области, если входное значение описывает диапазон значений 2. Построить тесты для минимального и максимального значения условий и тесты, большие и меньшие этих значений, если входное условие удовлетворяет дискретному ряду значений 3. Использовать правило 1 для каждого выходного условия 4. Использовать правило 2 для каждого выходного условия 5. Если вход или выход программы есть упорядоченное множество, то сделать тесты на первый и последний элементы 6. Попробовать найти другие граничные значения

Практика Поле ввода: возраст сотрудника. Поле ввода: возраст сотрудника. Допустимые значения: от 14 до 80. Допустимые значения: от 14 до 80. «?»: список тестов?

Решение Входные условияПравильные классы эквивалентности Неправильные классы эквивалентности Возраст[14] [15] (16;78) [79] [80] (-,12] [0] [] [13] [81] [82,+) (NaN)

Домашнее задание Домашнее задание Программа: Входные данные: Входные данные: ЧислоЧисло МесяцМесяц День неделиДень недели Выходные данные: Выходные данные: Список лет от 2000 до 2100 года, когда эта дата попадает на этот день неделиСписок лет от 2000 до 2100 года, когда эта дата попадает на этот день недели «?»: расписать классы эквивалентности