logo
Автоматизация тестирования программного обеспечения

1. Введение

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

  • В области тестирования ПС исторически сложились непростые отноше-ния между тестировщиками и разработчиками ПС.
  • По образному выражению И. Винченко «…профессия тестировщика программного обеспечения, как и ее сестра -- профессия инженера по качеству, а также «выросшая» из них профессия инженера по автоматизации про-цессов тестирования, очень молода и зачастую овеяна мифами и подвержена влиянию предрассудков. Эта профессия, появившаяся в Соединенных Шта-тах Америки более 15 лет назад, даже там не пользуется большим уважением у программистов -- «белой кости» IТ-мира…».
  • Вероятно благодаря этому обстоятельству на практике, при разработке ПС, тестирование применяется редко. Еще реже эти процессы автоматизи-руются. Значительную роль здесь играет заблуждение, а иногда и самоуве-ренность, опытных программистов, сводящаяся к тезису, что грамотное и ак-куратное программирование исключает возможность внесения ошибок в ко-нечный программный продукт. На самом деле следует сходить из посылки, что при любых обстоятельствах человек неспособен избежать ошибок. Опыт показывает, что в любой программе содержаться то или иное количество ошибок, точно также как «не существует здоровых людей, есть только не до конца обследованные».
  • Польку большинство дефектов выявляется вс.-таки на стадии тестирова-ния продукта, определяющим для экономии средств является автоматизация этой стадии внедрения. Компания Mercury провела опрос 1000 заказчиков и выяснила, что приблизительно 80% из них не используют средств автомати-зации при тестировании, предпочитая проводить его вручную. Из оставшейся доли абсолютное большинство - 80% компаний - применяют лишь простей-шие средства автоматизации тестирования при выполнении отдельных про-ектов. У 14% фирм развернуты специальные продукты тестирования и созда-на стандартная инфраструктура для этого. Ещ. 5% компаний внедрили сер-висы тестирования и образовали центры компетенции, агрегирующие луч-шие практики и осуществляющие обмен опытом между командами и проек-тами. И лишь у 1% заказчиков реализована система тотального контроля ка-чества и запущены централизованные сервисы тестирования, использующие единый жизненный цикл для всех проектов.
  • Анализ существующих развитых средств автоматизации процессов тести-рования ПС главным образом связаны с исследованием web - продуктов, се-тевых ПС и информационных систем. Связано это с огромным спросом на рынке программных средств в этой области. Однако наиболее интересными в научном смысле, с точки зрения сложности тестирования, представляются программные модули вычислительного характера, оказавшиеся в настоящее время незаслуженно в тени. Но это область высоких технологий: аэрокосми-ческий кластер, энергетика, оборонный комплекс и т.д.
  • Таким образом, если нет возможности осуществить полное тестирование ПО (т.е. запуск программы при всех допустимых значениях исходных данных), то останется вероятность того, что в программе останется часть не выявленных ошибок. Чем раньше выявлена ошибка, тем больше вероятность ее правильного исправления и меньше стоимость работ по ее устранению.