SlideShare uma empresa Scribd logo
1 de 29
Self Tester 
Программа для регрессионного тестирования 
анализаторов PVS-Studio, CppCat 
www.viva64.com
Постеленные цели 
Необходимо обеспечить регрессионное 
тестирование статических анализаторов 
кода PVS-Studio и CppCat. 
Тесты должны выполняться на большом 
количестве открытых проектов, 
написанных на языке C/C++. 
Должна тестироваться работа 
анализаторов в рамкам всех 
поддерживаемых версий Visual Studio. 
Удобная работа со списком отличий, 
быстрый просмотр, возможность 
применить изменения и так далее. 
www.viva64.com
Технологии 
 Платформа: .NET Framework 4.5; 
 Язык программирования: C# 5.0; 
 Технология: Windows Presentation 
Foundation 4.5 
www.viva64.com
Проекты для запуска 
Интерфейс состоит из сетки, в которой 
первый столбец содержит набор 
проектов для запуска. 
Проекты для запуска содержатся в 
архиве, который распакует установщик 
программы в директорию установки. 
Содержимое этого столбца, для 
краткости, содержит имена решений с 
расширениями. 
Чтобы, узнать точное расположение 
файла решения, нужно навести курсор 
мыши на соответствующее имя 
решения. 
www.viva64.com
Выбор запуска по 
умолчанию 
При первом запуске программы, 
автоматически выбирается столбец, 
который предполагает наиболее 
частую конфигурацию для запусков. 
В текущей версии программы самый 
распространенный вариант 
использования предполагает запуск 
всех проектов для анализатора PVS-Studio 
для версии Visual Studio 2010 
www.viva64.com
Другие запуски 
Программа учитывает сеансы запусков. 
К примеру, в одном сеансе можно 
запустить все проекты для всех 
установленных версий Visual Studio для 
анализатора PVS-Studio. 
Для этого достаточно щелкнуть по 
заголовку столбца. 
Если нужно выбрать несколько версий 
Visual Studio, то при щелчке на 
заголовках столбца нужно также 
держать зажатой клавишу CTRL. 
Также, действуют стандартные 
клавиатурные сокращения и для ячеек. 
Например, чтобы выбрать несколько 
отдельных проектов, нужно выбирать 
ячейки с нажатой клавишей CTRL. 
www.viva64.com
Другие запуски 
Также программа поддерживает 
запуски для анализатора CppCat 
www.viva64.com
Состояния ячеек в 
момент, когда 
анализ не запущен 
Ячейки основной таблицы проектов 
могут находится в различных 
состояниях. 
В зависимости от состояния запуска 
анализа, состояния ячеек могут 
пересекаться или нет. 
К примеру, вне зависимости от запуска 
анализа, можно видеть состояние «Not 
supported», это означает, что 
анализатор для конкретной версии 
Visual Studio не поддерживается в 
текущей конфигурации проекта 
www.viva64.com
Состояния ячеек в 
момент, когда 
анализ не запущен 
Также можно видеть, что некоторые 
версии Visual Studio могут быть не 
установлены, даже если конфигурация 
проектов рассчитана на поддержку 
всех запусков. 
Вполне логично, что состояние «VS not 
installed» будет перекрывать состояние 
“Not supported”, даже если 
конфигурация конкретного решения 
была рассчитана на запуск в версии 
Visual Studio 2013 
www.viva64.com
Состояния ячеек 
при запущенном 
процессе анализа 
Если запустить выбранные проекты на 
анализ, можно видеть состояния ячеек 
в запущенном состоянии. 
Первоначальным состоянием для 
каждого проекта будет “Pending”, что 
означает, что проект был выбран и его 
анализ в текущем сеансе запуска 
запланирован к выполнению 
www.viva64.com
Состояния ячеек в 
запущенном 
состоянии 
Логично предположить, что 
следующим за «Pending» состоянием, 
будет состояние «In progress». 
Это означает, что проект в текущий 
момент анализируется. 
Также, стоит заметить, что в один и тот 
же момент времени, могут 
анализироваться несколько проектов. 
Из интерфейса нельзя контролировать 
это поведение. Оно прописано в 
конфигурационном файле приложения 
и по умолчанию равно 4-м, что 
означает параллельный запуск 
максимум для 4-х проектов. 
www.viva64.com
Состояния ячеек по 
завершению 
анализа 
После прохождения анализа проекты 
могут находится в нескольких 
завершенных состояниях. 
Нормальное состояние завершения 
отмечено как “OK”. Это означает, что 
проект не дал различий при текущих 
эталонных установках анализатора 
www.viva64.com
Состояния ячеек по 
завершению 
анализа 
По прохождению анализа проект 
может дать различия. 
В таком случае его состоянию будет 
соответствовать статус «Diff». 
Различие означает, что прежняя 
эталонная конфигурация при анализе 
перестала соответствовать текущей. 
В таких ситуациях нужно проверить, 
что именно дало различия. 
Если таких различий следовало 
ожидать, то эту конфигурацию можно 
сделать текущей эталонной для 
последующего анализа, в противном 
случае нужно исправить ошибку. 
www.viva64.com
Состояния ячеек по 
завершению 
анализа 
Самым неопределенным состоянием 
по завершению анализа может быть 
состояние “Fail”. 
Это состояние, по которому нельзя 
понять, были ли различия или нет. 
Состояние «Fail» означает, что анализ 
завершился неудачей из-за внутренних 
исключений, которые иногда 
возникают в Visual Studio в 
установленных расширениях. 
В таком случае может помочь 
повторный запуск. 
www.viva64.com
Конфигурация 
решений 
Стоит упомянуть про то, что у каждого 
решения существует конфигурация, от 
которой зависит запуск анализатора. 
Как правило, он задается при установке 
и более не меняется. 
Однако можно видеть, что некоторые 
проекты поддерживают запуск только 
для определенных версий Visual Studio. 
К примеру, для решения GuiBaker 
единственной поддерживаемой 
версией будет Visual Studio 2010. 
Этим и объясняется существование 
состояния «Not supported» 
www.viva64.com
Меню 
У программы есть единственное меню, 
предназначенное для выбора сеансов 
запуска. 
Если сеансов запуска анализатора еще 
не было, можно только видеть кнопку 
«Erase All», которая будет недоступна. 
Если были сеансы анализа эта кнопка 
станет доступной и удалит все 
существующие сеансы запусков 
www.viva64.com
Меню 
При первом запуске в меню добавится 
пункт, соответствующий текущему 
запуску анализа. Он будет подсвечен, 
однако само меню станет 
недоступным, пока текущий сеанс 
анализа не завершится или не будет 
отменен. 
Название пункта меню состоит из 
строки даты и времени для текущей 
локали и имени текущего, вошедшего в 
систему, пользователя в скобках 
www.viva64.com
Меню 
При завершении или остановке 
текущего сеанса анализа ячейки меню 
становятся доступными для выбора. 
www.viva64.com
Активное/неактивное состояние меню 
www.viva64.com
Окна 
предупреждений 
В приложении можно периодически 
наблюдать окна предупреждений. 
Такие окна могут быть двух типов: 
окна, возникающие при ошибках в 
работе анализатора и окна самого 
приложения. 
На данной картинке показано окно, 
сгенерированное Visual Studio, которое 
свидетельствует о том, что команда 
TestRun не является допустимой для 
данной версии. Это может говорить о 
том, что подключаемое расширение не 
было зарегистрировано для данной 
версии. 
www.viva64.com
Окна 
предупреждений 
На данной картинке показано окно 
предупреждения самого приложения. 
Оно говорит нам о том, что не было 
выбрано ни одного решения для 
запуска. 
www.viva64.com
Графическое 
состояние запуска 
В приложении предусмотрены 
графические состояния запуска. 
Они расположены в нижнем левом 
углу окна и могут быть полезны для 
наглядности. 
К примеру, на данном изображении 
можно увидеть, что сеанс анализа был 
пройден, остановлен, запущен, но пока 
не дал никаких различий. 
www.viva64.com
Графическое 
состояние запуска 
Данное изображение показывает, что 
анализ запущен в данный момент, но 
уже есть проекты, которые дали 
различия для текущей эталонной 
конфигурации. 
www.viva64.com
Графическое 
состояние запуска 
Данное изображение показывает, что 
текущий сеанс анализа был завершен 
или остановлен, и дал различия для 
двух проектов 
www.viva64.com
В состоянии запуска можно видеть прогресс 
www.viva64.com
Вызов Visual Studio 
При двойном щелчке на выбранной 
ячейке сетки можно вызвать открытие 
проекта в Visual Studio. 
www.viva64.com
Панель с кнопками 
Для различных манипуляций с 
тестовыми запусками предусмотрена 
панель с кнопками. Слева направо: 
• Кнопка Run предназначена для 
запуска/останова анализа для 
текущих выбранных решений; 
• Кнопка Log позволяет открыть 
HTML-лог для просмотра различий 
для текущего выбранного сеанса; 
• Кнопка Diff позволяет открывать 
выбранные решения с различиями в 
Visual Studio; 
• Кнопка Apply Results позволяет 
заменять эталонные конфигурации 
текущими для выбранных решений; 
www.viva64.com
Панель с кнопками 
Панель с кнопками может находится в 
состоянии запуска. 
При этом видно время, которое было 
пройдено при текущем запуске 
анализа. 
Логично предположить, что кнопка 
Apply Results будет в таком случае 
недоступной, так как некоторые 
результаты еще не были получены. 
www.viva64.com
Запуск Visual Studio 
Кнопка, способная открывать решения 
в Visual Studio сделана для удобства 
открытия нескольких решений. 
Однако, запуск нескольких 
экземпляров Visual Studio может быть 
довольно длительным процессом, 
поэтому было предусмотрено статус- 
окно, которое не блокирует 
пользовательский интерфейс при 
открытии нескольких экземпляров 
Visual Studio 
www.viva64.com

