SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Changes in programmer tools'
infrastructure
Author: Andrey Karpov

Date: 26.04.2010


Abstract
The article describes some observations concerning changes in the infrastructure of tools used by
programmers in everyday work. First of all, these changes are related to the release of Visual Studio
2010.


Introduction
A set of tools used by developers is regularly updated. Some absolutely new tools appear, others
become obsolete and some others stop being developed and are displaced with more perfect
analogues. It is rather interesting to watch this process and I decided to share some of my latest
observations in this sphere with you.

I would like to notice right away that I stick to the viewpoint that the fewer diverse tools one uses, the
better. I am ready to be criticized for minimalism in functionality. My viewpoint is disputable but still has
the right to exist.


Automated testing
Some functionality, that has been earlier available only in third-party tools, is gradually moving into
development environments, in particular Visual Studio. But in the mind of developers, this functionality
is still associated only with third-party tools. For example, consider the system of automated testing of
user application interface that appeared in Visual Studio 2010 Premium/Ultimate which lets you avoid
such tools as AutomatedQA TestComplete or Borland SilkTest in many cases.

Please do not get me wrong. I in no way persuade you to refuse using an existing test base and hurry to
move to the testing system integrated into Visual Studio 2010. And I by no means want to persuade you
to use it. TestComplete is one of the most powerful commercial products intended for automation of
software testing. But if you use Visual Studio 2010 and have to decide what automated testing system to
choose for the new project, I think you should not go very far. If you do not need specific features during
testing, you will not have to buy and employ additional systems besides Visual Studio 2010.

We use the user interface testing system of Visual Studio to test the PVS-Studio interface. We were
concentrated more on testing internal units before, but as the interface component was developing, we
faced the task of moving from manual testing to automated testing. However, our demands are rather
modest and we are content that we have chosen the testing system of Visual Studio. Figures 1 and 2
show some windows of the Visual Studio testing system while working.
Figure 1 - Writing of user's actions in Visual Studio
Figure 2 - The tree of controls in Visual Studio

The conclusion is it is useful to study the innovations in the toolkit you are already using. If your
demands to testing lie within the standards, perhaps you will find the functionality of Visual Studio quite
enough when developing new projects. Therefore, the number of entities (tools) you have to deal with
will not rise - and this is always good.


Code editor
Like with testing, it is the same with the assistant - Visual Assist. I remember how good it was to work
with it when we used Visual Studio 6.0. But many people say that this tool is useful without knowing or
noticing the contemporary capabilities of the latest Visual Studio versions. Most of the features I
appreciated in Visual Assist have been gradually implemented in Visual Studio. Beginning with Visual
Studio 2008, I understood that I could well do without Visual Assist and stopped using it. As Visual
Studio 2010 was released, Visual Assist became absolutely irrelevant for me.

I agree that Visual Assist has some functions that will never be included into Visual Studio. And I am sure
that somebody might find these functions very important or simply convenient and useful. There are a
lot of people for whom Visual Assist does not become less important at all but grows even more
indispensable. But personally I used very few features and did not need more. Now these needs are
quite satisfied with Visual Studio environment. Let me show you some examples arming myself with
Visual Studio 2010.

There is the function of syntax paint. Though it is not so colorful as in Visual Assist, it is still rather
pleasant and sufficient for me. If take into account the underlining of syntactical errors, it is just quite
good (see Figure 3).




       Figure 3 - Highlighting of code in Visual Studio 2010 and underlining of incorrect constructs

The help system of function parameter prompting and name prompting by the first characters of name
works quite well (see Figures 4 and 5):




                      Figure 4 - Function parameter prompting in Visual Studio 2010
Figure 5 - Function name prompting in Visual Studio 2010

There is also a feature I actually lacked for without Visual Assist. It is file name prompting. Visual Studio
2010 now has this feature (see Figure 6).




                      Figure 6 - Integrated file name prompting in Visual Studio 2010

