29
Self Tester Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat www.viva64.com

Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Embed Size (px)

Citation preview

Page 1: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Self Tester

Программа для регрессионного тестирования

анализаторов PVS-Studio, CppCat

www.viva64.com

Page 2: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Постеленные целиНеобходимо обеспечить регрессионное тестирование статических анализаторов кода PVS-Studio и CppCat.

Тесты должны выполняться на большом количестве открытых проектов, написанных на языке C/C++.

Должна тестироваться работа анализаторов в рамкам всех поддерживаемых версий Visual Studio.

Удобная работа со списком отличий, быстрый просмотр, возможность применить изменения и так далее.

www.viva64.com

Page 3: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Технологии

Платформа: .NET Framework 4.5;

Язык программирования: C# 5.0;

Технология: Windows Presentation

Foundation 4.5

www.viva64.com

Page 4: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Проекты для запускаИнтерфейс состоит из сетки, в которой первый столбец содержит набор проектов для запуска.

Проекты для запуска содержатся в архиве, который распакует установщик программы в директорию установки.

Содержимое этого столбца, для краткости, содержит имена решений с расширениями.

Чтобы, узнать точное расположение файла решения, нужно навести курсор мыши на соответствующее имя решения.

www.viva64.com

Page 5: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Выбор запуска по

умолчаниюПри первом запуске программы, автоматически выбирается столбец, который предполагает наиболее частую конфигурацию для запусков.

В текущей версии программы самый распространенный вариант использования предполагает запуск всех проектов для анализатора PVS-Studio для версии Visual Studio 2010

www.viva64.com

Page 6: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Другие запускиПрограмма учитывает сеансы запусков. К примеру, в одном сеансе можно запустить все проекты для всех установленных версий Visual Studio для анализатора PVS-Studio.

Для этого достаточно щелкнуть по заголовку столбца.

Если нужно выбрать несколько версий Visual Studio, то при щелчке на заголовках столбца нужно также держать зажатой клавишу CTRL.

Также, действуют стандартные клавиатурные сокращения и для ячеек. Например, чтобы выбрать несколько отдельных проектов, нужно выбирать ячейки с нажатой клавишей CTRL.

www.viva64.com

Page 7: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Другие запускиТакже программа поддерживает запуски для анализатора CppCat

www.viva64.com

Page 8: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек в

момент, когда

анализ не запущенЯчейки основной таблицы проектов могут находится в различных состояниях.

В зависимости от состояния запуска анализа, состояния ячеек могут пересекаться или нет.

К примеру, вне зависимости от запуска анализа, можно видеть состояние «Not supported», это означает, что анализатор для конкретной версии Visual Studio не поддерживается в текущей конфигурации проекта

www.viva64.com

Page 9: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек в

момент, когда

анализ не запущенТакже можно видеть, что некоторые версии Visual Studio могут быть не установлены, даже если конфигурация проектов рассчитана на поддержку всех запусков.

Вполне логично, что состояние «VS not installed» будет перекрывать состояние “Not supported”, даже если конфигурация конкретного решения была рассчитана на запуск в версии Visual Studio 2013

www.viva64.com

Page 10: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек

при запущенном

процессе анализаЕсли запустить выбранные проекты на анализ, можно видеть состояния ячеек в запущенном состоянии.

Первоначальным состоянием для каждого проекта будет “Pending”, что означает, что проект был выбран и его анализ в текущем сеансе запуска запланирован к выполнению

www.viva64.com

Page 11: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек в

запущенном

состоянииЛогично предположить, чтоследующим за «Pending» состоянием, будет состояние «In progress».

Это означает, что проект в текущий момент анализируется.

Также, стоит заметить, что в один и тот же момент времени, могут анализироваться несколько проектов.

Из интерфейса нельзя контролировать это поведение. Оно прописано в конфигурационном файле приложения и по умолчанию равно 4-м, что означает параллельный запуск максимум для 4-х проектов.

www.viva64.com

Page 12: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек по

завершению

анализаПосле прохождения анализа проекты могут находится в нескольких завершенных состояниях.

Нормальное состояние завершения отмечено как “OK”. Это означает, что проект не дал различий при текущих эталонных установках анализатора

www.viva64.com

Page 13: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек по

завершению

анализаПо прохождению анализа проект может дать различия.

В таком случае его состоянию будет соответствовать статус «Diff».

Различие означает, что прежняя эталонная конфигурация при анализе перестала соответствовать текущей.

В таких ситуациях нужно проверить, что именно дало различия.

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

www.viva64.com

Page 14: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Состояния ячеек по

