|
|
|||||||||||||||||||||||||||||
|
IBM Rational / Telelogic LogiscopeIBM Rational Logiscope - это инструмент для обеспечения качества программного обеспечения, который автоматизирует статический анализ кода. IBM Rational Logiscope - это инструмент для обеспечения качества программного обеспечения, которое автоматизирует оценку кода, а также идентификацию и обнаружение подверженных ошибкам модулей в процессе тестирования программ.
IBM Rational / Telelogic Logiscope предназначен для качественной оценки уже имеющихся в вашем распоряжении кодов и "поиска" тех мест, где появление ошибок наиболее вероятно. После анализа кода и сравнения его с моделью качества (которая уже заложена по умолчанию, но может корректироваться в соответствии с вашим внутренними правилами), Logiscope формирует массу разнообразной метрической информации о коде, о его положительных и отрицательных сторонах, генерит полный отчет. Результаты анализа представляются в виде числовых показателей (метрик, которых существует около 200 типов), позволяющих судить о качестве исходного кода программ. Logiscope поддерживает функцию обратного проектирования, c помощью которой можно восстановить структуру программы по объектному коду, что полезно для понимания логики ее работы и характера используемых данных (это особенно важно, если вы давно создаете и эксплуатируете вашу систему, множество раз вносили изменения, уже забыли некоторые детали, часть разработчиков уже уволилась). Logiscope cостоит из трех опций - Audit, RuleChecker, TestChecker - каждая изкоторых имеет свое конкретное предназначение: Audit - анализруя исходный код и сравнивая его с моделью качества, строит граф системы и, анализируя его, информирует пользователя о разрывах, замкнутых петлях, указывает перегруженные или вовсе не используемые блоки, дает качественную оценку кода по признанным критериям, которые могут корректироваться в компании. Это дает особенно наглядный результат, когда работа над кодом велась в компании достаточно долго и разными людьми. В этом случае Audit находит массу лишних кусков, обрывов, "мертвых" блоков, которые весьма перегружают приложение и затрудняют его дальнейшую эксплуатацию и поддержку. RuleChecker - применяется для формирования в компании единого подхода к написанию кода. Один из лучших способов уменьшить вероятность появления ошибок - следовать стандартам программирования, что ликвидирует благодатную почву для возникновения ошибок уже на самых первых этапах. Стандарты программирования - это специфические для языка "правила", которые, если их соблюдать, значительно снижают вероятность внесения ошибок в процесс разработки. RuleChecker, используя заранее встроенные шаблоны качества, которые при необходимости могут корректироваться пользователем, подгоняет "своеобразную" манеру написания кода любого пользователя под единый стиль, принятый в компании. Это позволяет, с одной стороны, сократить возможность появления ошибок, а с другой стороны - облегчить работу с кодом любому члену команды, т.е. с легкостью работать не только со "своим" кодом, но и с "чужим", что немаловажно при наличии команды разработчиков и, как это не странно, при текучести кадров - поди разберись потом, что тут наворотил уволившийся ранее сотрудник. TestChecker - позволяет проанализировать насколько полно ваши тесты проверяют работоспособность вами же создаваемой системы. Компонент TestChecker наблюдает за поведением тестируемой программы в ходе ее исполнения и в процессе своей работы строит деревья вызовов, профили выполнения, отмечает невызываемые функции и неисполняемые процедуры. Цель тестовых наборов для "белого" ящика - обнаружить все скрытые дефекты путем всестороннего тестирования системы/блока разноообразными входными параметрами. Преполагается, что эти наборы обеспечивают максимально возможное покрытие функций. Следует однако заметить, что самостоятельное создание подобных наборов, - невероятное тяжелое занятие. Поэтому всегда остается сомнение в 100%-ом охвате системы. В этом случае всегда желательно иметь инструмент для измерения степени покрытия для оценки полноты тестирования и определения необходимости в дополнительных тестовых наборах. Используя TestChecker, вы избегаете такого рода проблем. По результатам проверки легко контролировать, какие из ветвей графа вашей системы были проверены, а какие нет; какие тесты возможно просто дублируют друг друга. Это также экономит время при последующих тестах, которые необходимы после внесения изменений - вы просто знаете какие именно тесты надо запустить, чтобы не тратить время на проверку всей системы. Так называемое - регрессивное тестирование.
Ссылки по теме
|