74
· Неэффективность существующих технологий тестирования.
Традиционный подход был тщательно разработан для пакетных и
символьно-ориентированных диалоговых Кобол-приложений, но сегодня системы
радикально изменились: произошел переход от монолитных программ к
фрагментированным модулям на С, С++ и/или Java. Данный тип разработки
увеличивает число компонентов приложения и сложность их взаимодействия, что
снижает эффективность тестирования, основанного на коде.
Современные приложения имеют больше возможностей благодаря
взаимодействию многих модулей. Число тестовых условий, необходимых для
обращения к приложениям этого типа, может превысить бюджет и требования
плана. Это происходит из-за неэффективности процесса тестирования,
сосредоточенного на исследовании кода законченного приложения. Только
организации, способные выдержать такие затраты и гибкий временной график,
могут и дальше увеличивать продолжительность тестирования и отношение
времени тестирования ко времени разработки.
Как уже отмечалось, традиционные технологии тестирования
ориентированы на код законченного приложения (т.е. приложение может
тестироваться только после того, как оно собрано). Этот подход оказывается
неэффективным с точки зрения как качества выполняемой работы, так и бюджета.
Годы исследований показали - устранение ошибок при завершении процесса
разработки обходится дороже и требует больше времени, чем их исправление на
более ранних стадиях (анализ, проектирование и т.д.) [1]. Риск сбоя программного
обеспечения в результате этих изменений также увеличивается на завершающих
стадиях разработки приложения. Одновременно с увеличением цены и риска
уменьшаются возможности разработчика по внесению изменений. Очевидно, что
ошибки следует находить и исправлять как можно раньше.
Идея поиска ошибок в момент, когда закончено кодирование приложения,
предполагает размещение момента обнаружения ошибки непосредственно в
процесс разработки, где, опять-таки, цена и риск высоки, а вносить изменения уже
сложно. Несоответствие между стадией обнаружения, временем и ценой
исправления этих ошибок делает существующие процессы тестирования все
менее эффективными для современных приложений.