Самое подробное объяснение методов разработки тестовых примеров в истории.
Самое подробное объяснение методов разработки тестовых примеров в истории.

Предисловие

Привет всем, я Йоко. Сегодня я хотел бы поделиться с вами самым легко упускаемым из виду, но самым важным моментом знаний при тестировании программного обеспечения, а именно проектированием тестовых сценариев. Проектирование вариантов использования — это душа инженера по тестированию программного обеспечения, отражающее ваше мышление в области тестирования и знание бизнес-требований. Иногда в сети происходят несчастные случаи, возможно, тестовые примеры не охватывают все аспекты.

Обзор тестового примера

Учитывая, что некоторые студенты меняют карьеру, чтобы заниматься тестированием программного обеспечения, позвольте мне сначала поговорить о том, что такое тестовый пример.

Тестовый пример — это набор тестовых входных данных, условий выполнения и ожидаемых результатов, составленный для определенной цели, чтобы протестировать путь программы или проверить, выполняется ли определенное требование.

Вы немного смущены, когда видите определение тестового примера? С точки зрения непрофессионала, тестовый пример — это эталонный объект. В процессе тестирования тесты выполняются один за другим в соответствии с тестовым примером. Тест-кейсы в основном состоят из 4 частей:

  • Название варианта использования
  • Предварительные условия
  • Этапы операции (вход)
  • ожидаемые результаты(выход)

Для части 3 тестового примера,Этапы работы можно понимать каквходить,Например, вводим цифры или буквы на клавиатуре мобильного телефона.,кроме,Обычные входные данные включают нажатие кнопок, длительное нажатие, скольжение по экрану и т. д.,Обратите внимание здесьвходитьнужно быть удовлетвореннымПредварительные условия

в завершениивходить В будущем будет ожидаемый результат,можно понимать каквыход,Общий выход включает (1) всплывающее окно. (2) Перейти на новую страницу (3)tosat намекать (4) Отображение текста, изображений и т. д.

Итак, как написать тестовый пример? Вы можете взглянуть на следующий пример. Теперь мне нужно протестировать функцию входа на определенный веб-сайт. Тестовый пример, который я разработал, выглядит следующим образом:

Этот вариант использования предназначен для проверки успешного входа в систему в функции входа в систему, поэтому Название варианта использованиядля01_Функция входа_Успешный вход,К заголовку добавляется числодля Для облегчения управления。Рабочие этапы соответствуют Предварительные условия, то есть когда пользователь зарегистрировался и не авторизовался, вводит логин и пароль из указанного количества цифр, ожидаемые результаты - всплывающее окно намекать, перейти на главную страницу

Общие методы проектирования вариантов использования

Вы можете подумать об основной части тестового примера. Это, несомненно, этапы работы. Когда мы обычно проводим тесты, мы просто следуем шагам работы в тестовом примере. Как мы можем сделать его более эффективным и более полным?

Итак, нам нужно научиться разрабатывать тестовые примеры. В этой статье в основном представлены два типа тестов «черного ящика». Методы проектирования вариантов использования соответственно Класс эквивалентностииграничное значение, это два наиболее часто используемых в реальной работе

Класс эквивалентности

Класс эквивалентности,Класс Эквивалентность буквально означает один и тот же тип. Давайте посмотрим на класс. эквивалентностиопределение:

  • Класс эквивалентностизаключается в том, чтобы поместить пользователяиметьвозможныйвходитьданные,То есть входная область программы делится на несколько частей (подмножеств),Затем выберите небольшое количество репрезентативных данных из каждого подмножества в качестве тестовых примеров.
  • использовать Класс эквивалентности При разработке тестовых примеров мы также должны учитывать эффективный класс эквивалентностии Неверный класс эквивалентности
  • иметьэффект Класс эквивалентности:Технические характеристики программы(Документ с требованиями)Давайте поговорим,разумно、иметьзначениеизвходитьсбор данных;
  • Неверный класс эквивалентности:Технические характеристики программы Давайте поговорим,неразумно、безиметьзначениеизвходитьсбор данных

Приведите пример, чтобы облегчить пониманиеиметьэффект Класс эквивалентностииНеверный класс эквивалентности,теперь я хочуПроверяет сложение двух целых чисел от 1 до 100 (включительно).,пожалуйста, используйте Класс эквивалентности Проектирование тестовых примеров

Сначала разделите действительный класс по теме. эквивалентностии Неверный класс эквивалентности

иметьэффект Класс эквивалентности:

  • 【1】Все входные данные являются целыми числами от 1 до 100.

