Hunting For (Software) Bugs
If you know how to type, you’ve probably made a typo at some point. Normally it’s no big deal. But imagine you’re a computer programmer, churning out line after line of code. That’s when a simple typo can create a “bug” – or defect – with significant repercussions. But researchers from Microsoft Research and North Carolina State University haveteamed togetherto come up with more efficient ways for programmers to check their work, so that these bugs can be identified and corrected.
Finding bugs in programming code is important, because they can result in reliability issues – or even security concerns, if a bug presents an opening that hackers can take advantage of. One way to find these bugs is called dynamic symbolic execution, which attempts to explore every potential pathway that can be taken in a program.
Which brings us toPex, a software testing tool developed by Microsoft Research that uses dynamic symbolic execution to check a software program’s code for potential bugs. Pex, like all dynamic symbol execution efforts, is facing a significant challenge, called the Path Explosion Problem (I love that name).
Basically, the problem is that there can be a virtually infinite number of pathways in a given code, making it almost impossible to explore all of them.
输入谢道,一个计算机科学家在数控状态,nd his research team. Xie worked with Microsoft Research to develop new smart search strategies that can identify the pathways that will most efficiently explore a program’s code. What makes the strategies so effective is the fact that they are dynamic and guided: as soon as part of the code has been explored, the search strategies modify themselves to focus on the elements of the code that have not been tested. In other words, the strategies update themselves to find the most efficient way of tackling whatever parts of the code are left – they try to avoid focusing on parts of the program that they have already tested.
Ultimately, the strategies are helping programmers identify bugs in their code much more efficiently and effectively – which, in turn, saves time and money. Xie and his collaborators from Microsoft Researchpublished their findingsinProceedings of the 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. The smart strategies have already been incorporated into Pex, which was published as part of Microsoft’s Visual Studio 2010 Power Tools.
“Partnering with Microsoft Research meant that we were helping to solve real-world problems that are important to industry,” Xie says. “It also gave us access to industrial-strength software tools, and led to a partnership that allowed us to build on those tools.”
- Categories:

I love the picture of the real bug. Software de bugging is such a drawn out task. When you think you have eliminated one problem, another offen pops up. Unfortunately this is the nature of software. Great post.
You rock…keep up the great work.
Great article Matt.
While reading through the first few lines, for some strange reason Microsoft came to my mind?
It’s actually refreshing to read that Microsoft are trying to tackle the problem of software bugs head on.