Visual Assist helped me find my way even in a very badly edited code when it was necessary to
understand where brackets open and close. Visual Studio 2010 now also provides this function
highlighting matching parentheses as shown in Figure 7.
Figure 7 - Highlighting of matching parentheses in Visual Studio 2010

I find the Visual Studio 2010 code editor quite satisfying. Perhaps you will also look at this editor of
Visual Studio in a new way.


Static analysis
When speaking of static analysis of C++ code, programmers often have an association like this: "These
are some tools like lint that have command-line interface and are obsolete nowadays". Let us make it
out how this idea has appeared. I will not speak about companies and mature development processes
where static analysis was used before, is being used now and will be used in future. But most developers
use immature processes. One should not be ashamed of it - it is the drawback of organizations not
programmers. For them, a static analyzer is rather an exotic thing than an everyday tool integrated into
the development process.

C is a language that requires much accuracy and attention from the programmer because its own
control over actions performed in the code is very weak. A more dangerous language is rather only
assembler. Because of this, static code analysis tools appeared of which lint is the most famous
representative. This tool and all the other similar ones have been used rather widely due to the absence
of alternative means to detect errors at the stage of coding. They were relevant for the cycles of
development of programs with any maturity level.

The new language C++ has become much safer due to a stricter level of control over types and other
innovations. Compilers for C and C++ started to generate warnings on many potentially dangerous
constructs. They have actually undertaken the functions of existing static analyzers, and the latter
became less popular. Many refused to use the additional analysis level provided by third-party tools at
that moment.

However, static analyzers have not become obsolete at all. They have learned to detect many kinds of
errors referring to object-oriented programming, warn the programmer about incorrect use of libraries
(for example, Qt) and even find errors in parallel programs. The conclusion is static analyzers, as before,
let the programmer greatly reduce costs at the stage of testing and maintenance. What is good,
nowadays these are usually not separate tools but units integrating into the development environment.
I would like to point out that it is the opinion itself that static analyzers are command
                                                                                  command-line solutions
which is obsolete. Static analyzers are contemporary tools that greatly supplement standard capabilities
                                          contemporary
of the compiler and other tools of improving software quality.

For an example, let us again look at Visual Studio. Beginning with Visual Studio 2005, the Team System
version includes a generally-purpurpose subsystem of static analysis Code Analysis Although this system is
                                                                          Analysis.
an extension, it is tightly integrated into the environment and working with its diagnostic warnings is the
same as with messages generated by the compiler (see Figure 8).
                              nerated




                      Figure 8 - Settings tab in Code Analysis in Visual Studio 2010

There is another type of static analyzers - specialized analyzers. For example, it is PVS-Studio analyzer
we are developing which also tightly integrates into Visual Studio (see Figure 9) and allows you to detect
many errors in 64-bit and OpenMP programs.
                   bit
Figure 9 - Integration of PVS-Studio into Visual Studio 2010

Contemporary static analyzers are user friendly programs that may be operated both by professionals
and beginners.


Dynamic analysis
When speaking of a dynamic analyzer to search for errors of memory operation, first of all, everybody
remembers about the tool DevPartner BoundsChecker Suite. But I would like to restrain the ardor of its
supporters and those who recommend it in forums. Surely, it has been a great and indispensable tool
during a long time. Unfortunately, this project is not being developed now and is quickly becoming
obsolete. For example, BoundsChecker does not support Win64 applications. It can be launched in the
64-bit environment and check 32-bit applications but it cannot work with 64-bit applications. Here is a
quotation from the booklet: "DevPartner Studio supports 32-bit application development on 64-bit
Windows (WOW 64)".

A lag like this is not permitted for testing tools. Fortunately, BoundsChecker and other dynamic analysis
tools have been replaced with a new titan it is best to focus on. We speak about the tool Intel Parallel
Inspector included into Intel Parallel Studio.

