Средства тестирования приложений для разработчиков

Проблемы


C развитием аппаратной базы компьютерных систем - увеличением тактовой частоты до запредельных уровней (переваливших за гигагерц), ускорением обработки изображений в реальном масштабе времени при помощи супермощных видеоадаптеров многие разработчики не считают нужным (или возможным) оптимизировать написанные ими программные продукты, перенося весь неоптимизированный код на быструю подсистему, быстрый процессор, "умный" компилятор. Результат подобного злоупотребления мы наблюдаем ежедневно во время запуска программ на собственных компьютерах, отмечая странную тенденцию: чем новее программа, тем больше требует ресурсов, и тем медленнее работает. Но и это еще не все! Многие программы по окончании работы не освобождают все занимаемые ресурсы, что приводит к достаточно неприятным последствиям. Странно, не правда ли? Казалось бы, технологии программирования должны совершенствоваться и идти в ногу с аппаратными новинками, качественно используя все предоставляемые ими возможности, однако на деле все обстоит гораздо хуже. В погоне за новыми цифрами версий на коробках продуктов разработчики не считают нужным (возможным) проводить детальную оптимизацию написанного кода, тщательно отслеживая все вызовы и подсчитывая занимаемую системную память, поскольку занятие это трудоемкое и длительное, а получаемый результат не всегда оправдывает надежды: времени потрачено много, сил - еще больше, а производительность конечного продукта повысилась в лучшем случае на 9%, а то и меньше. Согласитесь, ситуация для нашего времени достаточно типичная, причем типична она для всех софтверных компаний, вне зависимости от ранга, размера, и, что немаловажно, от географического расположения. Лозунг: "время - деньги", применяемый всеми к месту и не к месту, в данной ситуации дает явный сбой! Получается количество версий - в ущерб качеству.

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

Неужели все так страшно и бесперспективно? И "да" и "нет".
Все крупные компании, связанные с разработкой программного обеспечения, пытаются найти способы наиболее эффективного тестирования, не выходя при этом за рамки бюджета конкретной разработки. Но, к сожалению, то ли ищут не там, то ли применяют не то, поскольку оптимизированных продуктов на рынке не так много. Разработка качественных продуктов в отведенные сроки - вот задача, на решения которой направлены все продукты компании Rational. В частности, для этапа разработки высококачественного кода, компания, посредством RUP (Rational Unified Process - методологии разработки), компанией рекомендуется использование инструментов тестирования: Quantify, Purify, PureCoverage. Именно методике использования вышеперечисленных продуктов и посвящена данная статья - ведь их разумное применение позволит группам разработчиков найти и своевременно устранить узкие места в производительности создаваемого программного обеспечения.

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

Содержание раздела