ABSTRACT
Highly configurable software, such as web browsers,databases or office applications, have a large number of preferences that the user can customize, but documentation of them may be scarce or distributed. A user, tester or service technician may have to search through hundreds or thousands of choices in multiple documents when trying to identify which preference will modify a particular system behavior. In this paper we present PrefFinder, a natural language framework that finds (and changes) user preferences. It is tied into an application's preference system and static documentation. We have instantiated PrefFinder as a plugin on two open source applications, and as a stand-alone GUI for an industrial application. PrefFinder finds thecorrect answer between 76-96% of the time on more than 175 queries. When compared to asking questions on a help forum or through the company's service center, we can potentially save days or even weeks of time.
- Computer acronyms list. http://www.francesfarmersrevenge.com/stuff/archive/oldnews2/computeracronyms.htm.Google Scholar
- AskLibO. http://ask.libreoffice.org/, 2014.Google Scholar
- M. Attariyan and J. Flinn. Automating configuration troubleshooting with dynamic information flow analysis. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation, OSDI, pages 1--11, 2010. Google ScholarDigital Library
- D. Binkley and D. Lawrie. Development: Information retrieval applications. In Encyclopedia of Software Engineering, pages 231--242. 2010.Google Scholar
- B. Dit, L. Guerrouj, D. Poshyvanyk, and G. Antoniol. Can better identifier splitting techniques help feature location? In International Conference on Program Comprehension (ICPC), pages 11--20, 2011. Google ScholarDigital Library
- LibreOffice. http://libreoffice.org/, 2013.Google Scholar
- E. Dumlu, C. Yilmaz, M. B. Cohen, and A. Porter. Feedback driven adaptive combinatorial testing. In International Symposium on Software Testing and Analysis, ISSTA, pages 243--253, 2011. Google ScholarDigital Library
- E. Enslen, E. Hill, L. Pollock, and K. Vijay-Shanker. Mining source code to automatically split identifiers for software analysis. In International Working Conference on Mining Software Repositories, MSR, pages 71--80, 2009. Google ScholarDigital Library
- H. Feild, D. Binkley, and D. Lawrie. An empirical comparison of techniques for extracting concept abbreviations from identifiers. In In Proceedings of IASTED International Conference on Software Engineering and Applications (SEA 2006), 2006.Google Scholar
- Ispell. http://www.gnu.org/software/ispell/.Google Scholar
- E. Hill, Z. P. Fry, H. Boyd, G. Sridhara, Y. Novikova, L. Pollock, and K. Vijay-Shanker. AMAP: Automatically mining abbreviation expansions in programs to enhance software maintenance tools. In International Working Conference on Mining Software Repositories (MSR), pages 79--88, 2008. Google ScholarDigital Library
- M. J. Howard, S. Gupta, L. Pollock, and K. Vijay-Shanker. Automatically mining software-based semantically-similar words from comment-code mappings. In Working Conference on Mining Software Repositories, May 2013. Google ScholarDigital Library
- D. Jin. Improving Preference Recommendation and Customization in Real World Highly Configurable Software Systems. Master's thesis, University of Nebraska-Lincoln, Lincoln, NE, USA, August 2014.Google Scholar
- D. Jin, X. Qu, M. B. Cohen, and B. Robinson. Configurations everywhere: Implications for testing and debugging in practice. In International Conference on Software Engineering Companion Volume, Software Engineering in Practice, SEIP, pages 215--224, 2014. Google ScholarDigital Library
- C. H. P. Kim, D. Marinov, S. Khurshid, D. Batory, S. Souto, P. Barros, and M. D'Amorim. SPLat: Lightweight dynamic analysis for reducing combinatorics in testing configurable systems. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pages 257--267, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- S. E. Kristian Wiklund, Daniel Sundmark and K. Lundqvist. Impediments for automated testing - an empirical analysis of a user support discussion board. In International Conference on Software Testing, Verification and Validation. IEEE, 2014. Google ScholarDigital Library
- J. Liebig, A. von Rhein, C. Kästner, S. Apel, J. Dörre, and C. Lengauer. Scalable analysis of variable software. In Proceedings of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 81--91, New York, NY, 8 2013. Google ScholarDigital Library
- A. D. Lucia, F. Fasano, R. Oliveto, and G. Tortora. Recovering traceability links in software artifact management systems using information retrieval methods. ACM Transactions on Software Engineering and Methodology, 16(4), Sept. 2007. Google ScholarDigital Library
- C. D. Manning, P. Raghavan, and H. Schütze. Introduction to Information Retrieval. Cambridge University Press, New York, NY, USA, 2008. Google ScholarCross Ref
- C. McMillan, M. Grechanik, D., C. Fu, and Q. Xie. Exemplar: A source code search engine for finding highly relevant applications. IEEE Transactions on Software Engineering, 38(5):1069--1087, Sept. 2012. Google ScholarDigital Library
- G. A. Miller. WordNet: A lexical database for english. Communications of the ACM, 38:39--41, 1995. Google ScholarDigital Library
- mozdev.org. http://preferential.mozdev.org/preferences.html, 2014.Google Scholar
- XPCOM. https://developer.mozilla.org/en-US/docs/XPCOM.Google Scholar
- Mozilla Support. https://support.mozilla.org/, 2013.Google Scholar
- mozillaZine Knowledge Base. http://kb.mozillazine.org/Knowledge_Base, 2014.Google Scholar
- A. Panichella, C. McMillan, E. Moritz, D. Palmieri, R. Oliveto, D. Poshyvanyk, and A. D. Lucia. When and how using structural information to improve IR-Based traceability recovery. In European Conference on Software Maintenance and Reengineering, CSMR, pages 199--208, 2013. Google ScholarDigital Library
- X. Qu, M. Acharya, and B. Robinson. Impact analysis of configuration changes for test case selection. In International Symposium on Software Reliability Engineering, ISSRE, pages 140--149, 2011. Google ScholarDigital Library
- X. Qu, M. B. Cohen, and G. Rothermel. Configuration-aware regression testing: an empirical study of sampling and prioritization. In International Symposium On Software Testing and Analysis, pages 75--86, 2008. Google ScholarDigital Library
- A. Rabkin and R. Katz. Precomputing possible configuration error diagnoses. In International Conference on Automated Software Engineering (ASE), pages 193--202, nov 2011. Google ScholarDigital Library
- A. Rabkin and R. Katz. Static extraction of program configuration options. In International Conference on Software Engineering, ICSE, pages 131--140, 2011. Google ScholarDigital Library
- E. Reisner, C. Song, K.-K. Ma, J. S. Foster, and A. Porter. Using symbolic evaluation to understand behavior in configurable software systems. In International Conference on Software Engineering, ICSE, pages 445--454, 2010. Google ScholarDigital Library
- B. Robinson and L. White. Testing of user-configurable software systems using firewalls. International Symposium on Software Reliability Engineering, ISSRE, pages 177--186, Nov. 2008. Google ScholarDigital Library
- G. Salton and C. Buckley. Term-weighting approaches in automatic text retrieval. In Information Processing and Management, pages 513--523, 1988. Google ScholarDigital Library
- D. Shepherd, Z. P. Fry, E. Hill, L. Pollock, and K. Vijay-Shanker. Using natural language program analysis to locate and understand action-oriented concerns. In International Conference on Aspect-oriented Software Development, pages 212--224, 2007. Google ScholarDigital Library
- C. Song, A. Porter, and J. S. Foster. iTree: efficiently discovering high-coverage configurations using interaction trees. In The International Conference on Software Engineering, ICSE, pages 903--913, 2012. Google ScholarDigital Library
- H. Srikanth, M. B. Cohen, and X. QU. Reducing field failures in system configurable software: Cost-based prioritization. In International Symposium on Software Reliability Engineering, ISSRE, pages 61--70, Nov 2009. Google ScholarDigital Library
- K. T. Stolee and S. Elbaum. Toward semantic search via SMT solver. In International Symposium on the Foundations of Software Engineering (FSE), pages 25:1--25:4, 2012. Google ScholarDigital Library
- Y. Su, M. Attariyan, and J. Flinn. AutoBash: Improving configuration management with operating system causality analysis. SIGOPS Operating Systems Review, 41(6):237--250, Oct. 2007. Google ScholarDigital Library
- Sun Microsystems. OpenOffice.org 3.1 Developer's Guide. Sun Microsystems, 2009.Google Scholar
- A. Whitaker, R. S. Cox, and S. D. Gribble. Configuration debugging as search: Finding the needle in the haystack. In Proceedings of the 6th Conference on Symposium on Operating Systems Design & Implementation - Volume 6, OSDI, pages 77--90, 2004. Google ScholarDigital Library
- Y. Xiong, A. Hubaux, S. She, and K. Czarnecki. Generating range fixes for software configuration. In International Conference on Software Engineering, ICSE 2012, pages 58--68, 2012. Google ScholarDigital Library
- C. Yilmaz, M. B. Cohen, and A. Porter. Covering arrays for efficient fault characterization in complex configuration spaces. IEEE Transactions on Software Engineering, 31(1):20--34, Jan 2006. Google ScholarDigital Library
- Z. Yin, X. Ma, J. Zheng, Y. Zhou, L. N. Bairavasundaram, and S. Pasupathy. An empirical study on configuration errors in commercial and open source systems. In Symposium on Operating Systems Principles, SOSP, pages 159--172, 2011. Google ScholarDigital Library
- S. Zhang and M. D. Ernst. Automated diagnosis of software configuration errors. In International Conference on Software Engineering, ICSE, pages 312--321, 2013. Google ScholarDigital Library
- S. Zhang and M. D. Ernst. Which configuration option should I change? In International Conference on Software Engineering, ICSE, pages 152--163, 2014. Google ScholarDigital Library
Index Terms
- PrefFinder: getting the right preference in configurable software systems
Recommendations
JUSTGen: Effective Test Generation for Unspecified JNI Behaviors on JVMs
ICSE '21: Proceedings of the 43rd International Conference on Software EngineeringJava Native Interface (JNI) provides a way for Java applications to access native libraries, but it is difficult to develop correct JNI programs. By leveraging native code, the JNI enables Java developers to implement efficient applications and to reuse ...
JUSTGen: effective test generation for unspecified JNI behaviors on JVMs
ICSE '21: Proceedings of the 43rd International Conference on Software Engineering: Companion ProceedingsJava Native Interface (JNI) provides a way for Java applications to access native libraries, but it is difficult to develop correct JNI programs. By leveraging native code, the JNI enables Java developers to implement efficient applications and to reuse ...
MAJOR: rapid tool development with aspect-oriented programming
PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in JavaThe use of low-level techniques, such as bytecode instrumentation to develop tools for profiling, debugging, testing, and reverse engineering is error-prone, time-consuming, and therefore costly. As a solution to these problems, we promote high-level ...
Comments