Что такое отрицательный тест для функционального тестирования

Я пытаюсь понять, что такое отрицательный тестовый пример.

Например: предположим, что у нас есть веб-сайт, на который мы можем загрузить файл. Он должен принимать только текст или файл CSV. и он не должен иметь более 100 символов в ширину и 100 символов в длину. если это не текст или CSV, или если ширина или длина превышают, должно отображаться правильное сообщение об ошибке.

каковы будут отрицательные тесты для этого?

  • Является ли загрузка файла, отличного от текстового, отрицательным тестом?
  • Является ли загрузка файла длиной или шириной 101 отрицательным тестом?

Я думаю, что оба вышеперечисленных примера являются положительными тестовыми случаями, поскольку они не предназначены для взлома системы, они предназначены для проверки сообщений об ошибках.

Итак, если вы согласны с вышеприведенным утверждением, какими, по вашему мнению, должны быть отрицательные тесты?


person Gaurang    schedule 01.06.2017    source источник


Ответы (5)


Как вы написали: "Следует только принять..." Принять означает положительный результат. И только означает, что есть некоторые сценарии, в которых мы не получаем положительного результата. Это означает, что в некоторых обстоятельствах будет отрицательный результат.

Теперь, если у вас есть только тесты, в которых принимаются входные данные, вы доказали «принятую», но не «единственную» часть. Вот почему вам нужны отрицательные тесты, которые показывают, что не все входные данные принимаются.

Возможно, вы не знали, что описали второе требование, написав: «Оно не предназначено для взлома системы». Это требование не имеет части «только», поэтому все тесты являются положительными тестами.

Должно быть ясно, какую пользовательскую историю/функцию тестирует тест. Я бы сказал, что «не нарушать» — это общее требование практически для любого приложения, и здесь уместным требованием является функция «только принимать».

(И если вы хотите быть по-настоящему правы, вы используете фразу «если и только если».)

person Ville Oikarinen    schedule 01.06.2017

Упомянутые вами тестовые случаи являются отрицательным тестом.

Положительные тесты — это тесты, которые проверяют бизнес-корректность системы.

Отрицательные тесты — это тесты, которые проверяют, обрабатываются ли необычные ситуации (например, есть ли правильный комментарий, если вы хотите загрузить файл неправильного типа).

Если вы хотите сломать систему, вы выполняете другой тип теста, например Атаки.

См. также: Положительные и отрицательные тестовые случаи

person Kinga    schedule 02.06.2017

Перейдите по указанной ссылке: http://www.softwaretestingclass.com/what-is-negative-testing-and-tips-on-writing-negative-test-cases/

Оба они считаются отрицательными тест-кейсами.

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

person Testing Expert    schedule 31.03.2018

Положительным случаем является случай, когда пользователь вводит именно то, что нужно системе, и система выполняет намеченное действие.

Отрицательные случаи охватывают другие сценарии — когда предполагаемое действие не было выполнено, потому что некоторые данные недействительны или их недостаточно.

Так что оба случая, которые вы описали, отрицательны.

person Stanislav Bashkyrtsev    schedule 01.06.2017
comment
не предназначено ли действие для отображения сообщения об ошибке в этих случаях, и поэтому это положительный тест? - person Gaurang; 01.06.2017
comment
Предназначение — это то, что намеревался сделать пользователь — что-то создать, что-то отредактировать и т. д. - person Stanislav Bashkyrtsev; 01.06.2017
comment
так вы согласны, что это положительный тест, а не отрицательный? - person Gaurang; 01.06.2017
comment
Нет, я просто объяснил, почему это отрицательные случаи. Если пользователь собирается создать какой-то порядок, а у него возникают ошибки - значит, он не добился того, что хотел. - person Stanislav Bashkyrtsev; 01.06.2017

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

  • Либо ломается.
  • ИЛИ изящно обработает неверные данные, например, показывая сообщение об ошибке.

На самом деле основная цель отрицательного теста — проверить, правильно ли приложение обрабатывает неправильные данные, показывая сообщения об ошибках вместо сбоя.

Ваши входные данные (неправильный тип файла и неправильное количество символов), очевидно, предназначены для взлома приложения и проверки того, приходят ли правильные сообщения об ошибках.

Так что это отрицательные тесты.

Отрицательный тест проходит, когда при вводе неправильных данных приложение показывает правильные сообщения об ошибках.

Отрицательный тест не пройден, когда при вводе неправильных данных приложение падает и сбивает пользователя с толку.

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

person a Learner    schedule 04.06.2017