In this issue
- 156 Downloads
In this issue, we have eight regular research papers. The first three regular research papers are linked by the common theme of software testing, a very important part of software quality assurance. The next two papers are related by the theme of software project risk, followed by two papers on non-functional requirements. The issue finishes with a paper on software change management.
In “An efficient regression testing approach for PHP Web applications using test selection and reusable constraints,” Ravi Eda and Hyunsook Do describe how, during regression testing, a subset of existing tests that cover modified code paths can be found. The authors show how constraint value information from an existing tool can be used to identify tests that can be reused. Their results (run on four web applications) show that this approach can be effective in reducing the cost of regression testing of web applications.
The paper “A partial oracle for uniformity statistics” by Krishna Patel and Robert M Hierons shows how to use metamorphic testing (which is based on looking for expected properties of the system under test) to address the oracle problem of checking the output of test executions for uniformity statistics (which show the extent to which a sample is uniformly distributed). The authors found that the technique can achieve good mutation scores, suggesting that this is a viable approach.
Continuing with the theme of testing, the paper “The Skills That Employers Look for in Software Testers,” by Raluca Florea and Viktoria Stray, presents an empirical analysis of the testing skills that the industry currently needs. They analyzed data from 400 job adverts and found that employers were advertising for testers who can operate test execution tools such as Selenium. Programming skills in Java, C#, and SQL as well as skills in estimation, risk management, and quality assurance were in high demand. Software testing certification was also desirable. This paper will help employers to understand the optimal constitution of software development teams as well as informing computing science curricula.
Risk management is another important part of software quality assurance. In “Variation of Risk Profile across Software Life Cycles in IS Outsourcing,” Srikrishnan Sundararajan, Bhasi Marath, and Pramod K. Vijayaraghavan discuss the variation of risk profile in offshore-outsourced software projects. They conducted a survey of 145 software projects performed by global IT companies. The top risk factor for all projects was found to be project planning and governance.
The next paper on this theme, “Algorithms for Estimating Truck Factors: A Comparative Study” by Mivian Ferreira, Thaís Mombach, Marco Tulio Valente, and Kecia Ferreira investigates the smallest number of developers that have to leave a project before a project becomes unviable. The authors report on three empirical studies into so-called truck factors. Their three main conclusions are firstly that the proportion of files abandoned was the best metric when identifying truck factor developers, secondly that these developers are the “core of the core developers,” and finally that sometimes truck factor developers play a largely social role in projects.
Turning to non-functional requirements, the paper “Quality-Centric Security Pattern Mutations,” by Abbas Javan Jafari and Abbas Rasoolzadegan, suggests that non-functional requirements should be given consideration when selecting patterns to add to existing software designs. The authors suggest mutating existing patterns using design refactoring rules in order to incorporate attributes such as flexibility, reusability, extendibility, and security. They used petri nets to analyze behavior preservation. The results show that their new designs offer different levels of quality while maintaining the original functionality.
An important non-functional requirement is usability, but this is often ignored until late in the software lifecycle. In “Analysis and Measurement of Internal Usability Metrics through Code Annotations,” Maximilian Schramme and José A. Macías propose an approach for analysis and measurement of usability during implementation. The authors developed a framework of annotations to provide a systematic evaluation of usability, and evaluated it with the help of 32 participants. They found that their approach was considered to be a valuable tool for dealing with usability during implementation.
Software often has to be modified due to changes in requirements, and such changes can be complex to manage. In “Are Pieces of Contextual Information Suitable for Predicting Co-Changes? An Empirical Study,” Igor Scaliante Wiese, Rodrigo Takashi Kuroda, Igor Steinmacher, Gustavo Ansaldi Oliva, Reginaldo Re, Christoph Treude, and Marco Aurelio Geros investigate the contextual information related to software changes to determine whether it can improve the accuracy of co-change prediction. The authors built customized prediction models for co-changes and then evaluated their approach using 10 open source projects. Their results show that contextual information significantly reduces the number of false recommendations and they conclude that contextual information is an important source that may support change prediction.
As always, I am grateful for your suggestions or comments on this issue; please email me at email@example.com.