Intel Parallel Studio integrates into Visual Studio (see Figure 10) and adds the function of checking
memory and thread operations. Checking memory in Intel Parallel Inspector includes check of memory
leak, detection of pointers referring to a remote object, detection of operations with uninitialized
variables. Intel Parallel Inspector allows you to detect use of incorrect references to memory chunks,
controls the stack and so on. Thread testing includes check of race conditions, mutexes, call stack
analysis with adjustable depth.
Figure 10 - Setting the diagnosis level in Intel Parallel Inspector

What is the most pleasant, you can analyze programs built both with Intel C++ and Visual C++. There is
also support for Win32 and Win64 software analysis. Intel Parallel Studio is being stably developed, it is
not very expensive and you may safely use it for long terms.


Summary
The infrastructure of programmer tools is constantly changing. You may both find new, more
convenient, solutions and stop using some obsolete ones (if they are not developed anymore). By the
way, there are special workers (and even departments) in large companies whose only work is to watch
the development of the tools being used in the development process.

Más contenido relacionado

La actualidad más candente

Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testingVikrant Chauhan
 
Test driven development
Test driven developmentTest driven development
Test driven developmentnamkha87
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010guest5639fa9
 
Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010Lars Vogel
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingAnna Russo
 
Selenium notes
Selenium notesSelenium notes
Selenium noteswholcomb
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser TestingSarah Elson
 
Top 3 selenium IDE alternatives for Chrome and Firefox
Top 3 selenium IDE alternatives for Chrome and FirefoxTop 3 selenium IDE alternatives for Chrome and Firefox
Top 3 selenium IDE alternatives for Chrome and FirefoxKatalon Studio
 
Part 5 running java applications
Part 5 running java applicationsPart 5 running java applications
Part 5 running java applicationstechbed
 
MOTODEV Studio for Testing A platform testing based on Eclipse
MOTODEV Studio for Testing A platform testing based on EclipseMOTODEV Studio for Testing A platform testing based on Eclipse
MOTODEV Studio for Testing A platform testing based on Eclipsegustavoeliano
 
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...PVS-Studio
 
A journey with Target Platforms
A journey with Target PlatformsA journey with Target Platforms
A journey with Target PlatformsMickael Istria
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentChris O'Brien
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingKumari Warsha Goel
 
Testing tools in visual studio
Testing tools in visual studioTesting tools in visual studio
Testing tools in visual studioMahdi Esmailoghli
 
Igor Cernopolc - Http authentication in automated testing - presentation script
Igor Cernopolc - Http authentication in automated testing - presentation scriptIgor Cernopolc - Http authentication in automated testing - presentation script
Igor Cernopolc - Http authentication in automated testing - presentation scriptCodecamp Romania
 

La actualidad más candente (20)

Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testing
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010Eclipse 40 Labs- Eclipse Summit Europe 2010
Eclipse 40 Labs- Eclipse Summit Europe 2010
 
PVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio advertisement - static analysis of C/C++ code
PVS-Studio advertisement - static analysis of C/C++ code
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester Training
 
Selenium notes
Selenium notesSelenium notes
Selenium notes
 
17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing17 Ways to Save Time on Manual Cross Browser Testing
17 Ways to Save Time on Manual Cross Browser Testing
 
Top 3 selenium IDE alternatives for Chrome and Firefox
Top 3 selenium IDE alternatives for Chrome and FirefoxTop 3 selenium IDE alternatives for Chrome and Firefox
Top 3 selenium IDE alternatives for Chrome and Firefox
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
 
Part 5 running java applications
Part 5 running java applicationsPart 5 running java applications
Part 5 running java applications
 
Manual Vs Automation Testing
Manual Vs Automation TestingManual Vs Automation Testing
Manual Vs Automation Testing
 
MOTODEV Studio for Testing A platform testing based on Eclipse
MOTODEV Studio for Testing A platform testing based on EclipseMOTODEV Studio for Testing A platform testing based on Eclipse
MOTODEV Studio for Testing A platform testing based on Eclipse
 
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...
Using PVS-Studio analyzer together with Microsoft Visual Studio 2010 incremen...
 
A journey with Target Platforms
A journey with Target PlatformsA journey with Target Platforms
A journey with Target Platforms
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
 