Mais conteúdo relacionado

Mais procurados

Регулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеРегулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеTatyanazaxarova
 
Мелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиМелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиAlexei Lupan
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDEАвтоматизация и Selenium IDE
Автоматизация и Selenium IDEISsoft
 
JUnit, дай пять!
JUnit, дай пять!JUnit, дай пять!
JUnit, дай пять!Dmitrii Tuchs
 
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...CodeFest
 
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестированииSQALab
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Maksim Grinevich
 
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?SQALab
 
Dmitriy Kovalenko: Minimization of manual QA
Dmitriy Kovalenko: Minimization of manual QADmitriy Kovalenko: Minimization of manual QA
Dmitriy Kovalenko: Minimization of manual QAAndriy Krayniy
 
автоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Seleniumавтоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Seleniumvyacheslavmaslov
 
[Sqa days]risk driven testing
[Sqa days]risk driven testing[Sqa days]risk driven testing
[Sqa days]risk driven testingAlexei Lupan
 
Что могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщикиЧто могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщикиAndrey Karpov
 
Как мы тестируем анализатор кода
Как мы тестируем анализатор кодаКак мы тестируем анализатор кода
Как мы тестируем анализатор кодаTatyanazaxarova
 
Инструментальный подход к разработке протоколов
Инструментальный подход к разработке протоколовИнструментальный подход к разработке протоколов
Инструментальный подход к разработке протоколовfurj
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нтAlexei Lupan
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйDataArt
 
