Checking the reliability of computer software can be a laborious task. Programmers and computer scientists often inspect programs line by line, going over every piece of data, to ensure functions are carried out properly. Software testing is time-consuming and can take months or years, even using special software to confirm a program works.
A team of Swiss computer scientists hopes to improve the software testing process. A new program uses automated reasoning tools instead of standard validating software. The program improves the inductive reasoning capabilities of verification software by having code examine subgoals within larger programs rather than looking at the software as a whole. When the new verification software looks at smaller chunks of a program, problems get solved faster as programmers learn more quickly where breakdowns occur.
The problem with previous verification programs lies in mathematical induction, a term that refers to mathematical theorems that may have large answers. Instead of looking at the endpoint of a theorem to see if that aspect of the program works correctly, the Swiss team's new software testing examines the theorem at every step to ensure the final outcome is correct. Before this advance, humans would have to examine subsets of programs for reliability. The new program helps take theoretical aspects of programming to produce real-life results. The automated reasoning catches bugs in software and hardware, making computers more reliable. This technology can save lives when applied to air traffic controls, medical computers and health monitors.
The ability to have automated programs perform tasks that humans would otherwise do saves time, effort and even errors. Whereas human eyes and brains make mistakes, computers can catch mathematical errors much more quickly and efficiently. Software testing with these new kinds of verification programs will save time in beta testing that often relies on dozens, if not hundreds, of people working on the same project. Software rolls out to market faster, becomes more reliable and quality control is improved. The Swiss team hopes the new testing program allows more complexity within theorems and proofs that drive new developments in software.
Imagine a company such as AT&T that needs software testing for its new customer complaint program. Instead of waiting months or years for a new product to help its employees to better solve problems, the company gets its new software within weeks. AT&T then saves time, money and even customers by making problem solvers out of its employees faster than before. Since real-time data has become the lifeblood of large businesses, the usefulness of the Swiss project is clear.
Software testing has some automated components already. However, any new advance reduces errors, saves staff time and makes better overall products. Companies should look for better results from software companies down the line once this new Swiss program improves the efficiency of the beta-testing process.
Photo courtesy of Stuart Miles at FreeDigitalPhotos.net