Неверный класс эквивалентности:

  • 【2】Введите целое число меньше 1.
  • 【3】Введите целое число больше 100.
  • 【4】Введите пусто
  • 【5】Ввод букв и специальных символов.
  • 【6】Введите пробел

Подтвердите действительный класс эквивалентностии Неверный класс После эквивалентности мы можем разработать тестовые примеры.

Номер варианта использования

Два входных данных

ожидаемые результаты

покрытый Класс эквивалентности

1

99,18

Отображение результата сложения целых чисел в обычном режиме

иметьэффект Класс эквивалентности【1】

2

-2, -3

Не удалось добавить

Неверный класс эквивалентности【2】

3

300,400

Не удалось добавить

Неверный класс эквивалентности【3】

4

небо, небо

Не удалось добавить

Неверный класс эквивалентности【4】

5

abc,123

Не удалось добавить

Неверный класс эквивалентности【5】

6

космос, 123

Не удалось добавить

Неверный класс эквивалентности【6】

граничное значение

Другой метод проектирования вариантов использования называется граничное значение. Определение граничного значения следующее:

граничное Метод анализа значений – это ограничение ввода или вывода. значение своего рода тест черного ящикаметод。в целомграничное метод анализа значений используется в качестве метода анализа для класса метод разделения эквивалентности, в данном случае его тестовые примеры взяты из Класса эквивалентностиизграница

Приведите пример, помогающий понять граничное. Значение, входной файл должен включать от 1 до 255 записей, Затем можно проанализировать 6 граничных точек, которые немного меньше минимального значения 0, минимального значения 1, немного больше минимального значения 2, немного меньше максимального значения 254, максимального значения 255 и немного больше максимального значения. 256. Эти 6 точек можно использовать в качестве входных данных для тестовых случаев.

Класс эквивалентности и граничное значение часто используются в сочетании,граничное анализ значений с использованием Class эквивалентности Тот же метод деления, только граничное Анализ значений предполагает, что ошибки существуют больше на границах делений и, следовательно, в Классе. Разработать тестовые примеры для ситуаций на границе эквивалентности и по обе стороны от нее;

  1. программное обеспечениеизвходитьиливыход Параметры Класс эквивалентностиразделять;
  2. существовать Класс эквивалентность, основанная на граничном смысловой анализ. В общем, если граничное значениеуже Класс эквивалентность разделенного покрытия, ее не нужно учитывать;
  3. Объединить граничное значение,делатьдлятестовый примеризвходитьданные;

Давайте рассмотрим приведенное выше введение. эквивалентностичасизпример,Проверяет сложение двух целых чисел от 1 до 100 (включительно)., сейчас займемся классом эквивалентностииграничное значение Комбинированный метод разработки вариантов использования, вариант использования 1 Его можно изменить на ввод целых чисел 1, 2, 99, 100, а вариант использования 2 можно изменить на Введите целое число 0, и вариант использования 3 изменится на вход 101. После такого преобразования наш вариант использования имеет оба варианта: эквивалентности разделенного покрытия действительный и недействительный Класс эквивалентности,Также в исполнении граничное смысловой анализ, охватывающий граничное тест на значение

Осторожные друзья спросят,Почему мы используем ограниченное значение при разработке тестовых примеров? Это основано на большом количестве практического опыта тестирования.,МногоизBugчасто случаетсясуществоватьвходитьдомениливыходдиапазонизграницаначальство,а не внутри. поэтому,Мы разрабатываем тест-кейсы для крайних случаев,Обычно можно найти больше проблем

Давайте посмотрим, почему нам следует использовать Класс эквивалентность для разработки тестовых случаев,для программы,Часто можно ввести много данных.,Возьмите поле пароля, в которое можно ввести 11 цифр.,насПолное тестирование невозможно,Часть репрезентативных данных может быть выбрана из большого количества возможных данных в качестве тестовых примеров.,Это значительно повышает эффективность тестирования, обеспечивая при этом качество теста.,Потому что после разделения Классэквивалентности,Репрезентативные данные для каждой категории используются в тесте эквивалентно другим значениям в этой категории.

Дополнительные методы проектирования сценариев использования

  • Функциональная диаграмма
  • Сценарный метод
  • диаграмма причин и следствий
  • Неправильное предположение
  • Таблица решений
  • Ортогональный тест
  • государственная миграция

Кроме Класса эквивалентностииграничное значение,Существует множество способов разработки тест-кейсов.,существоватьначальство Уже в списке。Я поговорю об этом здесь сноваНеправильное предположение Закон,этотметоддаНа основе опытаи Интуитивная программа угадыванияиметьвозможный存существоватьизразличные ошибки,Тем самым целенаправленно разрабатывая тестовые примеры. внутри предприятия,После знакомства с бизнесом,Это можно дополнить индивидуальными тестовыми примерами, разработанными с учетом особенностей бизнеса.

