Дисциплина: Тестирование
Данная дисциплина посвящена оценке качества продукта.
Взаимосвязи
Основное описание

Дисциплина тестирования используется многими другими дисциплинами. Тестирование в основном представляет собой оценку или измерение качества продукта и состоит из следующих базовых операций:

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

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

Эффективное тестирование получается тогда, когда ставятся следующие вопросы:

  • Как можно сломать этот программный продукт?
  • В каких ситуациях это программное обеспечение может быть дестабилизировано?

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

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

Согласно данным опросов и отчетов, стоимость тестирования составляет от 30% до 50% общего бюджета разработки программного обеспечения. В этом смысле удивительно распространенное мнение о том, что программное обеспечение мало тестируется перед выпуском. Причины этого феномена заключаются в следующем:

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

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

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

Связь с другими дисциплинами

Дисциплина тестирования связана с другими дисциплинами следующим образом:

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

Литература

Рекомендуется ознакомиться с книгой Kaner, Bach & Pettichord Lessons Learned in Software Testing [KAN01], в которой приведено огромное количество рекомендаций для испытателей.

Дополнительные сведения