Reporting error
Reporting errorReporting error
Reporting errorQA Guards
 
Специфика разработки и тестирования статического анализатора
Специфика разработки и тестирования статического анализатораСпецифика разработки и тестирования статического анализатора
Специфика разработки и тестирования статического анализатораAndrey Karpov
 
Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!CUSTIS
 

Mais procurados (20)

Регулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеРегулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработке
 
Мелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиМелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательности
 
Автоматизация и Selenium IDE
Автоматизация и Selenium IDEАвтоматизация и Selenium IDE
Автоматизация и Selenium IDE
 
JUnit, дай пять!
JUnit, дай пять!JUnit, дай пять!
JUnit, дай пять!
 
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...
CodeFest 2012. Быстрых С. — Карантинная зона для автотестов: повышение стабил...
 
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Test-Cases: избавьтесь от тест-кейсов в тестировании
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
 
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?
Проблемы документирования в долгосрочных проектах - хотите поговорить об этом?
 
Dmitriy Kovalenko: Minimization of manual QA
Dmitriy Kovalenko: Minimization of manual QADmitriy Kovalenko: Minimization of manual QA
Dmitriy Kovalenko: Minimization of manual QA
 
автоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Seleniumавтоматизация тестирования с помощью Selenium
автоматизация тестирования с помощью Selenium
 
