Belief Networks as Approximated Models for Testing the Design in Production
Atkinson, Timothy James
MetadataShow full item record
A software design methodology is proposed involving the development of approximate models based on reputation systems and Bayesian Networks capturing probabilistic representations of expected behavior, which are further used in developing and running tests that can dynamically diagnose bugs and attacks during production. While automation of the Software Design itself is still a very remote goal, it can already benefit from AI tools and ideas. One of the main challenges with automating software design methods, for any product with modest complexity, is the mere intractability of enumerating all requirements of the product usage, when also taking into account all (including malicious) user intentions, leading to the intractability of generating exact design specifications and exhaustive tests. We show how approximate models of the design can exploit AI techniques to represent the system sufficiently well to derive meaningful tests, warning when the environment is not behaving as designed and detecting both bugs and attacks. We also show how the Bayesian models can be converted into reputation models. We validate the proposed methodologies with two different applications: a device driver for Wi-Fi Direct, and a website, MindBlog.com. In the Wi-Fi Direct use case, we successfully build simple classic Bayesian networks using expert knowledge, further transforming some Bayesian networks into reputation networks. In the MindBlog.com use case, we show that the procedure is flexible and can even detect when the developers found bugs and were attempting to debug their application yielding anomalous behavior. Our methodology not only extends comparative A/B testing by allowing the engineer to know what design element did not match the user expectations; but also informs the engineer in real time when the user's expectations have changed away from the original design. Thus it enables the engineer to be proactive in addressing such user expectation changes. Furthermore, by using Bayesian networks we can focus on only the design elements that give use concern helping both with the communication of high level desired properties and with testing of deviations.