Рекомендации по проектированию вариантов использования

Ранее мы представили Класс эквивалентностииграничное Значение метода проектирования вариантов использования, варианты использования, созданные этими двумя методами проектирования вариантов использования «черного ящика», относятся к Функциональному. тестированиеуровень,Помимо функциональных аспектов,Когда мы разрабатываем тест-кейсы,Следует также учитывать Безопасность、производительность、Эти три уровня совместимости

Функциональные тестовые примеры

Давайте рассмотрим функцию входа в систему в качестве примера. Как наши тестировщики должны разрабатывать варианты использования? Сначала рассмотрим функциональный уровень. Мы можем легко представить следующие варианты использования:

  • Введите зарегистрированное имя пользователя и правильный пароль, чтобы проверить успешность входа в систему.
  • Введите зарегистрированное имя пользователя и неправильный пароль, чтобы проверить, не удалось ли войти в систему.
  • Введите незарегистрированное имя пользователя и любой пароль, чтобы проверить, не удалось ли войти в систему.
  • И имя пользователя, и пароль пусты, что позволяет проверить, не удалось ли войти в систему.
  • Если одно из имени пользователя и пароля пусто, проверка входа в систему невозможна.
  • Если функция входа активирована Проверочный Функция кода кода, при условии, что имя пользователя и пароль верны, введите правильный Проверочный код, вы успешно вошли в систему?
  • Если функция входа активирована Проверочный Функция кода кода: при условии, что имя пользователя и пароль верны, введите неправильный Проверочный код, проверьте, не удалось ли войти в систему

После перечисления этих тестовых примеров чувствуете ли вы, что приведенные выше тестовые сценарии охватывают основные сценарии функционального тестирования, но, по мнению старших инженеров по тестированию, этих вариантов использования недостаточно. Взгляните на следующие тестовые сценарии и проверьте, подходите ли вы? рассмотрел их

  • Являются ли имена пользователей и пароли чувствительными к регистру?
  • Отображается ли поле пароля на странице в зашифрованном виде
  • Когда пользователь, созданный фоновой системой, успешно входит в систему в первый раз, нужно ли менять пароль?
  • Доступна ли функция «Забыли имя пользователя» и «Забыли пароль»?
  • Ограничивает ли интерфейсная страница длину имени пользователя и пароля в соответствии с требованиями дизайна (если существует ограничение на количество цифр в длине, вы можете разрабатывать тестовые примеры на основе граничного значения)
  • Если функция входа требует Проверочный код,Нажмите Проверочный Можно ли картинку кода заменить на Проверочный? код, заменен Проверочный Код доступен?
  • Обновится страница. Проверочный код.
  • если Проверочный Код зависит от времени, и его необходимо проверять отдельно в течение срока и вне срока. Проверочный Эффективность кода
  • После того, как пользователь успешно войдет в систему, но время сеанса истечет, будет ли продолжение операции перенаправлять его в интерфейс входа в систему?
  • Имеют ли пользователи разных уровней, например администраторы и обычные пользователи, правильные разрешения после входа в систему?
  • Расположен ли фокус страницы по умолчанию в поле ввода имени пользователя
  • Можно ли нормально использовать сочетания клавиш Tab, Enter и т. д.?
  • Отображает ли курсор мыши только кликабельный или редактируемый статус в фиксированном положении.

Прочитав это, думаете ли вы, что простая функция входа в систему может учесть такое количество контрольных точек?,Функция входа пользователяизтестовый пример设计还без结束。нас Должен знать программное обеспечениеиз Требования включают в себяЯвные функциональные требования(обратитесь кизда软件本身需要实现из Конкретные функции)иНеявные функциональные требования(то есть нефункциональные требования),Итак, помимо функций,нас Также рассмотритеБезопасность、производительность、совместимостьуровеньизвариант использования

