NSP’s Virtual Target Solution (VTS) team had two kinds of issues that they searched for during code reviews in their pursuit of high quality: general coding violations and logical/design errors. Since finding and solving coding violations took so much time, the VTS team wanted to automate that portion of the code review process, so they could focus their manual code reviews on finding logical and design errors.
NSP’s Virtual Target Solution (VTS) team is made up of 15 people, and enforcing internal quality initiatives was challenging. Most of the developers were young engineers just learning NSP’s important internal quality initiatives, such as code review, scope, and range of testing. Until recently, only the two senior-level engineers performed reviews of all of the source code for any given project assigned to the team. This source code is typically between 10,000 to 12,000 lines of code.
When the VTS team found themselves working on a project with an extremely tight schedule, it was impossible for the senior developers to code review everything. As a result, an abundant number of coding errors and potential errors passed through the coding phase. This, in turn, adversely affected unit and integration tests.
Due to the high degree of difficulty that accompanied reviewing all of the source code and verifying all of the checkpoints listed in their draft QA plan, Joel Calderon, software design supervisor for NSP’s VTS team, decided to begin searching for an alternative solution to manual code reviews and writing unit tests.
NSP has a high commitment to quality and Joel was determined to stay true to that commitment. He had previously had positive experiences working with Parasoft Jtest, a solution for Java, so he turned to Parasoft C/C++test, an automated unit testing and coding standard analysis solution for C and C++.
To assist in detecting coding violations, the VTS team used Parasoft C/C++test RuleWizard. Cherry Ann Alib, a software design engineer, stated, “It’s very useful because we can customize our rules with RuleWizard for the code review and coding standards analysis.”
After putting Parasoft C/C++test to use, Joel said, “It worked wonders for detecting the coding violations.” According to Joel, the VTS team cut both the time and cost of their code reviews. Using Parasoft C/C++test has helped them get the job done within 2 to 3 hours for 8,000 to 10,000 lines of application code. Previously, the intricate manual code reviews performed by the more expensive senior-level engineers took 10 to 15 hours for the same amount of code. Now, the VTS team can entrust the task of performing automated code reviews to their most junior team members because the task only entails learning how to use the solution.
Prior to Parasoft C/C++test, performing effective manual code reviews required extensive experience in software development – often in the length of years. Joel pointed out that there are some engineers who never develop the required skills to perform effective manual code reviews. He states, “Parasoft C/C++test removes this impediment.”
For the same tightly scheduled project mentioned earlier, the VTS team had to create more than 500 unit test cases within two weeks. Cherry says of this project, “We were having a hard time creating unit test items manually. It was a tedious task, so we started looking for a tool that would automate the creation of test items.”
With Parasoft C/C++test, the VTS team greatly reduced the amount of development time that they spend writing test cases, as well as the amount of time that they spend performing unit tests and regression tests.
Parasoft C/C++test runs the tests during the night, and then the team gets the results of those tests in the morning. The reduction in time saved can also be attributed to the fact that with Parasoft C/C++test, 75-80% of errors were detected during the upstream processes (design phase up to unit test phase), leaving only 20-25% left for the downstream processes (integration testing phase to product release).
Joel says that Parasoft C/C++test enabled the VTS team to organize and streamline their quality initiatives. All of their coding rules and test requirements are concentrated in one location – their Parasoft C/C++test application – as opposed to being spread among different team members’ personal knowledge and experience. Now, everyone has a common mindset when it comes to internal quality initiatives because the team has a single, consistent set of QA parameters as defined by the built-in Parasoft C/C++test coding rules, as well as user-defined coding rules created by the team via the Coding Rule Wizard.
All team members are trained in Parasoft C/C++test, so anyone can run it. According to Joel,
“Parasoft C/C++test has made it easy to transfer knowledge to new people. reducing the negative impact when experienced developers leave and new ones come in to replace them.”
He goes on to say, “It’s easier to teach new people how to merely use the software rather than the concepts of QA and all the things that they need to know in order to adhere to those internal quality initiatives, such as code review, scope, and range of testing. Automation makes it a lot easier for us.”
As a result of Joel’s decision to start using Parasoft C/C++test, the VTS team was able to meet their client’s deadline, which they never thought they could do on such a tight schedule. What’s more, the VTS team was able to win two additional projects from this same client. Beyond the success and high quality that NSP’s clients see, the VTS team is more productive in less time. Before using Parasoft C/C++test, their average working hours ranged from 12 to 15 hours per day. Now, their norm is right at 8 hours.
“We barely have overtime work now. For example, for unit testing and even code review, we just leave it with the machine performing Parasoft C/C++test, and then we get results in the morning. Now, projects are much less stressful. C/C++test enhances the quality of our products and the quality of our lives.”
—Joel Calderon, software design supervisor
TAKE THE NEXT STEP
Learn how to leverage a comprehensive testing tool to maximize testing ROI. Download the whitepaper.