Реклама:

Глава 10 Тестирование

«Тестирование программ может служить для доказательства наличия ошибок, но никогда не докажет их отсутствия!»^

10.1. Что такое тестирование?

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

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

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

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

1) Дал У., Дийкстра Э., Хоор К. Структурное программирование. - М.: Мир, 1975., с. 13.

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

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

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

Полное описание типов тестирования, нужных для новой прикладной системы, можно найти в книге автора [4].

10.2. Зачем нужно какое-либо тестирование (или почему программы и программисты не являются совершенными)?

Некоторые программисты и проектировщики программ испытывают ощущение, что их программы вовсе не нуждаются в тестировании, ибо они совершенны. В конечном итоге не тратят ли они впустую чрезмерно много времени и интеллектуальных усилий, доказывая, что конструирование и кодирование программ были вполне правильными?


⇐ Предыдущая страница| |Следующая страница ⇒