Тестовые случаи безопасности

  1. Зашифрованы и сохранены ли пароли пользователей и личная информация;
  2. шифруются ли пароли пользователей и личная информация при передаче по сети;
  3. Имеет ли пароль срок действия?,По истечении срока действия пароля,намекать, нужно ли менять пароль;
  4. Не входя в систему, введите URL-адрес непосредственно после входа в браузер в браузере, чтобы проверить, будет ли он перенаправлен на интерфейс входа пользователя;
  5. Поддерживает ли поле ввода пароля копирование и вставку;
  6. Можно ли просмотреть пароль, введенный в поле ввода пароля, в режиме исходного кода страницы;
  7. Введите типичные строки «атаки SQL-инъекцией» в поля ввода имени пользователя и пароля соответственно, чтобы проверить возвратную страницу системы;
  8. Введите типичные строки «Атака с использованием межсайтового сценария XSS» в поля ввода имени пользователя и пароля соответственно, чтобы проверить, было ли изменено поведение системы;
  9. В случае нескольких последовательных неудачных попыток входа в систему, будет ли система блокировать последующие попытки взлома методом перебора?
  10. Один и тот же пользователь входит в систему в нескольких браузерах на одном и том же терминале, чтобы проверить, соответствует ли взаимная исключительность функции входа ожиданиям дизайна;
  11. Один и тот же пользователь входит в систему в браузерах нескольких терминалов один за другим, чтобы проверить, являются ли входы взаимоисключающими.
  12. Шифруются ли данные, возвращаемые интерфейсом входа в систему, и отображается ли информация о пользователе.
  13. Войдите в UA, чтобы получить его, убедитесь, что пользователь входит в систему сам.

Тестовые примеры производительности

  1. Составляет ли время ответа при однопользовательском входе менее 2 секунд при нормальных условиях сети;
  2. Когда в систему входит один пользователь, не слишком ли много фоновых запросов?
  3. Является ли время ответа на вход пользователя в сценарии с высоким уровнем параллелизма менее 5 секунд;
  4. Соответствуют ли показатели мониторинга сервера в сценариях с высоким уровнем параллелизма ожиданиям;
  5. Возникают ли в сценариях с высокой степенью параллелизма точек встречи взаимоблокировки ресурсов и необоснованные ожидания ресурсов?
  6. Если большое количество пользователей постоянно входит и выходит из системы в течение длительного времени, возникает ли утечка памяти на стороне сервера?
  7. Предотвращение злонамеренного параллелизма со стороны одного и того же пользователя

Тестовые примеры совместимости

  1. Проверить отображение и работоспособность страницы входа в разные браузеры;
  2. Проверить отображение и работоспособность страницы входа в разные версии одного и того же браузера;
  3. Различные терминалы мобильных устройствиз Проверить отображение и работоспособность страницы входа в разные браузеры;
  4. Проверьте правильность отображения и функционирования страницы входа в интерфейсах с разными разрешениями.

Как разработать сценарии использования для сложных систем

Разработка сценариев использования для сложных систем,очень важный шаг,то естьДемонтаж функциональных точек。Что это должно сделать?Демонтаж функциональных точек Шерстяная ткань,В качестве примера возьмем страницу воспроизведения станции B.,Не смотрите только на одну страницу,Но в нем много функциональных моментов,через эту картинку,Мы можем, по крайней мере, выделить следующие функциональные моменты:

  • Нравиться
  • монета
  • собирать
  • делиться
  • Комментарий
  • Заградительный огонь
  • Вкладка страницы воспроизведения, копирайтинг и отображение информации

После разборки функциональных точек,Мы можем использовать такие методы, как Классэквивалентности, граничное значение, Неправильное предположение, для разработки тестовых примеров на основе соответствующих им функциональных точек.,После завершения разработки однофункционального варианта использования,Все еще нужноиспользоватьСценарный методПроектирование на основе сценариевизтестовый пример,Охватывайте процесс работы пользователя,например

Нажмите на видео на главной странице, чтобы перейти на страницу воспроизведения видео. Нажмите вкладку «Комментарии» на странице воспроизведения, чтобы перейти на страницу комментариев. После завершения комментария просмотрите список комментариев.

Это основной процесс работы пользователя.,Приведите еще один пример на основе сценария.,Мы все пользовались Таобао,从挑选商品->добавить в корзину->Оплатить из корзины,Это основной сценарий покупки товаров.

Сценарный метод фокусируется на больших и сложных бизнес-процессах.,глазизда用业务流Соедините различные изолированные функциональные точки вместе,Поэтому при разработке сценариев использования Сценарного метода,Тестировщики должны быть хорошо знакомы с общим бизнес-процессом.,Для разработки полных сценариев тестирования,Если мы хотим полностью понять бизнес-процесс, мы можем внимательно прочитать документы с требованиями, пообщаться с несколькими менеджерами по продуктам и самостоятельно испытать функции.

окончание

Хорошо, если вы это видите полностью, значит, вы уже студент, который действительно хочет научиться разрабатывать тестовые примеры. Если вы хотите хорошо проектировать тестовые примеры и освоить методы проектирования тестовых примеров, вам все равно нужно практиковаться. Часто вы можете разрабатывать тестовые примеры, отражающие ваше мышление по тестированию, и развитие мышления по тестированию не может быть сформировано за день или два. Это требует постоянного накопления и большой практики тестирования.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose