Найти в Дзене

Коротко о тестировании программного обеспечения

Юлий Минькин, руководитель проектного офиса Тестирование - это процесс проверки программного обеспечения с целью выявления ошибок и дефектов, а также оценки его качества и соответствия требованиям заказчика. Цель проведения тестирования - убедиться, что программное обеспечение работает правильно и соответствует требованиям заказчика, а также выявить и устранить ошибки и дефекты, которые могут привести к неправильной работе системы или угрозе безопасности. Требования к программному обеспечению - это описание функциональных и нефункциональных характеристик, которые должны быть реализованы в программном обеспечении. Требования могут быть представлены в виде документа, который описывает функциональные возможности, ограничения, интерфейсы и другие аспекты программного обеспечения. Другими словами, тестирование проводится для того, чтобы поставляемый программный продукт был качественным и соответствовал ожиданиям заказчика. Качество - это степень соответствия продукта или услуги требованиям

Юлий Минькин, руководитель проектного офиса

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

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

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

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

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

Вопрос обеспечения качества автоматизированных систем, одним из компонентов которых является программное обеспечение, настолько важен, что ему посвящен отдельный государственный стандарт - "Виды испытаний ГОСТ Р 59792—2021".

Согласно этому стандарту, "испытания АС представляют собой процесс проверки выполнения заданных функций АС, определения и проверки соответствия требованиям ТЗ на АС количественных и (или) качественных характеристик АС. Выявления и устранения недостатков в действиях системы, в разработанной документации".

Но вернемся к вопросу тестирования программного обеспечения, как более узкой теме, по сравнению с требованиями ГОСТа.

Рассмотрим основные процессы, которые выполняются при тестировании программного обеспечения:

  1. Определение цели тестирования - включает формулирование цели, задач, объектов и участников тестирования, а также определение ожидаемых результатов.
  2. Составление тестовых сценарием и тест-кейсы - такие сценарии необходимы для проверки функциональности, производительности, безопасности и других характеристик программного обеспечения.
  3. Выбор методов тестирования - определение подходов, инструментов и приемов тестирования, например, таких как ручное тестирование, автоматизированное тестирование, тестирование на основе моделей и т.д.
  4. Выбор тестовых данных - важный аспект, который позволяет проверить различные сценарии использования программного обеспечения.
  5. Выполнение тестов - нацелен на получение и анализ результатов тестирования и документирование найденных ошибок и дефектов.
  6. Оценка качества программного обеспечения - выполняется на основе результатов тестирования, кроме аспекта функциональности, также оцениваются и другие факторы, таких как удобство использования, производительность, безопасность и т.д.
  7. Управление тестированием - включает планирование, организацию и контроль выполнения тестов.
  8. Документирование - формализация вышеперечисленных процессов, например, в форме отчетов, актов, протоколов и пр.

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

  • Функциональное тестирование - проверка соответствия функциональных требований программного обеспечения.
  • Интеграционное тестирование - проверка взаимодействия между различными компонентами программного обеспечения.
  • Регрессионное тестирование - повторное тестирование после внесения изменений в программное обеспечение.
  • Автоматизированное тестирование - использование специальных инструментов для автоматизации процесса тестирования.
  • Тестирование производительности - проверка производительности программного обеспечения в различных условиях.
  • Тестирование безопасности - проверка на уязвимости и защиту от взлома и других угроз.
  • Тестирование совместимости - проверка совместимости программного обеспечения с различными операционными системами и другими приложениями.
  • Тестирование удобства использования - проверка удобства использования и юзабилити программного обеспечения.
  • Тестирование на основе моделей - использование моделей для создания тестовых сценариев и тест-кейсов.
  • Тестирование надежности и отказоустойчивости - проверка устойчивости и надежности программного обеспечения в различных условиях.

Все эти виды тестирования для простоты можно разделить на две составляющие:

  1. Функциональное тестирование - это проверка соответствия программного обеспечения функциональным требованиям. Оно включает в себя проверку того, что программное обеспечение выполняет требуемые функции и действия, а также проверку правильности и точности результатов. Функциональное тестирование может включать в себя такие виды тестирования, как модульное и интеграционное тестирование (в ГОСТе они именуются автономными и комплексные испытаниями).
  2. Нефункциональное тестирование - это проверка нефункциональных характеристик программного обеспечения, таких как производительность, безопасность, удобство использования, надежность и т.д. Соответственно, такое тестирование может включать в себя такие виды тестирования, как тестирование производительности, тестирование безопасности, тестирование удобства использования и т.д.

Оба типа тестирования являются важными в жизненном цикле программного обеспечения.

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

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

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