1. Основные понятия Класс эквивалентности — это подмножество входной области программы. Разделение классов эквивалентности (Equivalence Partitioning)тестмысли:Разделите входную область программы на несколько областей.(Класс эквивалентности),и в каждом Класс эквивалентности Выберите репрезентативный элемент для созданиятествариант использования。Этот метод представляет собой широко используемый метод «черного ящика».(Blackbox Testing)тествариант использования(Testcase)дизайнметод。 1) Разделить классы эквивалентности 1. Действительные классы эквивалентности и недействительные классы эквивалентности. Разделение классов эквивалентности может иметь две различные ситуации: действительное классы эквивалентностии Неверный класс эквивалентности。действительные классы эквивалентностиозначает, что это разумно для спецификации программы、Коллекция значимых входных данных,он можетПроверьте, может ли программа достичь функциональных требований, указанных в спецификации.。Неверный класс эквивалентностиНабор входных данных, для которого спецификация программы необоснованна или бессмысленна.,он можетПроверьте, не возникнет ли отклонений при вводе данных, не соответствующих правилам.;Неверный класс эквивалентности Должен быть хотя бы один,Может быть несколько,Это зависит от конкретной ситуации。Следовательно, при разработке тестовых примеров следует учитывать оба класса эквивалентности одновременно.Потому что программное обеспечение должно не только получать разумные данные,Оно также должно быть способным выдерживать неожиданные тесты, чтобы обеспечить более высокую надежность программного обеспечения. 2. Критерии разделения классов эквивалентности Завершите тестирование и избегайте дублирования., чтобы набор (входная область программы) был разделен на набор непересекающихся подмножеств, а объединение этих подмножеств составляло бы полное множество (вся входная область программы). 3. Принцип разделения классов эквивалентности (1) Если входное условие указывает диапазон значений или количество значений, его можно разделить на один действительный класс эквивалентности и два недопустимых класса эквивалентности; Например, установите индикаторы контроля риска, где диапазон установки веса составляет [-1000,1000].
(2) Если входное условие является логическим выражением, его можно разделить на действительный класс эквивалентности и недопустимый класс эквивалентности, состоящий из одного истинного и одного ложного; Например, установите информацию о продукте, если требуется доля продукта.
(3) Если указаны принципы, которым должны соответствовать входные данные, их можно разделить на действительный класс эквивалентности (соответствующий правилам) и несколько недействительных классов эквивалентности; Например, начальный капитал системы можно вводить только в цифрах.
(4) Если входные данные должны соответствовать только определенным принципам, может быть несколько действительных классов и несколько недействительных эквивалентных классов; Например, в качестве пароля для входа в торговый аккаунт можно вводить только цифры, буквы и некоторые специальные символы. Нельзя вводить одинарные/двойные кавычки, а также китайские символы.
Примечание. Объединение недопустимых классов эквивалентности, соответствующее каждому допустимому классу эквивалентности, представляет собой набор данных, который не соответствует принципу ввода. (5) Если задан набор значений входных данных (при условии, что n) и программа обрабатывает разные входные значения по-разному, его можно разделить на n допустимых классов эквивалентности (каждое разрешенное входное значение является допустимым классом эквивалентности). class) и недопустимый класс эквивалентности (набор всех запрещенных входных значений). Например, при настройке счета операций с капиталом вы должны выбрать, проверять ли самостоятельные транзакции.
Например, входные условия предусматривают, что академическая квалификация может быть одного из четырех типов: степень бакалавра, магистра или доктора.
(6)зная наверняка, что оно разделено Класс эквивалентности Каждый элемент программыОбрабатывается по-другомуслучай,тогда Класс эквивалентностидальшеразделениедляменьше Класс эквивалентности。 2) Этапы разработки тестового примера (1) После разделения классов эквивалентности составьте таблицу классов эквивалентности и укажите уникальный номер для каждого класса эквивалентности; (2) Разработайте тестовый пример, чтобы охватить как можно больше допустимых классов эквивалентности, которые еще не были охвачены, и повторяйте этот шаг до тех пор, пока не будут охвачены все допустимые классы эквивалентности; (3) Разработайте новый тестовый пример так, чтобы он охватывал только один недействительный класс эквивалентности, который еще не был охвачен, и повторяйте этот шаг до тех пор, пока не будут охвачены все недопустимые классы эквивалентности. (Поскольку покрытие недопустимых классов эквивалентности одним тестовым примером связано с тем, что некоторые конкретные ошибки ввода маскируют или заменяют другие проверки ошибок ввода)
2. Упражнения 1) Эквивалентные тестовые примеры для задач о треугольнике [Описание проблемы] Требования к программе: Введите три целых числа. a 、 b 、 c В зависимости от длин трех сторон треугольника тип образуемого треугольника определяется программой; если треугольник представляет собой общий треугольник, равнобедренный треугольник или равносторонний треугольник, то …иметь дело с 。 <Анализ проблемы> (1) Явные/неявные требования к диапазону входных данных: A Целое число, Б Три, С Положительное число, Д Сумма обеих сторон больше третьей стороны, E Все три стороны не равны, F Две стороны равны, но не равны третьей стороне, G Три стороны равны (D~G неявно определяются классом эквивалентности выходного диапазона) (2) Классы эквивалентности диапазона выходных значений: R1={не образует треугольника}, R2={общий треугольник}, R3={равнобедренный треугольник}, R4={равносторонний треугольник}; <Часто задаваемые вопросы> (1) Список и классы нумерации эквивалентности
(2) Разработайте тестовые примеры, охватывающие допустимые классы эквивалентности.
(3) Разработайте тестовые примеры, охватывающие недопустимые классы эквивалентности.
2) Эквивалентные тестовые примеры для функции NextDate [Описание проблемы]Следующая дата Функция содержит три переменные: месяц 、 day и year , выходные данные функции — это дата на следующий день после входной даты. Например, вход март 2006 г. 7 дней, то результат функции будет март 2006 г.8-й . Запросить входные переменные month 、 day и year все являются целочисленными значениями и удовлетворяют следующим условиям: ①1≤month≤12 ②1≤day≤31 ③1912≤year≤2050 <Анализ проблемы>Основная особенность этой функции заключается в том, что логическая связь между входными переменными относительно сложна.,В частности, это отражено в: сложности правил ввода високосного года; нравиться,Когда переменная год и переменная рот принимают разные значения,Соответствующий переменный день будет иметь разные диапазоны значений.,Или 1~30, или 1~31, или 1~28, или 1~29. <Часто задаваемые вопросы> (1) Первый метод деления (1.1) Разобьем классы эквивалентности A. действительные классы эквивалентности M1={mouth:1≤mouth≤12}; D1={day:1≤day≤31};Y1={year:1912≤year≤2050} B. Неверный класс эквивалентности M2={mouth:mouth<1}、M2={mouth:mouth>12}; D2={day:day<1}、D3={day:day>31}; Y2={year:year<1912}、Y2={year:year>2050}; (1.2) Проверка класса общей эквивалентности потому чтоКоличество допустимых классов равно количеству независимых переменных.,Поэтому только слабый Проверка класса общей появляется вариант использования эквивалентности, и с сильной проверкой класса общей эквивалентностивариант использованиятакой же。
[Примечание] «Слабый» относится к предположению об одном дефекте (отказ редко вызван двумя или более дефектами одновременно), а «сильный» относится к гипотезе о множественных дефектах (отказ вызван двумя или более дефектами). ), вызванные дефектами одновременно); «вообще» означает, что недопустимые значения не учитываются. Слабая проверка класса общей вариант использования эквивалентности путем использования одного тестового варианта использования для каждого факта классы Репрезентативные значения эквивалентности (интервалов) часто используются для симметричной идентификации этих вариантов использования тестов и обращают внимание на роль односторонних предположений; класса общей Вариант использования эквивалентности, действительный для каждой независимой переменной классы эквивалентность реализуется декартовым произведением. (1.3) Надежное тестирование класса эквивалентности (1.3.1) слабый Надежное тестирование класса эквивалентности слабый Надежное тестирование класса Недопустимый вариант использования теста в эквивалентности содержит только одно недопустимое значение, а остальные являются допустимыми значениями, то есть он содержит одно предположение о дефекте. [Примечание: «слабый» относится к предположению об одном дефекте, «сильный» относится к предположению о множественных дефектах; «надежный» относится к рассмотрению недопустимых значений]
(1.3.2) мощный Надежное тестирование класса эквивалентности мощный Надежное тестирование класса эквивалентность учитывает больше случаев недопустимых значений. Сильное Надежное тестирование класса Неверный вариант использования теста эквивалентности может содержать несколько недопустимых значений, то есть содержать несколько ошибочных предположений. Функция NextDate имеет три переменные, поэтому она соответственно сильна. тестирование класса Вариант использования может содержать одно недопустимое значение, два недопустимых значения или три недопустимых значения. [Примечание: «Сильная» относится к гипотезе, содержащей множественные дефекты; «сильная» относится к гипотезе, содержащей множественные дефекты; «надежная» относится к рассмотрению недопустимых значений]
(2) Второй метод разделения Очевидно, что при тестировании функции NextDate с использованием метода деления 1 не учитывались ни количество дней в феврале, ни проблема високосного года. Поэтому необходимо вносить дальнейшие улучшения. (2.1) Разобьем классы эквивалентности Ключевым моментом отношения эквивалентности является то, что элементы класса эквивалентности должны «обрабатываться одинаково», то есть либо на допустимом, либо на недопустимом уровне. Поэтому более подробно действительное классы эквивалентностидля: √Переменный рот: M1={рот: у рта 30 дней}, M2={рот: Во рту 31 день, исключая декабрь}, M3={mouth: рот — февраль}, M4={рот: рот — декабрь}; √Переменный день: D1={day: 1≤day≤28}、D2={day: day=29}、D3={day: day=30}、D4={day: day=31}; √Переменная дата: Y1={год: год високосный},Y2={год: год — обычный год}; (2.2) Проверка класса общей эквивалентности A. слабый Проверка класса общей эквивалентности Принимая во внимание одностороннее предположение, допустимые входы для соответствующего класса выбираются механически симметричным образом:
B. мощный Проверка класса общей эквивалентности От тестирования классов слабой эквивалентности до тестирования классов сильной эквивалентности, будь то общий класс или надежный класс, необходимо делать предположения о независимости, и они должны быть представлены декартовым произведением классов эквивалентности. В этой задаче число классов эквивалентности для переменной рта равно 4, количество классов эквивалентности для переменной дня равно 4, а количество классов эквивалентности для переменной года равно 2, поэтому проверка является сильной. класса общей Количество вариантов использования — 4*4*2=32.
(2.3) Надежное тестирование класса эквивалентности A. слабый Надежное тестирование класса эквивалентности
B. мощный Надежное тестирование класса эквивалентности
**3) Эквивалентный вариант использования теста для проблемы комиссии**
Будет обновлено...
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/180618.html Исходная ссылка: https://javaforall.cn