Тестирование программных продуктов «Разработка тестов (test case design)» СПб 2009, Oksana Naboka.

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



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

Тестирование программных средств Сафронов Сергей, 2009 год.
Тестирование программного обеспечения 2009, v.2.8 Тест-дизайн.
Методы тестирования 6 августа 2011 года. Пример для тестирования Программа читает три числа с экранной формы. Эти числа соответствуют длинам сторон треугольника.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
ОСНОВЫ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММ. Разработка программ - промышленное производство необходима технология разработки программ. Д. Кнут «Искусство программирования.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
1. Задача Исходные данные: Программа производит чтение трех целых чисел, которые интерпретируются как длины сторон треугольника. Далее программа печатает.
Методика решения и оценивания задач «С1», «С2» Единого Государственного Экзамена.
ЕГЭ 2012 Информатика и ИКТ Консультация 3. Пример.
Тестирование программных средств Сафронов Сергей, 2009 год.
Тестирование ОО программ Сергей Андреев, JetBrains 26 апреля 2012.
Этапы решения задач на компьютерах Постановка задачи Формальное построение модели задачи Формальное построение модели задачи Построение математической.
Тестирование ОО программ Сергей Андреев, JetBrains 18 апреля 2012.
Проект системы Руководитель: Зюзьков В.М. Участники: Швецова Е.А. Никонова М.А. Собор Е.В.
10 класс Урок 55.. Выражения и операции Любое выражение имеет определенный тип и после вычисления возвращает некоторое значение. Простейшими.
1 Тестирование программных продуктов Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Классы эквивалентности: правда и мифы Алексей Баранцев Software-Testing.Ru.
Транксрипт:

Тестирование программных продуктов «Разработка тестов (test case design)» СПб 2009, Oksana Naboka

Разработка тестов Как можно «обнаружить» тест? Техники тестирования

Разработка тестов Тщательное изучение и анализ требований (описания функции, модуля, спецификации, и т.д.). Декомпозиция требований\функций. Выявление всех условий, входных и выходных данных (что) Анализ поведения (как) Использование различных техник для выделения определенных тестов Использование накопленных знаний о выполненных проектах (оттестированных продуктах) Интуиция Анализ\просмотр выявленных тестов и добавление новых Техники тестирования

Разработка тестов: классы эквивалентности Разбиение на классы эквивалентности (Equivalence Class Testing\ Equivalence Portioning) Анализируем входные и выходные данные правильные классы эквивалентности (корректные входные данные) неправильные классы эквивалентности (ошибочные входные данные) Техники тестирования

Классы эквивалентности Классы эквивалентности: множество значений: -> правильный класс для каждого корректного значения Техники тестирования

Классы эквивалентности Классы эквивалентности: некорректные значения -> тестировать одно некорректное значение за раз для того, чтобы проверить, что система идентифицирует его корректно. Техники тестирования

Разработка тестов: граничные значения Анализ граничных значений ( Boundary Value Testing) идентифицировать граничные значения для каждого входного значения (класса эквивалентности) на границе значение, меньшее граничного («у границы»\below point) значение, большее граничного («за границей» \above point) Примеры: Область корректных значений: [-1.0, 1.0] -> тесты для -1.0, 1.0, , Максимальная длина слова – 5 символов - > тесты для 4,5,6 Область выходных значений: минимум расхода 0.00, максимум > подбираем входные данные для того, чтобы получить на выходе 0.00, , , Техники тестирования

Граничные значения Граничные значения: «точка»: Z -> Z-1, Z, Z+1 Граничные значения: область корректных значений [x, y] -> x-1, x, y, y+1 Техники тестирования

Разработка тестов: таблицы решений Таблицы решений ( Decision Table Testing) 1. Определить список возможных условий Техники тестирования Условие 1 Условие 2

Разработка тестов: таблицы решений Таблицы решений ( Decision Table Testing) 2. Определить список всех возможных действий (ожидаемых результатов для условий). Техники тестирования Условие 1 Условие 2 Действие 1 Действие 2

Разработка тестов: таблицы решений Таблицы решений ( Decision Table Testing) 3. Определить все значения для условий («да»\«нет» или более 2х значений) и их уникальные комбинации, которые приводят к выполнению ожидаемых результатов связанных с этим правилом Техники тестирования Условие 1да нет Условие 2нетда нет Действие 1XX Действие 2XX

