A review of software project testing

In this article a review of software projects based on a taxonomy project is established, allowing the development team or testing personnel to identify the tests to which the project must be subjected for validation. The taxonomy is focused on identifying software projects according to their technology. To establish the taxonomy, a development method comprised of 5 phases was applied. The developed taxonomy is comprised of 10 categories and 35 subcategories and was validated by a group of information technology (IT) managers and professionals in the field of IT through the use of a survey. The results obtained from the survey are subjected to the Mann-Whitney U test, which indicates that the taxonomy is validated. The taxonomy can be implemented in development organizations with or without a testing team that provides a classification for technology projects.


INTRODUCTION
The development of information technologies provides a picture of the size and complexity of software (Harrold, 2000).Given that the complexity of software is an inherent property and not causal (Brooks, 1987), this leads to the existence of projects developed under one technology or projects that integrate several technologies.
Every project must verify and validate its software (Tomar & Gill, 2010).Verification and validation are a review process, with analysis and tests used along the entire life cycle of the software to guarantee the production of high-quality software (Li & Walker,1997).Through a series of tests, such as functional and non-functional tests, it is determined whether the software complies with the user's specifications and requirements.As a result, software and systems tests are essential due to factors that increase risk, such as complexity, heterogeneity, and technology variability (Garcia & Elcuera, 2007).
In the case of tests that validate a software project, the first step is to identify the tests that must be applied to the project according to the technology being implemented.Because in many cases projects are different from each other due to the different characteristics they may have, it may be difficult to select such technologies, as indicated by (Dias-Neto & Horta Travassos, 2009).
Another important aspect is that testing tools are not generally oriented towards competence in their application (Uspenskiy, 2010).In addition, there is a gap in the area of testing tool selection for projects (Yague & Garbajosa, 2007), which makes it necessary to have a software project taxonomy that allows for characterizing the tests to which a project must be subjected during the development cycle of the software.
By identifying the technology involved in a specific project, one can establish the software tests according to the project.This article proposes review of software project taxonomy (Calvo-Manzano et al, 2015) that allows grouping projects based on common tests for a software project.
The article is divided into the following sections: Section 1 provides a brief introduction to the problem.In Section 2 the work related to the problem is presented.In section 3 the revision of the taxonomy of projects is presented.Finally, Section 4 shows the main conclusions.(Glass & Vessey, 1995) performs a review of taxonomies and determines what is necessary to establish one taxonomy for applications and another taxonomy based on developmental methods, observing that both should complement each other.(Forward & Lethbridge, 2008) establishes software taxonomy, with a focus on defining the type of software from a descriptive perspective of the unambiguous identification of software, to facilitate its localization within a specific application domain.(International Data Corporation, 2010) presents a software taxonomy that takes as reference the worldwide software market, that is, applications that are sold to end users, for development and implementation.(Kuitunen et al., 2005) presents a software classification based on the North American Product Classification System (NACPS), which classifies software into systems software and applications software, with the purpose of establishing a classification for software industry products.

RELATED WORK
The taxonomies described above are focused on classifying software developed for a specific field of application or competency, ignoring the technology used for its development, which is important for focusing testing efforts at the level of functional and non-functional requirements.

TAXONOMY OF SOFTWARE PROJECTS
The software project taxonomy be focus on establishing projects based on a specific application or specialty.Instead, it is established based on the technology employed for the development and implementation of the project.Because there are countless software applications, establishing the characterization of tests and testing tools for a specific project depends on the technology being implemented.Therefore, it is necessary for testing teams to identify which tests and tools to which the software project will be subjected.

Importance of taxonomy
The taxonomy as classification tool, lets organize within a domain or area of knowledge, different terms that integrated, providing a defined structure that provides a mechanism to identify, assign, and perform actions on a domain, clearly, providing solutions and generating knowledge.
The project taxonomy contributes with the following benefits:  It will help characterize the testing resources for the project. It will identify the testing tools associated with the project. It will reduce the time and cost of the testing team for the project. It will increase the effectiveness of the test because it uses widely validated resources. It will allow for the clear identification of projects according to technology. It will incorporate previous knowledge of the difficulties and virtues of the tests for the project. It will facilitate the identification of the development of new testing tools. It will allow the management of testing group knowledge.
The software project taxonomy allow testing personnel to have a clear identification of projects, facilitating the relationships between projects and thus allowing the determination of testing approaches that are quicker and more efficient, thereby reducing time, costs, and subsequent issues.In addition, it will allow the identification of the absence of testing tools for a given technology.

Methodology for the construction of taxonomies
For the construction of taxonomy the method developed by (Bayona et al., 2010) which defines 5 phases was applied:  Planning.
 Identification and extraction of information.
 Design and construction of taxonomy  Testing and Validation

143
 Deployment of taxonomy.

Applying the Method
The phases of the method applied to taxonomy development stages are described below:

Planning
The area of knowledge is limited to the software testing area, focusing on the topic of classification, categorization, or taxonomy of software projects or software applications according to their technology.The objective is to determine the different technologies that are used software projects.The searching period is established, as well as terms or keywords for the search and sources of information used to perform the search.