Testing tools in visual studio
Testing tools in visual studioTesting tools in visual studio
Testing tools in visual studio
 
Igor Cernopolc - Http authentication in automated testing - presentation script
Igor Cernopolc - Http authentication in automated testing - presentation scriptIgor Cernopolc - Http authentication in automated testing - presentation script
Igor Cernopolc - Http authentication in automated testing - presentation script
 
10 Benefits of Automated Testing
10 Benefits of Automated Testing10 Benefits of Automated Testing
10 Benefits of Automated Testing
 

Similar a Changes in programmer tools' infrastructure

Introducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellIntroducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellAravindharamanan S
 
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-StudioComparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-StudioPVS-Studio
 
Visual Studio Ceases Support of Add-Ins in Community Previews 14
Visual Studio Ceases Support of Add-Ins in Community Previews 14Visual Studio Ceases Support of Add-Ins in Community Previews 14
Visual Studio Ceases Support of Add-Ins in Community Previews 14Andrey Karpov
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team developmentPVS-Studio
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team developmentAndrey Karpov
 
PVS-Studio Has Finally Got to Boost
PVS-Studio Has Finally Got to BoostPVS-Studio Has Finally Got to Boost
PVS-Studio Has Finally Got to BoostAndrey Karpov
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Andrey Karpov
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team developmentPVS-Studio
 
Static Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationStatic Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationAndrey Karpov
 
Introducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellIntroducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellAravindharamanan S
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...PVS-Studio
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 OverviewRoman Okolovich
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzerPVS-Studio
 
War of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlowWar of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlowPVS-Studio
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesSolstice Mobile Argentina
 
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...Andrey Karpov
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzerPVS-Studio
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010joycsc
 
The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxPVS-Studio
 

Similar a Changes in programmer tools' infrastructure (20)

Introducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellIntroducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappell
 
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-StudioComparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
Comparing static analysis in Visual Studio 2012 (Visual C++ 2012) and PVS-Studio
 
Visual Studio Ceases Support of Add-Ins in Community Previews 14
Visual Studio Ceases Support of Add-Ins in Community Previews 14Visual Studio Ceases Support of Add-Ins in Community Previews 14
Visual Studio Ceases Support of Add-Ins in Community Previews 14
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
PVS-Studio Has Finally Got to Boost
PVS-Studio Has Finally Got to BoostPVS-Studio Has Finally Got to Boost
PVS-Studio Has Finally Got to Boost
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for Linux
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Static Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to IntegrationStatic Analysis: From Getting Started to Integration
Static Analysis: From Getting Started to Integration
 
Introducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappellIntroducing visual studio_2010_v1.0--chappell
Introducing visual studio_2010_v1.0--chappell
 
Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...Static analysis is most efficient when being used regularly. We'll tell you w...
Static analysis is most efficient when being used regularly. We'll tell you w...
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzer
 
War of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlowWar of the Machines: PVS-Studio vs. TensorFlow
War of the Machines: PVS-Studio vs. TensorFlow
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
 
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
PVS-Studio Now Supports Any Build System under Windows and Any Compiler. Easy...
 
How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzer
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010
 
The Development History of PVS-Studio for Linux
The Development History of PVS-Studio for LinuxThe Development History of PVS-Studio for Linux
The Development History of PVS-Studio for Linux
 

Más 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
 