Разработка тестов: таблицы решений Таблицы решений ( Decision Table Testing) 4. Создать тест кейс для каждого правила (столбца) – как минимум один, если условия бинарные и если условие – интервал значений, рассмотреть тесты как для нижней так и для верхней границы интервала Техники тестирования

Разработка тестов: функциональные диаграммы Метод функциональных диаграмм (Cause-Effect Graphing) предлагает способ перевода спецификаций, написанных на естественном языке, на язык формальный способствует проектированию высокорезультативных тестов, не страдающих избыточностью, и обнаруживающих случаи неполноты и неоднозначности во входных спецификациях Техники тестирования

Разработка тестов: функциональные диаграммы 1. Разбить внешние спецификации на отдельные функции, которые будут тестироваться (декомпозиция фугкциональных требований) 2. Идентифицировать явные и неявные причины (условия на входе) и присвоить каждой из них уникальный номер 3. Идентифицировать явные и неявные эффекты (действия на выходе) и присвоить каждому из них уникальный номер 4. Перевести семантику спецификации в граф «причина-следствие» (Boolean cause-effect graphing) 5. Добавить информацию о невозможных комбинация причин\эффектов 6. Построить таблицу решений (бинарные значения) 7. Записать тест кейс для каждого столбца Техники тестирования

Разработка тестов: функциональные диаграммы Пример 1 -> Requirements for Calculating Car Insurance Premiums: For females less than 65 years of age, the premium is $500 For males less than 25 years of age, the premium is $3000 For males between 25 and 64 years of age, the premium is $1000 For anyone 65 years of age or more, the premium is $1500 Техники тестирования

Разработка тестов: функциональные диаграммы 2 Причины (Causes (input conditions)): 1. Пол: мужской 2. Пол: женский 3. Возраст: =25 and < Возраст: >= 65 Техники тестирования

Разработка тестов: функциональные диаграммы 3 Следствия (Effects (output conditions)): 100. Премия = $ Премия = $ Премия = $ Премия = $500 Техники тестирования

Разработка тестов: функциональные диаграммы Техники тестирования 4 Причина: 1. Пол: мужской and 4. Возраст: >=25 and < 65 Следствие: 100: Премия = $1000 CEG # 1

Разработка тестов: функциональные диаграммы Техники тестирования 4 Причина: 1. Пол: мужской and 3. Возраст: < 25 Следствие: 101: Премия = $1000 CEG # 2

Разработка тестов: функциональные диаграммы Техники тестирования 4 Причина: 1. Пол: мужской and 5. Возраст: >= 65 or 2. Пол: женский and 5. Возраст: >= 65 Следствие: 102: Премия = $1500 CEG # 3

Разработка тестов: функциональные диаграммы Техники тестирования 4 Причина: 2. Пол: женский and 3. Возраст: =25 and < 65 Следствие: 103: Премия = $500 CEG # 4

Разработка тестов: функциональные диаграммы Техники тестирования 5 CEG # 3 Причина: 1. Пол: мужской and 5. Возраст: >= 65 or 2. Пол: женский and 5. Возраст: >= 65 Следствие: 102: Премия = $1500

Разработка тестов: функциональные диаграммы 6 Техники тестирования Test Cases (мужской) (женский) (< 25) (>= 25 and < 65) (>= 65) (1000$) (3000$) (1500$) (500$)000011

Разработка тестов: предположение об ошибке Предположение об ошибке (Error Guessing) Этот метод в значительной степени является интуитивным. Тест инженер использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы "предугадать" при каких входных условиях система может выдать ошибку. Перечислить в некотором списке возможные ошибки или ситуации, в которых они могут появиться, а затем на основе этого списка написать тесты. Техники тестирования

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

Разработка тестов Requirements-Driven Testing Проверяем каждое требование\запрос, которое описано или озвучено анализ требований: выявление неоднозначностей, неточностей, пропущенной информации и т.п. (можно использовать функциональные диаграмма) Отслеживаем все требования и их покрытие тестами список требований с идентификаторами и соответствующих тестов (Requirements Tracing Matrix) Для каждого требования должны быть разработаны тесты

Разработка тестов Risk-Based Testing Scenario Testing …