Что такое Баг (Bug) в тестировании ПО?

9 сентября 1947 года ученые Гарвардского университета, которые тестировали вычислительную машину Mark || нашли застрявшего мотылька между контактами электромеханического реле, который произвел к остановке машины. Баг в переводе с английского — это мотылек, жук, насекомое. С тех пор любые неполадки в вычислительной технике называют Багом

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

Что такое Тест кейс (Test Case)?

Тест кейс это что?

Что такое Тест кейс (тестовый случай) — это самая маленькая часть тест документации, это ситуация которая проверяет конкретно взятое условие из требований. Одно условие может проверятся несколькими Тестовыми Случаями (позитивными и негативными). Набор тест кейсов объединяются в тест сьюты

Так тестовый сценарий выглядит в системе для хранения кейсов TestRail:
Тест кейс

Из каких основных полей состоят тест кейсы:

  • ID
  • В это поле записывается номер кейса или номер вместе с какой-то аббревиатурой к примему «PD_Sync_123»служит для их уникальной идентификации среди других кейсов.
  • Summary
  • Cюда записывают краткое описание проблемы. Summary (описание) должно содержать ответ на вопрос что произошло и при каких условиях работает не верно.
  • Steps
  • Здесь описывают шаги, для того чтобы востроизвести баг. Степы рекомендуют максимально сокращать, то есть найти кратчайший путь для воспроизведения бага и описать в степах, и очень важно чтобы они оставались максимально понятными для разработчиков.
  • Expected Result
  • В этом поле описываем ожидаемый результат после хождения по шагам или возможно после конкретных шагов, что бывает реже.
  • Pass/Fail
  • Поле служит для проставления статуса каждому тест кейсу. Если ожидаемый результат совпадает с реальным, то проставляем pass, в противном случае ставим fail. Возможно еще несколько статусов в зависимости от процессов и правил в IT компании
Возможны дополнительные поля для комментариев, ссылок на Баг репорт, Предусловий которые мы должны выполнить перед тем как воспроизводить по Шагам.

Пример Тест Кейса

Простой наглядный пример проверки успешного входа в систему Администратора при условии что его логин и пароль = 'Login' и '12345'.
Можно написать такие Тест Кейсы:

ID
Summary
Steps
Expected Result
Pass/Fail
1Administrator Log in (Positive)1. Open the login page
2. Type 'Login' in the Name field
3. Type '12345' in the Password field
4. Submit
Administrator should be logged in successfullyPassed OR Failed(Поле до стадии выполнения остается пустым или Not tested)
2Administrator Log in with Incorrect password, correct username (Negative)1. Open the login page
2. Type 'Login' in the Name field
3. Type '11111' in the Password field
4. Submit
Administrator should NOT be logged in. «User or Login is incorrect» message is displayedPassed OR Failed(Поле до стадии выполнения остается пустым или Not tested)
3Administrator Log in with Correct password, Incorrect username (Negative)1. Open the login page
2. Type 'Login1' in the Name field
3. Type '12345' in the Password field
4. Submit
Administrator should NOT be logged in. «User or Login is incorrect» message is displayedPassed OR Failed(Поле до стадии выполнения остается пустым или Not tested)

Что такое Граничные значения (Boundaries) и Эквивалентные классы (Equivalence partitioning) в Тестировании ПО?

Эквивалентные классы

Эквивалентный класс включает в себя определенное количество каких-то значений, которые предположительно будут обрабатываться и выдавать на выходе один и тот же результат для всех представителей этого эквивалентного класса.

Чтобы легче было понять давайте предположим что есть простой скрипт или программа, которая предлагает нам ввести возраст человека в текстовое поле вместимостью в 2 символа и что ниже находится кнопка для отправки данных. Результат данной программы должна быть стоимость мед страховки в зависимости от той цифры, которую мы введем. В соответствии с функциональной спецификацией все возраста разделили на четыре категории. Первая это Дети (включает от 0 до 12 лет), Вторая категория это Подростки (включает от 13 до 17 лет), Третья категория это Взрослые (включает от 18 до 59 лет), и последняя Пятая категория это Пенсионеры (включает от 60 до 99 лет). В зависимости от категории к которой относится человек, будет вычисляться стоимость мед страховки:
  • Дети — 10 у.е. в месяц
  • Подростки — 20 у.е. в месяц
  • Взрослые — 30 у.е. в месяц
  • Пенсионеры — 40 у.е. в месяц

В данном случае все входные данные мы можем разделить на 4 эквивалентных класса. Как изображено на изображении ниже.

Equivalence-partitioning

Вопрос: Сколько же тест кейсов нам нужно для проверки всех эквивалентных классов и какие именно?

Читать дальше →

Что такое Тестирование Программного Обеспечения (Software Testing)?

Тестирование Программного Обеспечения

Если спросить у тестировщиков что такое Тестирование Программного Обеспечения, то можно услышать совершенно разные ответы. Некоторые из них покажутся вам более правильными иные — менее. Проанализировав несколько определений можно вывести какое-то общее определение.

Тестирование ПО

Тестирование ПО — это процесс анализа тестируемого продукта с применением различных видов и методик тестирования для того чтобы получить информацию о том насколько наш продукт соответствует требованиям.
Основная цель тестирования — предоставить информацию заказчику о качестве тестируемого продукта.

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