[Sqa days]risk driven testing
[Sqa days]risk driven testing[Sqa days]risk driven testing
[Sqa days]risk driven testing
 
Что могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщикиЧто могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщики
 
Как мы тестируем анализатор кода
Как мы тестируем анализатор кодаКак мы тестируем анализатор кода
Как мы тестируем анализатор кода
 
Инструментальный подход к разработке протоколов
Инструментальный подход к разработке протоколовИнструментальный подход к разработке протоколов
Инструментальный подход к разработке протоколов
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
 
Документация тестировщика - Александр Трибушный
Документация тестировщика - Александр ТрибушныйДокументация тестировщика - Александр Трибушный
Документация тестировщика - Александр Трибушный
 
Reporting error
Reporting errorReporting error
Reporting error
 
Специфика разработки и тестирования статического анализатора
Специфика разработки и тестирования статического анализатораСпецифика разработки и тестирования статического анализатора
Специфика разработки и тестирования статического анализатора
 
TAP
TAPTAP
TAP
 
Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!
 

Destaque

Статический анализ кода: современный взгляд
Статический анализ кода: современный взглядСтатический анализ кода: современный взгляд
Статический анализ кода: современный взглядAndrey Karpov
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Things to Remember When Developing 64-bit Software
Things to Remember When Developing 64-bit SoftwareThings to Remember When Developing 64-bit Software
Things to Remember When Developing 64-bit SoftwareAndrey Karpov
 
Статический анализ Си++ кода и новый стандарт языка C++0x
Статический анализ Си++ кода и новый стандарт языка C++0xСтатический анализ Си++ кода и новый стандарт языка C++0x
Статический анализ Си++ кода и новый стандарт языка C++0xTatyanazaxarova
 
PVS-Studio static analyzer: advanced features
PVS-Studio static analyzer: advanced featuresPVS-Studio static analyzer: advanced features
PVS-Studio static analyzer: advanced featuresAndrey Karpov
 
Static code analysis and the new language standard C++0x
Static code analysis and the new language standard C++0xStatic code analysis and the new language standard C++0x
Static code analysis and the new language standard C++0xAndrey Karpov
 

Destaque (6)

Статический анализ кода: современный взгляд
Статический анализ кода: современный взглядСтатический анализ кода: современный взгляд
Статический анализ кода: современный взгляд
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
Things to Remember When Developing 64-bit Software
Things to Remember When Developing 64-bit SoftwareThings to Remember When Developing 64-bit Software
Things to Remember When Developing 64-bit Software
 
Статический анализ Си++ кода и новый стандарт языка C++0x
Статический анализ Си++ кода и новый стандарт языка C++0xСтатический анализ Си++ кода и новый стандарт языка C++0x
Статический анализ Си++ кода и новый стандарт языка C++0x
 
PVS-Studio static analyzer: advanced features
PVS-Studio static analyzer: advanced featuresPVS-Studio static analyzer: advanced features
PVS-Studio static analyzer: advanced features
 
Static code analysis and the new language standard C++0x
Static code analysis and the new language standard C++0xStatic code analysis and the new language standard C++0x
Static code analysis and the new language standard C++0x
 

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

Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...
Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...
Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...Tatyanazaxarova
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеАлександр Шамрай
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rusMaxim Shaptala
 
Урок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибокУрок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибокTatyanazaxarova
 
Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...SQALab
 
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...Tatyanazaxarova
 
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокTatyanazaxarova
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Andrey Karpov
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest
 
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...Александр Шамрай
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?SQALab
 
Mva stf module 6 - rus
Mva stf module 6 - rusMva stf module 6 - rus
Mva stf module 6 - rusMaxim Shaptala
 
TestLink
TestLinkTestLink
TestLinkISsoft
 
Вадим Зубович - Test Link
Вадим Зубович - Test LinkВадим Зубович - Test Link
Вадим Зубович - Test LinkQA Club Minsk
 
Проблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложенийПроблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложенийTatyanazaxarova
 

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

Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...
Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...
Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего н...
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rus
 
Урок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибокУрок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибок
 
Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...
 
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...
Использование анализатора PVS-Studio в процессе инкрементальной сборки в Micr...
 
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибок
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
 
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...
Модульное тестирование с помощью visual studio 2012 MS Test, Nunit, X-unit.ne...
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Mva stf module 6 - rus
Mva stf module 6 - rusMva stf module 6 - rus
Mva stf module 6 - rus
 
