Recommender systems for manual testing

BACKGROUND: Software testing can be an arduous and expensive activity. A typical activity to maximise testing productivity is to allocate test cases according to the testers' profile. However, optimising the allocation of manual test cases is not a trivial task: in big companies, test managers are responsible for allocating hundreds of test cases among several testers. OBJECTIVE: In this paper we propose and evaluate 2 assignment algorithms for test case allocation and 3 tester profiles based on recommender systems. Each assignment algorithm can be combined with 3 tester profiles, which results in six possible allocation systems. METHOD: We run a controlled experiment that uses 100 test suites, each one with at least 50 test cases, from a real industrial setting in order to compare our allocation systems to the manager's allocation in terms of precision, recall and unassignment (percentage of test cases the algorithm could not allocate). RESULTS: In our experiment, the statistical analysis shows that one of the systems outperforms the others with respect to the precision and recall metrics. For unassignment, three of our six allocation systems achieved zero (best value) for the unassignment rate. CONCLUSION: The results of our experiment suggest that, in similar environments, test managers can use our allocation systems to reduce the amount of time spent in the test case allocation task. In the real industrial setting in which our work was developed, managers spend from 16 to 30 working days a year on test case allocation. Our algorithms can help them do it faster and better.

[1]  Gerhard Friedrich,et al.  Recommender Systems - An Introduction , 2010 .

[2]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[3]  Abraham Kandel,et al.  Artificial intelligence methods in software testing , 2004 .

[4]  Edwin Diday,et al.  An introduction to symbolic data analysis and the SODAS software , 2003, Intell. Data Anal..

[5]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[6]  Elaheh Pourabbas,et al.  Content based similarity of geographic classes organized as partition hierarchies , 2008, Knowledge and Information Systems.

[7]  Juan Enrique Ramos,et al.  Using TF-IDF to Determine Word Relevance in Document Queries , 2003 .

[8]  Mark S. Ackerman,et al.  Expertise recommender: a flexible recommendation system and architecture , 2000, CSCW '00.

[9]  M. Kendall Elementary Statistics , 1945, Nature.

[10]  Glêdson Elias da Silveira,et al.  A recommendation framework for allocating global software teams in software product line projects , 2010, RSSE '10.

[11]  Giuliano Antoniol,et al.  Not all classes are created equal: toward a recommendation system for focusing testing , 2008, RSSE '08.

[12]  George B. Dantzig,et al.  Linear Programming 1: Introduction , 1997 .

[13]  Nancy G. Leveson,et al.  An investigation of the Therac-25 accidents , 1993, Computer.

[14]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[15]  Cem Kaner,et al.  Testing Computer Software, Second Edition , 1993 .

[16]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

[17]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[18]  Yuriy Brun,et al.  Finding latent code errors via machine learning over program executions , 2004, Proceedings. 26th International Conference on Software Engineering.

[19]  Victor R. Basili The Role of Controlled Experiments in Software Engineering Research , 2006, Empirical Software Engineering Issues.

[20]  Mehdi T. Harandi,et al.  Workshop on software specification and design , 1988, SOEN.

[21]  Thomas Zimmermann,et al.  Improving bug triage with bug tossing graphs , 2009, ESEC/FSE '09.

[22]  Rex Black,et al.  Foundations of Software Testing ISTQB Certification , 2006 .

[23]  Paul Ralph,et al.  A Framework for Automatic Online Personalization , 2006, Proceedings of the 39th Annual Hawaii International Conference on System Sciences (HICSS'06).

[24]  Guy Shani,et al.  Evaluating Recommendation Systems , 2011, Recommender Systems Handbook.

[25]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[26]  Zhenmin Li,et al.  PR-Miner: automatically extracting implicit programming rules and detecting violations in large software code , 2005, ESEC/FSE-13.

[27]  Benjamin Livshits,et al.  DynaMine: finding common error patterns by mining software revision histories , 2005, ESEC/FSE-13.

[28]  Alexander L. Wolf,et al.  Feature Engineering , 1998 .

[29]  Harald C. Gall,et al.  Predicting the fix time of bugs , 2010, RSSE '10.

[30]  Byron L. D. Bezerra,et al.  Symbolic data analysis tools for recommendation systems , 2011, Knowledge and Information Systems.

[31]  Audris Mockus,et al.  Expertise Browser: a quantitative approach to identifying expertise , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[32]  K. Barraclough Eclipse , 2006, BMJ : British Medical Journal.

[33]  Jonathan L. Herlocker,et al.  Evaluating collaborative filtering recommender systems , 2004, TOIS.

[34]  Paul Resnick,et al.  Recommender systems , 1997, CACM.

[35]  Vibhu O. Mittal,et al.  Stemming and its effects on TFIDF ranking (poster session) , 2000, SIGIR '00.

[36]  Gail C. Murphy,et al.  Recommending Emergent Teams , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[37]  Greg Lindstrom,et al.  Programming with Python , 2005, IT Professional.

[38]  Joseph A. Konstan,et al.  Introduction to recommender systems: Algorithms and Evaluation , 2004, TOIS.

[39]  Edwin Diday,et al.  Symbolic Data Analysis: Conceptual Statistics and Data Mining (Wiley Series in Computational Statistics) , 2007 .

[40]  Sophie Ahrens,et al.  Recommender Systems , 2012 .

[41]  Rex Black,et al.  Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing , 2009 .

[42]  Jennifer Vesperman Essential CVS , 2003 .

[43]  Hans-Hermann Bock,et al.  Analysis of Symbolic Data: Exploratory Methods for Extracting Statistical Information from Complex Data , 2000 .

[44]  Gail C. Murphy,et al.  Who should fix this bug? , 2006, ICSE.

[45]  Michael Pilato Version Control with Subversion , 2004 .

[46]  Mark Dowson,et al.  The Ariane 5 software failure , 1997, SOEN.

[47]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[48]  Mark Claypool,et al.  Inferring User Interest , 2001, IEEE Internet Comput..