завершению

анализаСамым неопределенным состоянием по завершению анализа может быть состояние “Fail”.

Это состояние, по которому нельзя понять, были ли различия или нет.

Состояние «Fail» означает, что анализ завершился неудачей из-за внутреннихисключений, которые иногда возникают в Visual Studio в установленных расширениях.

В таком случае может помочь повторный запуск.

www.viva64.com

Page 15: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Конфигурация

решенийСтоит упомянуть про то, что у каждого решения существует конфигурация, от которой зависит запуск анализатора.

Как правило, он задается при установке и более не меняется.

Однако можно видеть, что некоторые проекты поддерживают запуск только для определенных версий Visual Studio.

К примеру, для решения GuiBakerединственной поддерживаемой версией будет Visual Studio 2010.

Этим и объясняется существование состояния «Not supported»

www.viva64.com

Page 16: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

МенюУ программы есть единственное меню, предназначенное для выбора сеансов запуска.

Если сеансов запуска анализатора еще не было, можно только видеть кнопку «Erase All», которая будет недоступна.

Если были сеансы анализа эта кнопка станет доступной и удалит все существующие сеансы запусков

www.viva64.com

Page 17: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

МенюПри первом запуске в меню добавится пункт, соответствующий текущему запуску анализа. Он будет подсвечен, однако само меню станет недоступным, пока текущий сеанс анализа не завершится или не будет отменен.

Название пункта меню состоит из строки даты и времени для текущей локали и имени текущего, вошедшего в систему, пользователя в скобках

www.viva64.com

Page 18: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

МенюПри завершении или остановке текущего сеанса анализа ячейки меню становятся доступными для выбора.

www.viva64.com

Page 19: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Активное/неактивное состояние меню

www.viva64.com

Page 20: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Окна

предупрежденийВ приложении можно периодически наблюдать окна предупреждений.

Такие окна могут быть двух типов: окна, возникающие при ошибках в работе анализатора и окна самого приложения.

На данной картинке показано окно, сгенерированное Visual Studio, которое свидетельствует о том, что команда TestRun не является допустимой для данной версии. Это может говорить о том, что подключаемое расширение не было зарегистрировано для данной версии.

www.viva64.com

Page 21: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Окна

предупрежденийНа данной картинке показано окно предупреждения самого приложения.

Оно говорит нам о том, что не было выбрано ни одного решения для запуска.

www.viva64.com

Page 22: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Графическое

состояние запускаВ приложении предусмотрены графические состояния запуска.

Они расположены в нижнем левом углу окна и могут быть полезны для наглядности.

К примеру, на данном изображении можно увидеть, что сеанс анализа был пройден, остановлен, запущен, но пока не дал никаких различий.

www.viva64.com

Page 23: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Графическое

состояние запускаДанное изображение показывает, что анализ запущен в данный момент, но уже есть проекты, которые дали различия для текущей эталонной конфигурации.

www.viva64.com

Page 24: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Графическое

состояние запускаДанное изображение показывает, что текущий сеанс анализа был завершен или остановлен, и дал различия для двух проектов

www.viva64.com

Page 25: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

В состоянии запуска можно видеть прогресс

www.viva64.com

Page 26: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Вызов Visual StudioПри двойном щелчке на выбранной ячейке сетки можно вызвать открытие проекта в Visual Studio.

www.viva64.com

Page 27: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Панель с кнопкамиДля различных манипуляций с тестовыми запусками предусмотрена панель с кнопками. Слева направо:

• Кнопка Run предназначена для запуска/останова анализа для текущих выбранных решений;

• Кнопка Log позволяет открыть HTML-лог для просмотра различий для текущего выбранного сеанса;

• Кнопка Diff позволяет открывать выбранные решения с различиями в Visual Studio;

• Кнопка Apply Results позволяет заменять эталонные конфигурации текущими для выбранных решений;

www.viva64.com

Page 28: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Панель с кнопкамиПанель с кнопками может находится в состоянии запуска.

При этом видно время, которое было пройдено при текущем запуске анализа.

Логично предположить, что кнопка Apply Results будет в таком случае недоступной, так как некоторые результаты еще не были получены.

www.viva64.com

Page 29: Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat

Запуск Visual StudioКнопка, способная открывать решения в Visual Studio сделана для удобства открытия нескольких решений.

Однако, запуск нескольких экземпляров Visual Studio может быть довольно длительным процессом, поэтому было предусмотрено статус-окно, которое не блокирует пользовательский интерфейс при открытии нескольких экземпляров Visual Studio

www.viva64.com