Тестирование программного обеспечения: ПО и дефекты

Тестирование, общие моменты: http://howis.ru/software-testing/

Требования к ПО: прямые/косвенные, функциональные/нефункциональные, бизнес/пользовательские. Характеристики требований: выполнимость, недвумысленность, однозначность.

Качество ПО: функиональность, надежность, юзабилити, эфективность, портативность, сопровождение.

Разработка ПО: водопад (каскадная модель, waterfall model), циклическая, v-model, RAD Model (быстрая разработка приложений), Iterative Model» (итеративная, инкрементная или итерационная модель, начинаем сразу реализовывать итерациями часть функционала не имея полных требований).

Agile — гибкие методологии разработки итерациями, спринтами, несколько команд занимаются частью функционала.

Жизненный цикл программного обеспечения (ЖЦПО) 

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

Техники тест-дизайна: эквивалентное разделение (определяем класс эквивалентности, делаем позитивную и отрицательую проверку), далее применяем технику пограничных значений, техника предугадывания ошибок.

Баг/дефект (bug) — несоответствие между реальным и ожидаемым поведением ПО. Ошибка -> Дефект -> Отказ.

Жизненный цикл дефекта — открыт -> повторился еще 1 раз -> заведен в баг-трекинговой системе -> передан аналитику/тест-дизайнеру на проверку тест-кейса -> передан разработчику -> пофиксен/возвращен.

Приоритеты дефекта — низкий, средний, высокий. Серьезность — блокирующая, критическая, средняя, обычная, минимальная.

Тест-кейс состоит из полей: название, полное описание и предусловие, шаги и ожидаемый результат, дополнения.

Баг-репорт: проект, название, полное описание, окружение и версия, ссылка на тест-кейс или шаги и ожидаемый результат, фактический результат, серьезность и приоритет, дополнения (скриншот, логи, xml-документ, sql-запрос)

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

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

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

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

Цели тестирования:

  • Обнаружение дефектов
  • Повышение уверенности в уровне качества
  • Предоставление информации для принятия решений
  • Предотвращение дефектов

Виды (типы) тестирования

Функциональное/нефункциональное.

Функциональное: тестирование компонентов и модулей, интеграционное (проверка взаимодействия), системное, приемочное, нового функционала, регресс, на соответствие бизнес требованиям, смоук- тестирование (проверка основного функционала с помощью выборочных тест кейсов).

Нефункциональное: безопасность, стрессовое, нагрузочное, установка, отказ и восстановление, юзабилити, конфигурационное (портируемость).

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

Тестирование по уровням:

Модульное, интеграционное, системное, операционное (опционально), приемочное.

Тест-план или план тестирования — высокоуровневый документ, включающий в себя весь объем работ и документов, от а до я.

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

Верификация — соответствие ПО бизнес-требованиям.

Валидация — пользовательским.

Продолжение: дефекты, жизненный цикл, модели разработки ПО