Дисциплина тестирования используется многими другими дисциплинами. Тестирование в основном представляет собой оценку
или измерение качества продукта и состоит из следующих базовых операций:
-
Поиск и документирование дефектов программного обеспечения.
-
Выработка рекомендаций по субъективному качеству программного обеспечения.
-
Практическая проверка предположений, на основе которых построены спецификации требований и спроектирован продукт.
-
Проверка соответствия фактического поведения продукта предполагаемому.
-
Проверка правильности реализации требований.
Тестирование интересно тем, что оно принципиально отличается от других дисциплин RUP. Дело в том, что задача
тестирования заключается в поиске ошибок в программном продукте. Интересно это тем, что для максимальной эффективности
тестирования нужна философия, отличная от философии дисциплин анализа и проектирования, реализации и управления
требованиями. Тогда как последние три дисциплины ориентированы сфокусированы на завершенности продукта, тестирование
сфокусировано на его незавершенности.
Эффективное тестирование получается тогда, когда ставятся следующие вопросы:
-
Как можно сломать этот программный продукт?
-
В каких ситуациях это программное обеспечение может быть дестабилизировано?
Тестирование - это прямой вызов предположениям, рискам и неопределенностям, которыми оперируют остальные дисциплины. В
ходе тестирования проводится практическая и беспристрастная оценка качества программного продукта. Следует избегать
двух крайностей:
-
подхода, при котором программный продукт и его слабые стороны проверяются недостаточно тщательно
-
предвзятого отрицательного или деструктивного подхода к программному продукту - такой подход может привести к
возникновению антагонизма между тестированием и другими дисциплинами
Согласно данным опросов и отчетов, стоимость тестирования составляет от 30% до 50% общего бюджета разработки
программного обеспечения. В этом смысле удивительно распространенное мнение о том, что программное обеспечение мало
тестируется перед выпуском. Причины этого феномена заключаются в следующем:
-
Тестирование программного обеспечения - очень трудоемкая задача. Как составить список всех возможных сценариев
поведения продукта?
-
Тестирование зачастую проводится бессистемно, а его результаты начинаю зависеть от конкретного проекта и конкретной
организации. Успех тестирования в первую очередь зависит от качества и квалификации персонала.
-
Недостаточно используются средства повышения эффективности работы, что приводит к усложнению тестирования. Помимо
того что все тесты выполняются вручную, зачастую отсутствуют средства анализа и подведения итогов тестирования.
Гибкость и сложность программного обеспечения делают тестирование невыполнимой задачей. Применение четко
сформулированной методологии и современных средств автоматизации позволяет значительно повысить эффективность и
снизить трудоемкость тестирования.
В системах с особыми требованиями к обеспечению безопасности, например авиадиспетчерские службы, системы
наведения и системы жизнеобеспечения, должно использоваться только программное обеспечение высшего качества. Хотя на
первый взгляд ошибки в программном обеспечении не столь критичны для обычных информационных систем, на практике они
могут стать причиной финансовых потерь и даже судебных исков. В информационном веке предъявляются все более жесткие
требования к электронным службам, предоставляемым через Интернет, и поэтому многие информационные системы жизненно
важны для компаний, поскольку без них компании не могут вести деятельность, а выход таких систем из строя приводит
к огромным убыткам.
Последовательный подход к обеспечению качества, начиная с самых ранних этапов жизненного цикла, позволяет значительно
снизить стоимость разработки и обслуживания программного обеспечения. Кроме того, такой подход позволяет значительно
снизить вероятность выпуска некачественного продукта.
Дисциплина тестирования связана с другими дисциплинами следующим образом:
-
Дисциплина управления
требованиями охватывает вопросы формулировки и уточнения требований к программному продукту, а требования
представляют собой одни из основных источников информации при разработке и отборе тестов.
-
Дисциплина анализа
и проектирования посвящена созданию проекта программного продукта, от которого также во многом зависит
выбор выполняемых тестов.
-
Дисциплина реализации охватывает вопросы компоновки тестируемых версий программного
продукта. В ходе итерации могут быть протестированы несколько компиляций; как правило, по одной компиляции за один
цикл тестирования.
-
Дисциплина развертывания охватывает вопросы поставки готового программного продукта
конечным пользователям. Хотя тестирование проводится до начала поставки, на этапе внедрения зачастую выполняются
тестирование бета-версий и приемка продукта.
-
В дисциплину управление
средой входят вопросы разработки и обслуживания вспомогательных артефактов, которые применяются во время
тестирования, включая указания по тестированию и среду тестирования.
-
Дисциплина управления проектом охватывает планирование проекта и действия, выполняемые
в рамках каждой итерации. Этот артефакт, описанный в плане итерации, очень важен для разработки адекватной
процедуры оценки результатов теста.
-
Дисциплина управления конфигурацией и изменениями охватывает вопросы управления
изменением продуктов работы и артефактов в ходе реализации проекта. В ходе тестирования проверяется правильность
внесения изменений.
Рекомендуется ознакомиться с книгой Kaner, Bach & Pettichord Lessons Learned in Software Testing [KAN01], в которой приведено огромное количество рекомендаций для испытателей.
|