Продолжаем говорить о техниках тест-дизайна. Сегодня речь пойдет о технике предугадывания ошибок. Она подойдет в том случае, когда мы уже знакомы с продуктом и имеем определенный опыт в тестировании подобного функционала.
Суть техники в том, что чтобы найти все способы, которые могут сломать тестируемый продукт.
По традиции начну с определения. Немного информации из ISTQB:
Предположение об ошибках – это способ предотвращения ошибок, дефектов и отказов, основанный на знаниях тестировщика, включающих:
— Историю работы приложения в прошлом.
— Наиболее вероятные типы дефектов, допускаемых при разработке.
— Типы дефектов, которые были обнаружены в схожих приложениях.
Структурированный подход к предположению об ошибках предполагает создание списка всех возможных ошибок, дефектов и отказов с последующей разработкой тестов, направленных на поиск дефектов из этого списка. Списки отказов и дефектов могут быть построены на основе опыта, исторических данных об отказах и ошибках, а также на общих знаниях о причинах отказа программ.
Получается, что предугадывание ошибки — это когда тест аналитик использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы «предугадать» при каких входных условиях система может выдать ошибку.
Например, в программе я вижу: «для подтверждения заказа введите свой номер телефона в формате +7(…)… ….» И я, как тестировщик, начинаю думать: «А если не вводить телефон?», «А если ввести в формате не +7, а просто 8? «, и так далее. Это и есть предугадывание ошибки.
Давайте посмотрим на конкретных примерах, как можно использовать этот метод.
Уже знакомая нам игра с молокозаводом
Возьмем объекты, которые нам необходимо построить. Например, каким образом можно сломать курятник на этапе покупки?
- Можно попробовать поставить его на другой объект

2. Или за границу доступного поля

3. За границей поля тоже не получается.. А давайте попробуем поставить на воду? Вдруг разработчики не учли этот момент?

Тоже никак, все работает как надо… Ладно поставим пока курятник на место. Теперь попробуем проверить, все ли нормально с его работой.
4. В курятник можно покупать и сажать кур. А что если попробовать вместо кур поместить коров?

5. Или попробовать кур поместить на территорию вне курятника

6. Или попробовать зайти в магазин, пока покупаем кур

«Ладно, видимо не в этот раз» — говорим мы себе и закрываем игру…
Таким образом, путем предугадывания ошибок, мы с вами нашли 6 случаев, при которых возможны проблемы в работе приложения.
А теперь посмотрим на примере сайта
Возьмем один из элементов сайта — форму регистрации. Посмотрим на нее внимательно и подумаем, как мы можем ее «сломать».