TestLink
TestLinkTestLink
TestLink
 
Вадим Зубович - Test Link
Вадим Зубович - Test LinkВадим Зубович - Test Link
Вадим Зубович - Test Link
 
Проблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложенийПроблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложений
 

Mais de Andrey Karpov

60 антипаттернов для С++ программиста
60 антипаттернов для С++ программиста60 антипаттернов для С++ программиста
60 антипаттернов для С++ программистаAndrey Karpov
 
60 terrible tips for a C++ developer
60 terrible tips for a C++ developer60 terrible tips for a C++ developer
60 terrible tips for a C++ developerAndrey Karpov
 
Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Andrey Karpov
 
PVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesPVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesAndrey Karpov
 
PVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature OverviewPVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature OverviewAndrey Karpov
 
PVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокPVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокAndrey Karpov
 
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...Andrey Karpov
 
Best Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesBest Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesAndrey Karpov
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?Andrey Karpov
 
Typical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and JavaTypical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and JavaAndrey Karpov
 
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)Andrey Karpov
 
Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?Andrey Karpov
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
 
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareThe Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareAndrey Karpov
 
Static Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal EngineStatic Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal EngineAndrey Karpov
 
Safety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded SystemsSafety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded SystemsAndrey Karpov
 
The Great and Mighty C++
The Great and Mighty C++The Great and Mighty C++
The Great and Mighty C++Andrey Karpov
 
Static code analysis: what? how? why?
Static code analysis: what? how? why?Static code analysis: what? how? why?
Static code analysis: what? how? why?Andrey Karpov
 
Zero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for youZero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for youAndrey Karpov
 

Mais de Andrey Karpov (20)

60 антипаттернов для С++ программиста
60 антипаттернов для С++ программиста60 антипаттернов для С++ программиста
60 антипаттернов для С++ программиста
 
60 terrible tips for a C++ developer
60 terrible tips for a C++ developer60 terrible tips for a C++ developer
60 terrible tips for a C++ developer
 
Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Ошибки, которые сложно заметить на code review, но которые находятся статичес...
Ошибки, которые сложно заметить на code review, но которые находятся статичес...
 
PVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error ExamplesPVS-Studio in 2021 - Error Examples
PVS-Studio in 2021 - Error Examples
 
PVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature OverviewPVS-Studio in 2021 - Feature Overview
PVS-Studio in 2021 - Feature Overview
 
PVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокPVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибок
 
