12th IEEE International Working Conference on Source Code Analysis and Manipulation
Tool automation to reduce manual effort has been an active research area in various subfields of software engineering such as software testing and analysis. To maximize the value of software testing and analysis, effective support for cooperation between engineers and tools is greatly needed and yet lacking in state-of-the-art research and practice. In particular, testing and analysis practice is in a great need of (1) effective ways for engineers to communicate their testing/analysis goals and guidance to tools and (2) tools with strong enough capabilities to accomplish the given testing/analysis goals and with effective ways to communicate challenges faced by them to engineers -- enabling a feedback loop between engineers and tools to refine and accomplish the testing/analysis goals. In addition, different tools have their respective strengths and weaknesses, and there is also a great need of allowing these tools to cooperate with each other. Similarly, there is a great need of allowing engineers (or even users) to cooperate to help tools such as in the form of crowdsourcing. A new research frontier on synergistic cooperations between human and tools, tools and tools, and human and human is yet to be explored. We have recently proposed the methodology of cooperative developer testing as initial work in this direction (e.g., Covana described in an ICSE 2011 paper). This talk presents recent advances and future trends towards cooperative testing and analysis.