Más 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
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Changes in programmer tools' infrastructure

  • 1. Changes in programmer tools' infrastructure Author: Andrey Karpov Date: 26.04.2010 Abstract The article describes some observations concerning changes in the infrastructure of tools used by programmers in everyday work. First of all, these changes are related to the release of Visual Studio 2010. Introduction A set of tools used by developers is regularly updated. Some absolutely new tools appear, others become obsolete and some others stop being developed and are displaced with more perfect analogues. It is rather interesting to watch this process and I decided to share some of my latest observations in this sphere with you. I would like to notice right away that I stick to the viewpoint that the fewer diverse tools one uses, the better. I am ready to be criticized for minimalism in functionality. My viewpoint is disputable but still has the right to exist. Automated testing Some functionality, that has been earlier available only in third-party tools, is gradually moving into development environments, in particular Visual Studio. But in the mind of developers, this functionality is still associated only with third-party tools. For example, consider the system of automated testing of user application interface that appeared in Visual Studio 2010 Premium/Ultimate which lets you avoid such tools as AutomatedQA TestComplete or Borland SilkTest in many cases. Please do not get me wrong. I in no way persuade you to refuse using an existing test base and hurry to move to the testing system integrated into Visual Studio 2010. And I by no means want to persuade you to use it. TestComplete is one of the most powerful commercial products intended for automation of software testing. But if you use Visual Studio 2010 and have to decide what automated testing system to choose for the new project, I think you should not go very far. If you do not need specific features during testing, you will not have to buy and employ additional systems besides Visual Studio 2010. We use the user interface testing system of Visual Studio to test the PVS-Studio interface. We were concentrated more on testing internal units before, but as the interface component was developing, we faced the task of moving from manual testing to automated testing. However, our demands are rather modest and we are content that we have chosen the testing system of Visual Studio. Figures 1 and 2 show some windows of the Visual Studio testing system while working.
  • 2. Figure 1 - Writing of user's actions in Visual Studio
  • 3. Figure 2 - The tree of controls in Visual Studio The conclusion is it is useful to study the innovations in the toolkit you are already using. If your demands to testing lie within the standards, perhaps you will find the functionality of Visual Studio quite enough when developing new projects. Therefore, the number of entities (tools) you have to deal with will not rise - and this is always good. Code editor Like with testing, it is the same with the assistant - Visual Assist. I remember how good it was to work with it when we used Visual Studio 6.0. But many people say that this tool is useful without knowing or noticing the contemporary capabilities of the latest Visual Studio versions. Most of the features I appreciated in Visual Assist have been gradually implemented in Visual Studio. Beginning with Visual Studio 2008, I understood that I could well do without Visual Assist and stopped using it. As Visual Studio 2010 was released, Visual Assist became absolutely irrelevant for me. I agree that Visual Assist has some functions that will never be included into Visual Studio. And I am sure that somebody might find these functions very important or simply convenient and useful. There are a lot of people for whom Visual Assist does not become less important at all but grows even more indispensable. But personally I used very few features and did not need more. Now these needs are quite satisfied with Visual Studio environment. Let me show you some examples arming myself with Visual Studio 2010. There is the function of syntax paint. Though it is not so colorful as in Visual Assist, it is still rather pleasant and sufficient for me. If take into account the underlining of syntactical errors, it is just quite good (see Figure 3). Figure 3 - Highlighting of code in Visual Studio 2010 and underlining of incorrect constructs The help system of function parameter prompting and name prompting by the first characters of name works quite well (see Figures 4 and 5): Figure 4 - Function parameter prompting in Visual Studio 2010
  • 4. Figure 5 - Function name prompting in Visual Studio 2010 There is also a feature I actually lacked for without Visual Assist. It is file name prompting. Visual Studio 2010 now has this feature (see Figure 6). Figure 6 - Integrated file name prompting in Visual Studio 2010 Visual Assist helped me find my way even in a very badly edited code when it was necessary to understand where brackets open and close. Visual Studio 2010 now also provides this function highlighting matching parentheses as shown in Figure 7.
  • 5. Figure 7 - Highlighting of matching parentheses in Visual Studio 2010 I find the Visual Studio 2010 code editor quite satisfying. Perhaps you will also look at this editor of Visual Studio in a new way. Static analysis When speaking of static analysis of C++ code, programmers often have an association like this: "These are some tools like lint that have command-line interface and are obsolete nowadays". Let us make it out how this idea has appeared. I will not speak about companies and mature development processes where static analysis was used before, is being used now and will be used in future. But most developers use immature processes. One should not be ashamed of it - it is the drawback of organizations not programmers. For them, a static analyzer is rather an exotic thing than an everyday tool integrated into the development process. C is a language that requires much accuracy and attention from the programmer because its own control over actions performed in the code is very weak. A more dangerous language is rather only assembler. Because of this, static code analysis tools appeared of which lint is the most famous representative. This tool and all the other similar ones have been used rather widely due to the absence of alternative means to detect errors at the stage of coding. They were relevant for the cycles of development of programs with any maturity level. The new language C++ has become much safer due to a stricter level of control over types and other innovations. Compilers for C and C++ started to generate warnings on many potentially dangerous constructs. They have actually undertaken the functions of existing static analyzers, and the latter became less popular. Many refused to use the additional analysis level provided by third-party tools at that moment. However, static analyzers have not become obsolete at all. They have learned to detect many kinds of errors referring to object-oriented programming, warn the programmer about incorrect use of libraries (for example, Qt) and even find errors in parallel programs. The conclusion is static analyzers, as before, let the programmer greatly reduce costs at the stage of testing and maintenance. What is good, nowadays these are usually not separate tools but units integrating into the development environment.
  • 6. I would like to point out that it is the opinion itself that static analyzers are command command-line solutions which is obsolete. Static analyzers are contemporary tools that greatly supplement standard capabilities contemporary of the compiler and other tools of improving software quality. For an example, let us again look at Visual Studio. Beginning with Visual Studio 2005, the Team System version includes a generally-purpurpose subsystem of static analysis Code Analysis Although this system is Analysis. an extension, it is tightly integrated into the environment and working with its diagnostic warnings is the same as with messages generated by the compiler (see Figure 8). nerated Figure 8 - Settings tab in Code Analysis in Visual Studio 2010 There is another type of static analyzers - specialized analyzers. For example, it is PVS-Studio analyzer we are developing which also tightly integrates into Visual Studio (see Figure 9) and allows you to detect many errors in 64-bit and OpenMP programs. bit
  • 7. Figure 9 - Integration of PVS-Studio into Visual Studio 2010 Contemporary static analyzers are user friendly programs that may be operated both by professionals and beginners. Dynamic analysis When speaking of a dynamic analyzer to search for errors of memory operation, first of all, everybody remembers about the tool DevPartner BoundsChecker Suite. But I would like to restrain the ardor of its supporters and those who recommend it in forums. Surely, it has been a great and indispensable tool during a long time. Unfortunately, this project is not being developed now and is quickly becoming obsolete. For example, BoundsChecker does not support Win64 applications. It can be launched in the 64-bit environment and check 32-bit applications but it cannot work with 64-bit applications. Here is a quotation from the booklet: "DevPartner Studio supports 32-bit application development on 64-bit Windows (WOW 64)". A lag like this is not permitted for testing tools. Fortunately, BoundsChecker and other dynamic analysis tools have been replaced with a new titan it is best to focus on. We speak about the tool Intel Parallel Inspector included into Intel Parallel Studio. Intel Parallel Studio integrates into Visual Studio (see Figure 10) and adds the function of checking memory and thread operations. Checking memory in Intel Parallel Inspector includes check of memory leak, detection of pointers referring to a remote object, detection of operations with uninitialized variables. Intel Parallel Inspector allows you to detect use of incorrect references to memory chunks, controls the stack and so on. Thread testing includes check of race conditions, mutexes, call stack analysis with adjustable depth.
  • 8. Figure 10 - Setting the diagnosis level in Intel Parallel Inspector What is the most pleasant, you can analyze programs built both with Intel C++ and Visual C++. There is also support for Win32 and Win64 software analysis. Intel Parallel Studio is being stably developed, it is not very expensive and you may safely use it for long terms. Summary The infrastructure of programmer tools is constantly changing. You may both find new, more convenient, solutions and stop using some obsolete ones (if they are not developed anymore). By the way, there are special workers (and even departments) in large companies whose only work is to watch the development of the tools being used in the development process.