Many organizations are moving toward agile and continuous development methodologies, which accelerate the programming process and bring products to market much faster. To meet new demands in terms of speed, companies need to implement more automated tools such as static analysis software, and build quality assurance components such as peer code review into their development process in a smarter way to reduce production bottlenecks.
“In the agile world, development, test and operations teams can no longer work in silos. They need to work collaboratively to reduce development time without sacrificing quality – or users will be just as agile in switching to a competitor,” Michael Allen, director of application performance management at Compuware, told Computer Weekly contributor Adrian Bridgwater. “All this demands a continuous quality assurance process across the delivery chain, combining production environment tests with real world feedback and cloud-based testing. Automating this process will ensure problems are discovered early on with sufficient detail and context to eliminate any guesswork.”
In practice, this shift in approach can mean a few things: Vendors can benefit from using static analysis software early on to check for errors, and they can also find value in seeking out more efficient methods to deploy approaches such as static analysis and peer code review. For instance, rather than treating every line of code as equally likely to contain a bug, development teams can focus on the riskiest or most critical parts of a program, including new code, legacy code undergoing major changes and code governing key features, one development expert told the source. Particularly in tight agile cycles, development teams may only be able to fully test portions of the code, so focusing on the places where flaws may be the most serious is essential.
Testing earlier in the lifecycle
One of the great advantages of static analysis software is that it allows developers to test code and search for bugs well before the code is operational, software build consultant Andrew Yang wrote in an article for Embedded.com. Developers can catch flaws early on, and they can both run tests and implement feedback from them very quickly. It should be possible to analyze a typical day’s worth of development work in tens of minutes, and developers should be analyzing and fixing code multiple times before check-in. Additionally, as opposed to testing functionality, static analysis makes it easy to identify the specific places where problems are occurring.
“[Source code analysis] also finds problems right in the source code, pointing to the specific line in the code to where the problem exists,” Yang wrote. “It doesn’t get much easier to identify and fix problems. By contrast, fixing a bug reported in the field often requires a good testcase and a debugging process to locate the specific problem. It can take days to find and fix a bug.”
Static analysis can also help give an early picture of how different components of software will integrate with each other, Yang noted. And there’s substantial benefit to working out performance issues before the end of development or the continuous integration process, according to Mark Warren, an executive at version management tool firm Perforce. He told Bridgwater that if quality assurance only occurs during the final stages of a project, it becomes more difficult for a developer to fix, driving up costs and causing delays. By adopting more foresight when planning development and testing, companies can ensure their agile methodology runs smoothly and that testing approaches support an agile framework rather than holding it back.
Software news brought to you by Klocwork Inc., dedicated to helping software developers create better code with every keystroke.