Identification and extraction of information
Extraction of the terms that define the categories and subcategories of the taxonomy is based on the WebPages of software development organizations, software magazines, databases, and testing tools.The terms used are the following: "software development company" and "software testing tool".In the case of testing tools, adding those projects that refer to software testing for a particular technology to the results was also considered.In the case of "software development company", the different projects carried out by development organizations are extracted.For digital magazines, the term "software testing tool" is used, and when the articles refers to software testing for a project, the testing is applied to specialized databases.In addition, the search of software testing tools is conducted on Google to determine the testing tools on which project technology is focused.
To TesT Magazine 327 items were reviewed and selected 8, Testingexperience, reviewed 486 articles and selected 41.Software Test Professionals, reviewed 628 articles and selected 22, Methods & Tools: reviewed 255 and selected 8 Testing Circus, revised 604 and selected 34, The Testing Planet, 369 reviewed and selected 8.For the databases we have: IEEE Xplore: revised 1,565 and selected 103, ACM digital library; 520 reviewed and selected 31.Springer Link 262 results are reviewed and selected 15.A total of 298 articles accepted between journals and databases that refer to test a project.
The Tables 1,2,3,4 and 5 shows the results based on the different searches for software development projects, including the results for testing tools, business projects, and the results obtained from magazines and databases, which represent a total of 455 projects.Based on the results of the review, the projects that currently display an above-average frequency for software testing are independent applications, Web, mobile, cloud, embedded, databases, Service-oriented architecture (SOA), and Web services (see Table 6).It is worth highlighting that client/server projects are treated in the taxonomy as clients, critical systems are similarly.In the case of testing tools, a total of 36 tools are identified.The relationship between the types of projects and tools developed to test those projects place independent projects at 8.33% (3), client/server at 2.78% (1), Web applications at 25.00% (9), enriched Web applications at 11.11% (4), mobile at 25% (9), cloud at 8.33% (3), embedded at 2.77% (1), SOA at 5.55% (2), and Web services at 5.55% (2), IoT at 2.77% (1).According to the results obtained, the projects that present the greatest number are traditional Web, mobile, and enriched Web applications.

Design and construction of taxonomy
Based on the extraction of information on software projects, the systematic review method of (Kitchenham, 2004) is applied.The review encompasses the period from 1990 to February 2016.Based on the results obtained, it is established that each category should have a relationship with the function of the software project and that project subcategories are related to the category based on their functionality.
As a result of the design and elaboration of the taxonomy, the taxonomy categories are identified.Each category has a description that frames it within a specific project that uses the technology implemented for its development.In addition, the subcategories are established as derived from the categories.The following categories and subcategories are obtained as a result of the classification process.
 Desktop or independent applications: Projects that are destined for the development of applications that are installed and executed individually or independently in the computer or that request services or information from a server.After identifying the categories of projects, the associated elements are established and grouped into subcategories.The Table 7 establishes the relationship between categories and subcategories as a result of the classification.

Testing and validation of the taxonomy
To determine the validity of the taxonomy (Calvo-Manzano et al, 2015), taken as a reference for the review a study was conducted that consists of a descriptive investigation (survey-based descriptive research) of non-experimental design of the self-report type.The technique used was the personal survey.The instrument used to gather the data was a questionnaire that was designed for this purpose Table 8.It contained the categories and subcategories of the taxonomy and questions to which the answers were limited to either Yes or No.The survey was administered to information and communications technology (ICT) professionals and managers in the Republic of Panamá to determine their perceptions of the taxonomy and the projects established in the taxonomy.The population surveyed totaled 46, and the sample obtained was (n=37).Once the surveys were completed, the results were tabulated using Microsoft Excel 2010 software.The Statistica 7 software was used to process and analyze the data tabulated in Excel.The Mann-Whitney U test, a parametric test applied to two independent samples (Yes or No answers), was used to analyze the data.The table 9 shows the results obtained from the test.The analysis of the results (Figure 1) indicates that there is a difference between the answers (U=14, p<0.05).The Box-Whiskers box suggests that more people answered Yes.Therefore, there is a significant difference, which demonstrates that the participants approve the taxonomy for their projects.Therefore, was added as a new category, it was considered that it was not necessary to validate the taxonomy

Deployment of taxonomy
The taxonomy will be deployed in software development companies to organize their projects for the validation and testing of software.

CONCLUSIONS
To establish the software proyect review, a taxonomy construction, definition, and development method was used.Through this method, the search for and identification of key concepts was performed to structure and build the software project taxonomy to allow structuring the categories and subcategories of the taxonomy based on the technology to be implemented in the software project.
As a result of the review, taxonomy was established with 10 categories and 35 subcategories of software projects.The most noteworthy projects are independents, Web, mobile, cloud, embedded, databases, SOA, and Web services.In addition, it begins to have relevance organizations are incorporating software development projects for the interconnection of objects within the framework of the IoT.
The results indicate that the tools that present the greatest development are traditional Web, mobile, and enriched Web applications.The other projects present low percentages or the absence of tools at a commercial level, which may be due to their status as experimental projects or because, at a commercial level, they do not have a high demand; therefore, the tools are more specific for certain projects.
Through the taxonomy, several lines of research can be established, such as the characterization of software tests for each project and the establishment of testing templates that identify testing requirements, specific tests, techniques, and tools oriented towards a project, among other things.In addition, the taxonomy may organize testing policies and strategies that are in line with projects, and it may organize the application of specific tests, which have been previously applied, tested, and validated through previous projects, with a single project.

Table 1 .
Software projects

Table 2 .
Software projects

Table 3 .
Software projects

Table 4 .
Software projects

Table 5 .
Software projects Labeled as critical mission, and Extract, transform, load (ETL) tests are considered part of Business Intelligence projects (BI).Agents are included, although the results did not yield any test project agents, but, yes, another technology projects mentioned as agents to test other technologies.Inclusive, were not found business process management (BPM) projects.In this review IoT, wearables and smart car that were absent in the previous search results is included.

Table 6 .
Frequency of sofware projects

Table 7 .
Project category and subcategory

Table 9 .
Test results "Mann-Whitney" * Figure 1.Approval of category and sub categories of software projects