В настоящее время одной из наших производственных систем занимается более 3000 программ, написанных между 1986 и сейчас. База кода написана на нестандартном языке, к сожалению, не хватает современных средств тестирования.Написание средства покрытия пути
Чтобы улучшить качество нашего кода, я работаю над внедрением процессов и создания инструментов, которые улучшат разработку и тестирование. У меня есть только инструмент для охвата линий, чтобы мы могли помочь идентифицировать мертвый код + непроверенный код во время разработки.
Теперь я хотел бы начать работу над добавлением Path Coverage к инструменту.
Как мне это сделать?
Учитывая, что:
1) Инструмент покрытия линии выступает в качестве предварительной обработки, который вводит код
2) У меня уже есть возможность собирать статистику я установил в указанном коде.
Какие данные следует записывать по мере выполнения программы и как ее интерпретировать?
Как представить результаты через HTML?
Я уже прочитал вопрос How to get started “writing” a code coverage tool?, который был о Java, однако это не помогло (включая бумагу «Покрытие отделения для произвольных языков Made Easy»).
Заранее благодарим за любые рекомендации!
Вы еще не видели книгу «Эффективная работа с устаревшим кодом»? –
Мне любопытно, почему вы хотите охват маршрута. Я работал над авионикой, сертифицированной по степени удовлетворенности FAA (уровень DO-178b только B и C, а не уровень A), и мы только делали заявление. Заявление с заявлением об участии ИМО было низким, если вы уже посвятили себя высококачественным модульным испытаниям (то есть: хороший инженер будет писать хорошие тесты (даже без инструмента охвата), плохой инженер не будет (даже когда покрытие инструмент говорит, что их тестирование недостаточно)). Конечно, времена, когда инструмент покрытия подсказывает вам написать тест, который вы не знали, что вам нужно писать, но это было редко. – KeyserSoze
@Robert. До сих пор. @keysersoze. Охват отчета не приближается к его сокращению. У нас было много примеров сбоев кода в производстве из-за специфической, непроверенной комбинации условий. Кроме того, характер текущей базы кода исключает автоматическое модульное тестирование. Тестирование путей будет действовать не только как инструмент для обнаружения вещей, которые мы не думали о тестировании, а также проверка того, что ручные тесты действительно были выполнены. Я упоминал, что это код legecy с почти никакой документацией, включая то, что мы должны тестировать? –