PVS-Studio в 2021
PVS-Studio в 2021PVS-Studio в 2021
PVS-Studio в 2021
 
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
Make Your and Other Programmer’s Life Easier with Static Analysis (Unreal Eng...
 
Best Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' MistakesBest Bugs from Games: Fellow Programmers' Mistakes
Best Bugs from Games: Fellow Programmers' Mistakes
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?
 
Typical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and JavaTypical errors in code on the example of C++, C#, and Java
Typical errors in code on the example of C++, C#, and Java
 
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
 
Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?Game Engine Code Quality: Is Everything Really That Bad?
Game Engine Code Quality: Is Everything Really That Bad?
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
 
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source SoftwareThe Use of Static Code Analysis When Teaching or Developing Open-Source Software
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
 
Static Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal EngineStatic Code Analysis for Projects, Built on Unreal Engine
Static Code Analysis for Projects, Built on Unreal Engine
 
Safety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded SystemsSafety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
Safety on the Max: How to Write Reliable C/C++ Code for Embedded Systems
 
The Great and Mighty C++
The Great and Mighty C++The Great and Mighty C++
The Great and Mighty C++
 
Static code analysis: what? how? why?
Static code analysis: what? how? why?Static code analysis: what? how? why?
Static code analysis: what? how? why?
 
Zero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for youZero, one, two, Freddy's coming for you
Zero, one, two, Freddy's coming for you
 

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

  • 1. Self Tester Программа для регрессионного тестирования анализаторов PVS-Studio, CppCat www.viva64.com
  • 2. Постеленные цели Необходимо обеспечить регрессионное тестирование статических анализаторов кода PVS-Studio и CppCat. Тесты должны выполняться на большом количестве открытых проектов, написанных на языке C/C++. Должна тестироваться работа анализаторов в рамкам всех поддерживаемых версий Visual Studio. Удобная работа со списком отличий, быстрый просмотр, возможность применить изменения и так далее. www.viva64.com
  • 3. Технологии  Платформа: .NET Framework 4.5;  Язык программирования: C# 5.0;  Технология: Windows Presentation Foundation 4.5 www.viva64.com
  • 4. Проекты для запуска Интерфейс состоит из сетки, в которой первый столбец содержит набор проектов для запуска. Проекты для запуска содержатся в архиве, который распакует установщик программы в директорию установки. Содержимое этого столбца, для краткости, содержит имена решений с расширениями. Чтобы, узнать точное расположение файла решения, нужно навести курсор мыши на соответствующее имя решения. www.viva64.com
  • 5. Выбор запуска по умолчанию При первом запуске программы, автоматически выбирается столбец, который предполагает наиболее частую конфигурацию для запусков. В текущей версии программы самый распространенный вариант использования предполагает запуск всех проектов для анализатора PVS-Studio для версии Visual Studio 2010 www.viva64.com
  • 6. Другие запуски Программа учитывает сеансы запусков. К примеру, в одном сеансе можно запустить все проекты для всех установленных версий Visual Studio для анализатора PVS-Studio. Для этого достаточно щелкнуть по заголовку столбца. Если нужно выбрать несколько версий Visual Studio, то при щелчке на заголовках столбца нужно также держать зажатой клавишу CTRL. Также, действуют стандартные клавиатурные сокращения и для ячеек. Например, чтобы выбрать несколько отдельных проектов, нужно выбирать ячейки с нажатой клавишей CTRL. www.viva64.com
  • 7. Другие запуски Также программа поддерживает запуски для анализатора CppCat www.viva64.com
  • 8. Состояния ячеек в момент, когда анализ не запущен Ячейки основной таблицы проектов могут находится в различных состояниях. В зависимости от состояния запуска анализа, состояния ячеек могут пересекаться или нет. К примеру, вне зависимости от запуска анализа, можно видеть состояние «Not supported», это означает, что анализатор для конкретной версии Visual Studio не поддерживается в текущей конфигурации проекта www.viva64.com
  • 9. Состояния ячеек в момент, когда анализ не запущен Также можно видеть, что некоторые версии Visual Studio могут быть не установлены, даже если конфигурация проектов рассчитана на поддержку всех запусков. Вполне логично, что состояние «VS not installed» будет перекрывать состояние “Not supported”, даже если конфигурация конкретного решения была рассчитана на запуск в версии Visual Studio 2013 www.viva64.com
  • 10. Состояния ячеек при запущенном процессе анализа Если запустить выбранные проекты на анализ, можно видеть состояния ячеек в запущенном состоянии. Первоначальным состоянием для каждого проекта будет “Pending”, что означает, что проект был выбран и его анализ в текущем сеансе запуска запланирован к выполнению www.viva64.com
  • 11. Состояния ячеек в запущенном состоянии Логично предположить, что следующим за «Pending» состоянием, будет состояние «In progress». Это означает, что проект в текущий момент анализируется. Также, стоит заметить, что в один и тот же момент времени, могут анализироваться несколько проектов. Из интерфейса нельзя контролировать это поведение. Оно прописано в конфигурационном файле приложения и по умолчанию равно 4-м, что означает параллельный запуск максимум для 4-х проектов. www.viva64.com
  • 12. Состояния ячеек по завершению анализа После прохождения анализа проекты могут находится в нескольких завершенных состояниях. Нормальное состояние завершения отмечено как “OK”. Это означает, что проект не дал различий при текущих эталонных установках анализатора www.viva64.com
  • 13. Состояния ячеек по завершению анализа По прохождению анализа проект может дать различия. В таком случае его состоянию будет соответствовать статус «Diff». Различие означает, что прежняя эталонная конфигурация при анализе перестала соответствовать текущей. В таких ситуациях нужно проверить, что именно дало различия. Если таких различий следовало ожидать, то эту конфигурацию можно сделать текущей эталонной для последующего анализа, в противном случае нужно исправить ошибку. www.viva64.com
  • 14. Состояния ячеек по завершению анализа Самым неопределенным состоянием по завершению анализа может быть состояние “Fail”. Это состояние, по которому нельзя понять, были ли различия или нет. Состояние «Fail» означает, что анализ завершился неудачей из-за внутренних исключений, которые иногда возникают в Visual Studio в установленных расширениях. В таком случае может помочь повторный запуск. www.viva64.com
  • 15. Конфигурация решений Стоит упомянуть про то, что у каждого решения существует конфигурация, от которой зависит запуск анализатора. Как правило, он задается при установке и более не меняется. Однако можно видеть, что некоторые проекты поддерживают запуск только для определенных версий Visual Studio. К примеру, для решения GuiBaker единственной поддерживаемой версией будет Visual Studio 2010. Этим и объясняется существование состояния «Not supported» www.viva64.com
  • 16. Меню У программы есть единственное меню, предназначенное для выбора сеансов запуска. Если сеансов запуска анализатора еще не было, можно только видеть кнопку «Erase All», которая будет недоступна. Если были сеансы анализа эта кнопка станет доступной и удалит все существующие сеансы запусков www.viva64.com
  • 17. Меню При первом запуске в меню добавится пункт, соответствующий текущему запуску анализа. Он будет подсвечен, однако само меню станет недоступным, пока текущий сеанс анализа не завершится или не будет отменен. Название пункта меню состоит из строки даты и времени для текущей локали и имени текущего, вошедшего в систему, пользователя в скобках www.viva64.com
  • 18. Меню При завершении или остановке текущего сеанса анализа ячейки меню становятся доступными для выбора. www.viva64.com
  • 20. Окна предупреждений В приложении можно периодически наблюдать окна предупреждений. Такие окна могут быть двух типов: окна, возникающие при ошибках в работе анализатора и окна самого приложения. На данной картинке показано окно, сгенерированное Visual Studio, которое свидетельствует о том, что команда TestRun не является допустимой для данной версии. Это может говорить о том, что подключаемое расширение не было зарегистрировано для данной версии. www.viva64.com
  • 21. Окна предупреждений На данной картинке показано окно предупреждения самого приложения. Оно говорит нам о том, что не было выбрано ни одного решения для запуска. www.viva64.com
  • 22. Графическое состояние запуска В приложении предусмотрены графические состояния запуска. Они расположены в нижнем левом углу окна и могут быть полезны для наглядности. К примеру, на данном изображении можно увидеть, что сеанс анализа был пройден, остановлен, запущен, но пока не дал никаких различий. www.viva64.com
  • 23. Графическое состояние запуска Данное изображение показывает, что анализ запущен в данный момент, но уже есть проекты, которые дали различия для текущей эталонной конфигурации. www.viva64.com
  • 24. Графическое состояние запуска Данное изображение показывает, что текущий сеанс анализа был завершен или остановлен, и дал различия для двух проектов www.viva64.com
  • 25. В состоянии запуска можно видеть прогресс www.viva64.com
  • 26. Вызов Visual Studio При двойном щелчке на выбранной ячейке сетки можно вызвать открытие проекта в Visual Studio. www.viva64.com
  • 27. Панель с кнопками Для различных манипуляций с тестовыми запусками предусмотрена панель с кнопками. Слева направо: • Кнопка Run предназначена для запуска/останова анализа для текущих выбранных решений; • Кнопка Log позволяет открыть HTML-лог для просмотра различий для текущего выбранного сеанса; • Кнопка Diff позволяет открывать выбранные решения с различиями в Visual Studio; • Кнопка Apply Results позволяет заменять эталонные конфигурации текущими для выбранных решений; www.viva64.com
  • 28. Панель с кнопками Панель с кнопками может находится в состоянии запуска. При этом видно время, которое было пройдено при текущем запуске анализа. Логично предположить, что кнопка Apply Results будет в таком случае недоступной, так как некоторые результаты еще не были получены. www.viva64.com
  • 29. Запуск Visual Studio Кнопка, способная открывать решения в Visual Studio сделана для удобства открытия нескольких решений. Однако, запуск нескольких экземпляров Visual Studio может быть довольно длительным процессом, поэтому было предусмотрено статус- окно, которое не блокирует пользовательский интерфейс при открытии нескольких экземпляров Visual Studio www.viva64.com