Paper Only – Presentation Cancelled
Sundaresan Nagarajan, McAfee/Intel
There are a number of challenges in software, especially in its effective testing and the software maintenance problems. Can there be something done to improve the testing efficiency and help deal with the software maintenance problems? This paper presents a case that software analytics based on a storage-based approach can help deal with these issues. This database storage-based system along with simple graph-based queries, applies to different types of software, platforms, domains and also to complex multi-tier software.
This system works by making use of a lower level view of the software and mapping it to high level user-domain features and tasks with the help of a database. For example, when a test case is executed, the test case gets tagged to the path traversed by it in the structural graph of the software which is stored in a database. The objective is to exploit the inherent knowledge present in the software to improve its quality. There are two parts in this solution: a minimal database-based storage layer that acts as a base for overlay applications which solve a specific problem. There are two such overlay applications discussed here: parallelized testing and automated root-cause analysis.
The minimal storage layer consists of a relational database which is populated with both static and runtime behavior of the software. This storage layer is queried by overlay applications working on graph based queries to solve a specific problem like: the right set of test cases to execute for a bug/feature, parallel testing (concurrent execution of test cases), root-cause analysis for a bug or test case design.
Some of the benefits of this system are that it helps right from software development testing to software maintenance post release. The relational database which is part of the storage layer matures with time based on testing done and issues found in the field deployment which is looped back into the system. As we close the loop with every issue found in the field and testing of the software, the system gets better as new software features and fixes are introduced. Some of the other benefits of this system are identifying parallel test cases so that better understanding and more efficient testing is possible, and also efficient and accurate root cause analysis based on depth querying and graph traversal algorithms. It is a step towards automated root cause analysis.
On the whole, the storage approach captures the dynamic relational knowledge of software and its execution. The silos of information, that is code logic at different layers of the software, are brought together in a relational database to make a combined sense. This offers greater insight into the software, thus increasing its efficacy.