Мне на ум приходят вот какие варианты:
- Указать e-mail c несуществующим доменом на конце.
- Указать e-mail без знака «@».
- Заполнить поле «Пароль» без использования обязательных символов. Например, если программа требует, чтобы в пароле были заглавные и строчные буквы, то пробуем ввести пароль без использования заглавных букв.
- В поле «Пароль еще раз» ввести символы отличные от символов в поле «Пароль».
- Снять галочку «Я принимаю условия Пользовательского соглашения».
- Ввести неверные символы с картинки.
- Оставить одно поле незаполненным.
________________________________
Таким образом, суть данного метода заключается в том, чтобы найти как можно больше ошибок, попытаться сломать работающий функционал. Название техники уже говорит само за себя.
________________________________
В предугадывании ошибок нет четкой и логической схемы, которая позволила бы нам составить тест-кейсы. Т.е. нельзя сказать, что сделав сначала Шаг №1, затем Шаг №2 и т.д. мы на выходе получим готовые проверки с максимально полным покрытием.
Наоборот, эта техника основывается на опыте тестировщика и на его умении думать креативно и деструктивно.
Замечено,
что
некоторые
люди
по
своим
качествам
оказываются
прекрасными
специалистами
по
тестированию
программ.
Они
обладают
умением
«выискивать»
ошибки
и
без
привлечения
какой-либо
методологии
тестирования
(такой,
как
анализ
граничных
значений
или
применение
функциональных
диаграмм).
Объясняется
это
тем,
что
человек,
обладающий
практическим
опытом,
часто
подсознательно
применяет
метод
проектирования
тестов,
называемый
предположением
об
ошибке.
При
наличии
определенной
программы
он
интуитивно
предполагает
вероятные
типы
ошибок
и
затем
разрабатывает
тесты
для
их
обнаружения.
Процедуру
для
метода
предположения
об
ошибке
описать
трудно,
так
как
он
в
значительной
степени
является
интуитивным.
Основная
идея
его
заключается
в
том,
чтобы
перечислить
в
некотором
списке
возможные
ошибки
или
ситуации,
в
которых
они
могут
появиться,
а
затем
на
основе
этого
списка
написать
тесты.
Например,
такая
ситуация
возникает
при
значении
0 на
входе
и
выходе
программы.
Следовательно,
можно
построить
тесты,
для
которых
определенные
входные
данные
имеют
нулевые
значения
и
для
которых
определенные
выходные
данные
устанавливаются
на
0.
При
переменном
числе
входов
или
выходов
(например,
число
искомых
входных
записей
при
поиске
в
списке)
ошибки
возможны
в
ситуациях
типа
«никакой»
и
«один»
(например,
пустой
список,
список,
содержащий
только
одну
искомую
запись).
Другая
идея
состоит
в
том,
чтобы
определить
тесты,
связанные
с
предположениями,
которые
программист
может
сделать
во
время
чтения
спецификаций
(т.е.
моменты,
которые
были
опущены
из
спецификации
либо
случайно,
либо
из-за
того,
что
автор
спецификации
считал
их
очевидными).
Поскольку
данная
процедура
не
может
быть
четко
определена,
лучшим
способом
обсуждения
смысла
предположения
об
ошибке
представляется
разбор
примеров.
Если
в
качестве
примера
рассмотреть
тестирование
подпрограммы
сортировки,
то
нужно
исследовать
следующие
ситуации:
1. Сортируемый
список
пуст.
2. Сортируемый
список
содержит
только
одно
значение.
3. Все
записи
в
сортируемом
списке
имеют
одно
и
то
же значение.
4. Список
уже
отсортирован.
Другими
словами,
требуется
перечислить
те
специальные
случаи,
которые
могут
быть
не
учтены
при
проектировании
программы.
Если
пример
заключается
в
тестировании
подпрограммы
двоичного
поиска,
то
можно
проверить
следующие
ситуации:
1) существует
только
один
вход
в
таблицу,
в
которой
ведется
поиск;
2) размер
таблицы
есть
степень
двух
(например,
16);
3) размер
таблицы
меньше
или
больше
степени
двух
(например,
15
или
17).
Рассмотрим
программу
MTEST,
приведенную
в
разделе,
посвященном
анализу
граничных
значений.
При
тестировании
этой
программы
методом
предположения
об
ошибке
целесообразно
учесть
следующие
дополнительные
тесты:
1. Допускает
ли
программа
«пробел»
в
качестве
ответа?
2. Запись
типа
2
(ответ)
появляется
в
наборе
записей
типа
3
(студент).
3. Запись
без
2 или
3 в
последней
колонке
появляется
не
как
начальная
запись
(название).
4. Два
студента
имеют
одно
и
то
же
имя
или
номер.
5. Поскольку
медиана
вычисляется
по-разному
в
зависимости
от
того,
четно
или
нечетно
число
элементов,
необходимо
протестировать
программу
как
для
четного,
так
и
для
нечетного
числа
студентов.
6. Поле
числа
вопросов
имеет
отрицательное
значение.
Для
команды
DISPLAY
из
предыдущего
раздела
целесообразно
рассмотреть
следующие
тесты
метода
предположения
об
ошибке:
1. DISPLAY
100
—
(неполный
второй
операнд).
2. DISPLAY
100.
(неполный
второй
операнд).
3. DISPLAY
100
—
10А42
(слишком
большое
значение
операнда).
4. DISPLAY
000
—
0000FF
(нули
слева).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Software application is a part of our daily life. May be in laptop or may be in our mobile phone, or it may be any digital device/interface our day starts with the use of various software applications and also ends with the use of various software applications. That’s why software companies are also trying their best to develop good quality error free software applications to the users.
So when a company develops any software application software testing plays a major role in that. Testers not only test the product with a set of specified test cases they also test the software by coming out of the testing documents. There the term error guessing comes which is not specified in any testing instruction manual still it is performed. So in this article we will discuss about that error then error guessing, where and how it is performed. The benefits that we get by performing it. So let’s start the topic.
Actually an error appears when there is any logical mistake in code by developer. And It’s very hard for a developer to find an error in large system. To solve this problem Error guessing technique is used. Error guessing technique is a software technique where test engineer guesses and try to break the software code. Error Guessing technique is also applied to all of the other testing techniques to produce more effective and workable tests.
What is the use of Error Guessing ?
In software testing error guessing is a method in which experience and skill plays an important role. As here possible bugs and defects are guessed in the areas where formal testing would not work. That’s why it is also called as experience based testing which has no specific method of testing. This is not a formal way of performing testing still it has importance as it sometimes solves many unresolved issues also.
Where or how to use it ?
Error guessing in software testing approach which is a sort of black box testing technique and also error guessing is best used as a part of the conditions where other black box testing techniques are performed, for instance, boundary value analysis and equivalence split are not prepared to cover all of the condition which are slanted to error in the application.
Advantages and Disadvantages of Error Guessing Technique :
Advantages :
- It is effective when used with other testing approaches.
- It is helpful to solve some complex and problematic areas of application.
- It figures out errors which may not be identified through other formal testing techniques.
- It helps in reducing testing times.
Disadvantages :
- Only capable and skilled tests can perform.
- Dependent on testers experience and skills.
- Fails in providing guarantee the quality standard of the application.
- Not an efficient way of error detection as compared to effort.
- Drawbacks of Error Guessing technique:
- Not sure that the software has reached the expected quality.
- Never provide full coverage of an application.
Factors used in error guessing :
- Lessons learned from past releases.
- Experience of testers.
- Historical learning.
- Test execution report.
- Earlier defects.
- Production tickets.
- Normal testing rules.
- Application UI.
- Previous test results.
Error Guessing is one of the popular techniques of testing, even if it is not an accurate approach of performing testing still it makes the testing work simple and saves a lots of time. But when it is combined with other testing techniques we get better results. In this testing, it is essential to have skilled and experienced testers.
Software application is a part of our daily life. May be in laptop or may be in our mobile phone, or it may be any digital device/interface our day starts with the use of various software applications and also ends with the use of various software applications. That’s why software companies are also trying their best to develop good quality error free software applications to the users.
So when a company develops any software application software testing plays a major role in that. Testers not only test the product with a set of specified test cases they also test the software by coming out of the testing documents. There the term error guessing comes which is not specified in any testing instruction manual still it is performed. So in this article we will discuss about that error then error guessing, where and how it is performed. The benefits that we get by performing it. So let’s start the topic.
Actually an error appears when there is any logical mistake in code by developer. And It’s very hard for a developer to find an error in large system. To solve this problem Error guessing technique is used. Error guessing technique is a software technique where test engineer guesses and try to break the software code. Error Guessing technique is also applied to all of the other testing techniques to produce more effective and workable tests.
What is the use of Error Guessing ?
In software testing error guessing is a method in which experience and skill plays an important role. As here possible bugs and defects are guessed in the areas where formal testing would not work. That’s why it is also called as experience based testing which has no specific method of testing. This is not a formal way of performing testing still it has importance as it sometimes solves many unresolved issues also.
Where or how to use it ?
Error guessing in software testing approach which is a sort of black box testing technique and also error guessing is best used as a part of the conditions where other black box testing techniques are performed, for instance, boundary value analysis and equivalence split are not prepared to cover all of the condition which are slanted to error in the application.
Advantages and Disadvantages of Error Guessing Technique :
Advantages :
- It is effective when used with other testing approaches.
- It is helpful to solve some complex and problematic areas of application.
- It figures out errors which may not be identified through other formal testing techniques.
- It helps in reducing testing times.
Disadvantages :
- Only capable and skilled tests can perform.
- Dependent on testers experience and skills.
- Fails in providing guarantee the quality standard of the application.
- Not an efficient way of error detection as compared to effort.
- Drawbacks of Error Guessing technique:
- Not sure that the software has reached the expected quality.
- Never provide full coverage of an application.
Factors used in error guessing :
- Lessons learned from past releases.
- Experience of testers.
- Historical learning.
- Test execution report.
- Earlier defects.
- Production tickets.
- Normal testing rules.
- Application UI.
- Previous test results.
Error Guessing is one of the popular techniques of testing, even if it is not an accurate approach of performing testing still it makes the testing work simple and saves a lots of time. But when it is combined with other testing techniques we get better results. In this testing, it is essential to have skilled and experienced testers.