Considerations for Cost Estimation of Software Testing Outsourcing Projects

— Software testing outsourcing appears to be the best alternative to acquire better software quality with competent ratification by extrinsic parties who have the capability to do it. Through the effort, organizations are peeking to promising benefits constitute in it such as current testing technology, experts, an abridgment of the project’s duration and more concentration on the main organisation’s activity. Along with these benefits, one important reason that encourages the decision is optimization of cost expenditure, which the strategy is perceived as a good move for a competitive organization. However, implementing such preference eventually results in a different outcome. Organizations have to bear the higher cost and incur losses of cost deviation from the expected estimation. The conflicting between cost and benefits raises an important concern of striving better cost estimation for such projects. This paper aims to address this interest by analyzing the existing literature in order to identify the contributing factors towards better cost estimation for software testing outsourcing project-context. The analysis is done using the content analysis method. The results could be divided into two categories; which are the cost items and contributing factors. Cost items consist of direct cost and indirect cost, which refers to the expenses for the project. While the contributing factors consist of people and environment, which are needed to produce accurate cost estimation. The findings provide an insight to excogitate attentively the essentials in the endeavor of improving the exactitude of cost estimation for software testing outsourcing project.

I. INTRODUCTION The interest in software testing outsourcing implementation has recently become a trend [1], [2]. The activity which is defined as the delegation of testing part to external parties who provide the agreed services typically aims for cost savings advantage while achieving a quality software product within the estimated schedule [3].
There is a severe demand of ensuring software testing to be executed properly, as the testing process has a significant value in determining the software quality, mainly when the software is widely used in critical business and real-time applications [4], [5]. The execution of testing becomes complicated, requiring more pre-requisites of quality confirmation such as current testing technology and testing experts' opinions. For these reasons, the process seems eligible to be conducted in an outsource setting.
The increasing dependency on the quality of the testing process in an outsourcing environment calls for attention to the aspect of cost estimation. In a highly competitive economy situation, the cost is one of the important considerations for an organization when software is outsourced. It plays a vital role in balancing the equation with the projects' resources, schedule, and budget especially within the distributed environment [4], [6]. Proper cost estimation is useful in making strategic decisions and planning for the organization.
However, while estimation is an important activity, it is also considered to be a challenging one. Organizations often encounter insufficient data in doing the estimation, causing them to leave significant major features out of the baseline estimates [3]. Previous cost estimation guides also do not discuss the costs according to the context of software testing outsourcing [4], [7]. Many of the work appear independently either in cost estimation of testing part or outsourcing projects. The non-context guidance resulted in the involving parties to not well acquainted on the precaution of the subject matter [3], [8]. This consequently leads to inaccurate estimates of projects costs resulting in significant losses such as lower expenses compared to the estimation, which actually could be saved [1], [4] or unexpected higher outlays [9]. Based on these issues, this paper intends to highlight the essential elements to be considered for cost estimation according to the context of software testing outsourcing projects. While there are some inescapable uncertainties, targeting an improved and definite cost estimation is positively achievable through the effort of recognizing those overlooked elements [10]. This paper is organised as follows: Section 2 discusses the related work of software cost estimation. Section 3 presents the methodology used for this paper. Section 4 discusses the findings, and section 5 concludes the work and suggests some future work in the area.

II. MATERIAL AND METHOD
For the Materials section, this paper discussed the literature background of cost estimation issues based on two perspectives; the first is software testing and the second is globally distributed software projects. For the Method section, the later part explained the methodology used in the research.

Α. Cost Estimation of Software Testing Project
Previous research on software cost estimation of software testing projects has proposed a variety of cost models [7], [8], [11], techniques [6], [12]- [15], management strategies [16] and best practices [5] for improving estimations. The estimation of software testing has often been regarded as a part of the software development process, and only a few types of research treat testing as a separate entity [7]. Since the nature of testing is distinctly different from other processes in software development, the estimation should be made specifically according to the testing context [7].
The test case complexity is one of the important elements that need to be included in the estimation [17]. The test case contains valuable test information, and it will be used throughout the project. The complexity of test cases can significantly influence the time spent on testing activities which can affect the cost required [15], [17]. Besides that, the type of tests also needs to be considered in the cost estimation. Different test types require different necessities depending on the tests specific objectives [17]. Hence, the cost charged against the test type is different according to their needs.
The frequency of changes committed against software also influences the cost estimation [7], [12]. As defects can be present from various sources such as requirement, design, code [13], documents or bad fix, the effort in handling those defects is different depending on the necessity of the changes. More cost is expected to occur if the tests contain a high level of change frequency.
In conducting the testing execution or managing the project, the team size that is involved in those activities plays a part in the estimation. The team size reflects the number of people which makes up the team. The team size should be pertinent according to the capacity of work in order to create effective work results [6]. The quality of the testers is also important in making up the team size [11]. Their performance and skill level must be compatible with the work intricacy to compose an effective team size.
Apart from the team size, the level of expertise of the project's personnel needs to be considered [18]. More cost needs to be allocated to hire personnel that has more expertise, especially if their skills, knowledge or consultation is highly required for the success of the project [19]- [21].
Besides that, the turnover rate aspect is also an important element in cost estimation [7], [22], [23]. The higher rate of people leaving the project will cause lower productivity of the employees eventually adding the cost of getting a new workforce and the additional time to train them.
In achieving a quality test, the estimation has to consider the cost of additional work hours to be spent on rework in the testing execution [22]. Predicting the amount of rework is necessary and is expected in testing routine to achieve good quality software especially in a specified time which could be very costly if the test is overdue [12]. Besides, the cost of the compatibility for the software to be tested in the outsourcing environment needs to be taken into account [18], [24]. Example of the cost of compatibility that may need to be covered is the tools unavailability in the market or the technological changes which require modification to be done towards the testing setup [18]. This is important as the absence of predetermined stipulation may lead to cost estimation deviation.
The documentation is important as it serves as the basis of the testing process. In order to produce accurate information of estimation effort, the referred documentation must be as comprehensive as possible [7], [16], [19], [25], legible [26] and stable [7]. Examples of the referred documentation are the Project Plan, Test Plan and estimation guideline [7], [16]. A comprehensive document may need to include full and detailed information regarding the previous projects and testing execution. Documents with a high level of legibility provide clearer information and description towards the tasks. Besides that, stable documentation is necessary as unchanged data provide more reliable estimation information. Also, the estimation method is one of the important factors that need to be considered. In order to estimate the required effort about a testing perspective which is essential to confirm the software quality, the estimation method identified needs to be repeatable [7], [27].
Previous studies also indicated that attributes of the people relating to the estimation need to be taken into consideration. The experience of the tester who is doing the tasks is important [11]. The experience can be delineated in two perspectives which are to have domain application knowledge [7], [13], [22] and testing knowledge [7], [13]. For domain application knowledge, the experience is defined by the number of similar projects that the tester has worked on before [7]. As for testing knowledge, it involves the ability to handling the software's language, tools, technology or equipment used [7], [22]. The testers should have experience in handling the task and technology associated with the software testing. Testers who are relatively new to the technology or any related tools used in the project typically require more time to grasp or use the technology. This, unfortunately, would affect the productivity in conducting the given tasks [22].
The attitude of testing personnel involved in the process also influences the estimation [16]. The testers need to have a commitment to their testing responsibility and perceive the testing process as an imperative matter to produce better software products [16]. By commitment, testers need to practice testing ethics properly [28]. The practice of ethics is important because if it is not taken seriously, more bugs and defects would be created ultimately deferring the test process.
The studies mentioned above have highlighted elements that are considered imperative in the cost estimation, which are taken from the testing perspective. In that matter, consideration should also be made from outsourcing viewpoint in order to meet the research context.

Β. Cost Estimation of Software Outsourcing Project
This section considers the cost estimation for general software outsourcing projects. Even though the elements are not collected from cost estimation for software testing outsourcing studies directly, the elements still need to be included as they also conduce to the cost for such projects.
The cost associated with distributed projects is highly influenced by the constraints of the geographical location of the dispersed teams. As such, different geographical locations would involve different time zones [9], [28], [29]. Participating teams might have to encounter different official work day that overlaps with the official holiday of other teams [22].
One of the common issues of outsourcing project is the cultural value and the language of the teams. The diversity of culture [22], [30], [31] and the huge gap of the language used [30] would influence the accuracy of the cost estimation being made as the matter would interfere the effort efficiency of the involving parties. Different cultural values by the involving parties have a significant impact on their practice in managing the project [30], [31]. As for language, the use of good language is important as it is a practical need for writing and communication affairs. Previous studies show that lower distinction of culture and higher language proficiency would evoke a better working environment and increase productivity [3], [9]. The political stability of the country must also be taken into account [32]. This issue is viewed based on the political circumstances of the vendor's country [3]. The instability of politic could affect the project duration thus intruding the cost that has been set up.
As the distributed teams commonly are dispersed among each other, there are costs that incurred in order to connect the involving parties and manage the project [17]. For instance, in order to facilitate the information exchange process and interaction between the teams involved, the cost for communication tools such as email, instant messaging, telephone, and video conferencing need to be included [3], [7], [26], [33]. Simultaneously, there are also costs to set up the servers and online storage which are used for storing and retaining all information throughout the project [8]. Besides that, some costs may need to be invested for project management tools in order to manage the project in distributed settings [6], [34] and test tools to manage the testing activities in particular [7], [35]. The project may also need to consider the costs for other facilities such as the storage room and office space which are commonly required to store physical materials generated throughout the project [19], [36].
One of the best practices for testing outsourcing projects is to send representatives to the vendor's organization to monitor the work progress [37]. Due to the distance, the need to allocate the representative might require extra costs for the travel necessity. The need to visit frequently or for a longer time of period results in the production of different travel costs such as the accommodation or lodging expenses [21]. Since the travel includes some geographical distance, related costs for the journey such as transportation [19] and immigration arrangement [19] should be considered in the estimation since these activities have an impact on the cost.
Besides that, training program also may put an extra cost into the cost allocation [19], [29] in which, training session might be required to transfer the knowledge between the teams involved [9], [19] or for the employee's skill development purposes [9].
The distributed locations in outsourcing setting require specified time to be allocated in order to conduct the knowledge transfer process between involving parties [38]. Longer time spent in the process can lead to significant cost overruns. Therefore, projects that have a higher level of task interdependency may require more time to be conducted [39], [40]. The level of task capability of the involving parties also may affect the time taken to transfer the knowledge among them [20]. Teams with a lower level of capacity regarding the task may require more time for knowledge transfer. Thus, more cost is expected from tasks of such nature [39], [40]. Besides that, the type of team coordination also indirectly influences the cost. It can be categorized into two types of coordination which are organic and mechanistic [39], [40]. The team that practices the organic or less formal type of coordination appears to be more effective and is expected to require less cost compared to the mechanistic type of coordination [39].
Previous studies also indicate that there are many software cost estimation methods available for distributed projects [41], [42], [32]. For example, the algorithmic method, estimating by analogy and expert judgment method [4], [43]. Since the cost estimation would involve outsourcing element, the estimation method needs to fulfill the distributed characteristics. Thus, the estimation method is identified to be adjustable so that it can suit according to outsourcing context [25], [30].
The estimator influences the estimation accuracy. The person should have experience and must be realistic. Experience is emphasized through the use of estimation tools [16], [22]. An experienced estimator is more competent in customizing the value and inputs for estimation. Besides that, the estimator must also be realistic in handling the information [16]. Realistic refers to the state of being sensitive to the estimation details. For example, the estimation should be made by acknowledging the capability of the person doing the tasks and engaging them in the process of doing the estimation instead of estimating only from estimator's view [16].
In general, previous studies have outlined some elements that need to be contemplated in the attempt to acquire definite cost estimation for testing outsourcing project. Those elements, however, are confined in separate cost estimation references which are either software testing or outsourcing. The elements thus need to be organized according to its similarities of meaning which eventually will result in several apparent categories holistically.

C. Research Methodology
The methodology used in this research was a qualitative method. The method was chosen as it allows researchers to acquire the data in detail and gains a deeper understanding of the subject matter. One of the components in the qualitative method is conducting the literature review. The analysis was conducted on previous related work, concerning two perspectives of cost estimation. The first is cost estimation of software testing projects and the second is cost estimation of outsourcing software projects. In conducting the literature reviews, this study aimed to answer the following research questions: • What are the cost items for software testing outsourcing projects? • What are the contributing factors for cost estimation of software testing outsourcing projects? The reviews were made on articles published within eleven years back, which started in 2006. The year is justified as relevant for the research as it correlates with the beginning of rising interests in the effect of software globalization industry [42].
The articles were searched through the following online database; IEEE Explore, ACM Digital Library, Science Direct, Scopus, Springer Link, Google Scholar and ISI Web of Science Proceedings, which covered both journal and proceeding articles. The keywords used in the search were (("cost estimation") AND ("software test" OR "test" OR "testing")) and (("cost estimation") AND ("outsource" OR "client vendors")). The inclusion criteria used in selecting the related studies were: • Articles that were published from the year 2006 until 2018. • Articles that described the elements that contribute to cost estimation for software testing and outsourcing projects. • Articles are written in English. Searching using the snowball technique was also applied [44]. The technique was used to find more relevant articles based on the referrals that already met the study criteria. The elimination was done due to the irrelevancy of the contents in certain articles to the subjects discussed in this study.
After applying the inclusion and exclusion criteria, 36 published articles were selected. In order to answer the research questions, this study employed content analysis to gather the data [44]. Content analysis is one of the qualitative research methods to analyze the written, verbal or communication messages. The method recognizes similar attributes or common categories in the data. The collected data were categorized as manifest and latent contents. Manifest content is the literal meaning of the message conveyed while latent content is the hidden or implicit meaning of the message. In the direction of identifying both manifest and latent contents, deductive and inductive approaches were adopted in this study. It was carried out continuously throughout the study until the saturation period was reached and significant content categories emerged.

III. RESULTS AND DISCUSSION
Based on the analysis, the results can be divided into two distinct categories. The first consists of the cost items that need to be included in the estimation which is Direct Cost and Indirect Cost. The cost items highlight the necessary costs that actually exist throughout the process which is often overlooked, thus leading to cost deviation. The second category is the contributing factors for the cost estimation, consist of the People and Environment. The contributing factors contain elements that are needed in order to produce more accurate cost estimation for software testing outsourcing projects. Table 1 summarizes the categories and its reference's sources. Fig. 1 presents the findings in a diagram form and the results of data analysis are presented in the following paragraphs Test case complexity [15], [17] Test type [17] Test change frequency [7], [12] Infrastructure Communication tools [3], [7], [26], [33] Repository tools Management tools [6], [34] Test tools [7], [35] Facilities [19], [36] Travelling Transportation [19] Accommodation [21] Immigration [19] Human Resource Team size [6], [11] Expertise [18]- [21] Training [9], [19], [29] Indirect Cost Coordination Cultural value [3], [9], [22], [30], [31] Time zone [9], [22], [28], [29] Political stability [3], [32] Language [3], [9], [30] Knowledge Transfer Task capability [20], [39], [40] Task interdependency [39], [40] Team coordination type [39], [40] Contingency Turnover rate [7], [22], [ A. Direct Cost Direct Cost refers to the cost required for the materials and the people who are involved in the project. There are four cost items identified in Direct Cost, which are Testing, Infrastructure, Travelling and Human Resource. They are explained in the following sections.

1) Testing
The Testing cost refers to the cost that needs to be included to calculate the effort required for the testing process of the software. The cost is calculated based on the estimated time taken to complete the task and the personnel's wage rate charged per hour. There are three identified cost items which are Test case complexity, Test type, and Test change frequency.
By the time the software is ready to be tested, the test case will be the source which testers would mainly refer to throughout the phase. A test case consists of the input values, the preconditions and postconditions, and the expected result for the test. In order to execute a test case, testers need to prepare the data input and fulfill the test's precondition. Testers also need to make sure that the test meets its post condition's criteria and should produce the expected result. Since each test case has its specific conditions that need to be met and have its level of complexities, the amount of work hour required to settle each test case is different. The estimation needs to consider the test case complexity as it will influence the time taken for its completion as well as the cost required to execute the test.

Indirect Cost
The effort estimation is also related to the test type. Test type refers to the group of test activities aimed at testing component or system which focuses on a specific test objective. Depending on its objectives, the necessity of the test is specific and distinct from one another. Thus, the required time, effort and cost required to conduct each test type is also different accordingly.
As testers need to test, frequent changes from developers or clients may cause delay to the project. Generally, a test that has a high level of change frequency will incur more cost. The changes would influence the testing effort which then would affect the project schedule and cost that has been set. Hence, test change frequency needs to be evaluated to predict the necessary work hour and its reasonable cost. For example, the estimator could refer to the previous similar projects history to identify and predict the change pattern of a particular test.

2) Infrastructure
The infrastructure refers to the entire collection of the associated equipment which is used to support testing outsourcing projects. As testing outsourcing requires the sharing of information and resources between the client and vendor, it must be supported by well-established infrastructure. This includes the Communication tools, Project management tools, Repository, Test tools, and Facilities. The estimation made should include the cost of establishing or preparing the infrastructure as it also contributes to the cost involved.
Communication tools aim to provide a medium for information exchange and facilitate the interaction between the involving parties. As testing outsourcing projects involve geographical distance, it is crucial to ensure smooth knowledge transfer, and the right information is conveyed. Communication tools such as telephone, instant messaging, emails, groupware, and video conferencing for web meetings are necessary to carry out such activities. Thus, the estimation should consider the cost to acquire the communication tools such as the software licenses, and its associated costs such as phone call bills and internet bills. Aside from that, in order to establish the connection, the network needs to be set up. As there is a variety of information shared between the involving parties, the network needs to be protected. Therefore, the estimation needs to consider the cost to be invested for network establishment and its security measures such as firewall and virtual private network setup.
Repository tools refer to the digital online storage used to store the information consumed and generated during the execution of the project. The repository is crucial for archiving purposes and handling the information consumed. Servers, data center management, multiple delivery centers, and online storage are the examples of knowledge repository that is involved in managing project across various geographical locations. Example of the information stored and shared in the repository are testing artifacts such as the test cases, test plan and project documentation; project plans and design diagrams. As the testing outsourcing project would involve teams in separate locations, the cost to setup global repository needs to be considered in the estimation.
The estimation also needs to include the cost of the project management tools. As the management for software testing project in particular is relatively difficult to manage, it is even more complicated to handle with teams that are distributed. The project management tools aid the planning and controlling of the testing activities and mainly handle the outsourcing operating tasks. Examples of the administration tasks that need to be handled by the management tools are the planning and support, scheduling, resource allocation, cost control, project scheduling, and activities reminders. Consequently, some cost needs to be allocated for management tools in order to conduct the project activities in the outsource setting.
The cost of test tools covers for all the necessary equipment needed for the test execution process -for instance, the test execution tools and hardware tools. Examples of test execution tools are memory debugging tool, memory leaks detection tool, and bug tracking. The estimation needs to consider the cost for the right testing tools which can aid the process such as the cost for license fees or the cost for a software upgrade that is necessary throughout the project duration.
The hardware tool refers to the equipment needed to support or complement the environment in order to carry out the test execution. Examples of the hardware tools are a laptop, tablet, and mobile of various screen size. The necessities of the hardware tools are specific according to the particular testing requirement. Hence, the appropriate cost estimation needs to be made for the required hardware tools.
The facilities refer to the provided physical infrastructure that will be used by the client throughout the project duration. Examples of the facilities are office space, physical storage, and testing laboratory. For instance, in monitoring the project, the representative might need to use the facilities for a particular duration of time, depending on the project needs. Hence, the cost estimation needs to consider the leasing expenses for the office space to be used by the representative about the specified time. The testing outsourcing projects also typically share valuable physical materials such as documents and hard drives which need to be kept appropriately. In order to ensure the information is secure, physical storage to store those materials need to be provided. Therefore, the estimation has to consider the related cost in providing such needs. Besides that, if the software needs to be tested under a specific environment, the cost for the vendor's testing laboratory might also need to be counted. The testing laboratory is commonly equipped with better test equipment and the target system to be used. For example, the servers, network setup and related peripherals are included which is more suitable for particular testing objectives.

3) Traveling
Travel costs arise when the project team members in a location need to travel to another location for project-related activities. The extra effort spent on traveling needs to be accounted for in the project estimation. The cost is found consisting of three cost items which are Transportation, Accommodation, and Immigration.
Despite the widespread availability of electronic communication, sometimes there is no substitute for face-toface communication which makes the travel crucial. As all offshoring involves at least some geographic distance, the cost for transportation is pivotal to be included in the estimation. The transportation cost may include vehicle expenses to go to the dedicated project location such as flight, train or taxi fares. Besides that, the expenses may include other trip-related costs such as fuel and toll cost.
The outsourcing process needs to be appropriately managed throughout the project. One of the best practices in managing the distributed setting is through work monitoring by the project's representatives. Hence, the need for monitoring requires the representatives to go to the vendor's site. This will cause the cost to incur due to the accommodation need. As such, the estimation needs to consider the accommodation expenses such as hotel, meals, and incidental fee such as laundry services. Sometimes when the representative is assigned to a particular location for some time, lodging cost needs to be considered. The lodging cost needs to be taken into account as it gives a significant impact on the required cost due to the representative's need to stay for longer time duration.
The need to travel also creates an additional expense to cover in the estimation such as the immigration-related cost. The immigration cost refers to the expenses which occur in order to travel to another country. Examples of the immigration cost are the fees for the personnel's visa application and passport arrangement.

4) Human Resource
A human resource refers to the cost of the people employed for the project. There are three cost items in Human Resource which are Team size, Expertise, and Training.
The number of people involved in the project is also prominent in building the cost estimation. In essence, the allocation of personnel should be compatible with the workload. Typically, larger number of members in the team will require more cost to be included in the estimation.
The cost estimation also needs to consider the level of expertise of human resource involves in the project. Expertise refers to having a high level of knowledge regarding a subject matter. The expertise may be recognized based on the years of experience or level of certificate owns by the project's personnel. Personnel with a higher level of expertise generally cost more compared to personnel with lesser expertise. As the testing outsourcing project involves many aspects of the knowledge-specific area such as the testing process, legal, management, negotiation, and outsourcing matter, the cost of expertise is identified from three sides which are the client, vendor, and external advisor. From the client side, the project executive such as the project manager will cost higher than the other support team members. From the vendor side, the cost of hiring senior tester is different compared to junior tester due to different capabilities and knowledge that they have. Besides that, such project may also need to hire external advisor such as outsourcing project consultant, legal advisor or lawyer to be more informed in making decisions on the project.
The cost for personnel's training programs also needs to be taken into account in the estimation. Since the project involves a significant distance between the team members, the cost for training sessions and knowledge transfer process might need to be included in the allocation. Besides that, in order to produce more quality output for the project, the training cost may need to include skill development program for their employees.

B. Indirect Cost
Indirect Cost refers to the cost that is not directly involved in providing a particular service. These expenses are often unknown and may not be taken into account which later leads to cost deviation when the project is carried out. There are three cost items identified in this category which are Coordination, Knowledge Transfer and Contingency.

1) Coordination
Coordination cost is the cost of integrating and linking together different activities and people to execute the project. There are four indirect cost items involved in this category which are Cultural value, Time zone, Political stability, and Language.
The globalization process allows the interaction of different cultures between the involving parties which brings about the needs to determine its consequences towards the cost. The cultural variation can be divided into two categories which are high context culture and low context culture. High context culture refers to the organization that values reputation more compared to factual-based in their work. They are more likely to minimize confrontation with other parties even though they are the one who brought up the issues that need to be resolved. As a result, projects are more likely to take a longer time to be completed, and this would increase the cost more than expected. Examples of countries with high context culture are India, an Arab country and Asia. Low context culture, on the other hand, is more factual oriented such as in America and Europe. This results in less cost due to the application of factual-based in their work ethics.
Time zone differences lead to differences in working time between the parties involved. This may influence the team's productivity and the time taken to perform the task which consequently affects the cost. For instance, involving teams that have to encounter eight hour time differences will have difficulty to perform spontaneous communication. As a result, their communication may have to be scheduled for the next day. Besides that, working week and holidays are most likely to be different between the involving countries of different time zone. This eventually creates idle time that is unproductive especially when some tasks cannot proceed until they receive feedback from another remote team.
The state of political stability refers to the stability of political condition in the vendor's country. A country with good political state helps ensure the project is carried out feasibly for a set period. The instability could affect the project schedule thus intruding the cost that has been set up. This may impact the project and cause additional cost to the project.
The language used by the involving teams is significant to increase their efficiency in conducting the tasks. The involving parties need to communicate well to build good rapport and convey information. For instance, aside from test operation, most of the tasks require them to write report and documentation. Involving parties with good ability in both speaking and writing in the same language used are expected to ease the cooperation and makes it less costly in conducting the tasks.

2) Knowledge Transfer
The process of transferring knowledge requires the involving parties to invest in time, effort and resource which eventually leads to additional incorporation of costs. Two types of knowledge are transferred which are domain knowledge and technical knowledge. Domain knowledge is the knowledge of the business process and the information requirement that are reflected by the software application. The technical knowledge refers to the understanding of the testing process of the software. There are three indirect cost items identified in this element which are Task capability, Task interdependency, and Team coordination type.
Task capability refers to the ability of the involving parties in conducting their tasks which is related to the frequency of knowledge requirement that needs to be transferred among them. As such, the team that has lower task capability will require a lot of knowledge transfer from another team. They are expected to require more time for the knowledge transfer process which then leads to more cost allocation. The process of transferring knowledge commonly happens in two different situations; the first is among the testers themselves and the second is between client and vendor.
The ease of transferring the domain knowledge from the client side to the technical knowledge of vendor depends on the level of task interdependence. Task interdependence refers to the completion of a task that will require the completion of another task. The intricacy of the interdependency levels can be analysed by evaluating the hierarchy between the sub-tasks and identifying the task divisions of the teams. The lower level of task interdependency encourages high project productivity between the team members. This is because the task is less complex, loosely coupled and less related to other tasks which make it easier to be transferred and completed. Therefore, a task that has been identified with a low level of task interdependency reflects lower cost estimation compared to task with high interdependency that needs greater collaboration.
In order to execute the knowledge transfer between both parties, the type of team coordination must be distinguished. The type of team coordination which is employed by the involving organization influences the cost needed. The coordination strategies can be divided into two categories; the first is organic coordination and the second is mechanistic coordination. Organic coordination strategies are defined as informal, cooperative and decentralized techniques in conveying the information. On the other hand, mechanistic strategies employ a formal, controlling and centralized approach. The team that practices organic coordination strategies is more effective in transferring knowledge since the coordination is less constrained in its implementation. Mechanistic coordination often lacks immediate access to other team members which may delay the process as the teams are separated from each other.

3) Contingency
Contingency cost refers to the incremental costs that may have incurred due to the event that could not be avoided during the project execution. Three cost items can be identified which are the Turnover rate, Rework, and Compatibility.
The estimation made need to consider the turnover rate in both client and vendor company. High turnover rate by the client company would risk the organization to bear losses of a knowledgeable workforce for the ongoing project. The productivity of the employee would likely decrease when there is no adviser for reference. As for the vendor company, the high turnover rate may cause insufficient worker in conducting the testing work. This would result in a longer project time frame and directly affects the cost that has been set.
One of the characteristics in testing is the uncertainty in the amount of repetitive work that needs to be done in order to acquire the desired quality. This includes work such as analysis and debugging, development of temporary workarounds, defect fixing, and inspection of rework, retesting and regression testing. The rework, which would be based on the defect density of the testing execution influence the cost and effort required to execute it.
The compatibility refers to the ability of the software under test to match with other provisions to complete the testing execution. The software varies in terms of its complexity and area of application. It has its specific settings by the organization that develops it. When software is brought for test outsourcing, the appropriate specific setting for testing execution has been set beforehand, such as the suitable testing technology tool. However, there are possibilities that the prior settings for the software might need to be changed due to reasons that cannot be controlled such as technological discontinuity or demand changes. Hence, software which has a lower level of compatibility is expected to require more cost as the client or vendor needs to invest heavily for its specific requirement in order to meet particular outsourcing project's need.

C. People
People refer to the identified parties involved in the project and the characteristics that they should possess which influences producing more accurate cost estimation. People consist of two factors which are Estimator and Tester.

1) Estimator
Generally, Estimator is the person that is responsible for doing the estimation. The person can be entitled to various roles such as the test manager and project manager; depending on the project's type of engagement. Two elements identified to be possessed by the Estimator are explained as below.
The experience of the estimator plays a significant effect on the estimation. Their ability accentuates the experience in using the estimation tools. Junior estimators were found to be less sensible in safely tuning or tweaking the cost parameters compared to senior estimators. The more experienced estimator is known to be more insightful and well-educated from previous project's oversight in using the estimation tools yielding in better estimation.
In doing the estimation, it is practical and better for the estimator to be realistic in advising the information to be included in the estimation. The estimator should concede to the actual input value and not just assume the information. For instance, in generating estimation for the testers' work rate, the presumption should not be made towards their time taken in completing the given tasks. This is crucial because the productivity of people involved might vary and this would affect the estimation significantly.

2) Tester
Tester consists of the people who are responsible for conducting the testing tasks. As they are involved in conducting the tasks, they are responsible for providing their effort's estimation information to the estimator. There are two elements recognized that are needed by the Tester which is elucidated below.
Experience is defined as having a deep understanding based on the previous participation in two fields; application domain knowledge and testing knowledge. Testers who have experience in both application and testing knowledge would have better judgment on the estimation compared to those who only have experience in either one of the areas. Experience in application domain knowledge can be evaluated through the number of similar projects that were accomplished before. Experience in the testing area is determined by the level of familiarity in using new test tools, technology or equipment, and software language. Their experience is evaluated by the number of years in acquiring knowledge. Testers who have less experience would have a high probability in incorrectly predicting the work effort that is required.
Each tester involves in the project needs to be aware that their roles in the testing activities are very substantial to the cost estimation. Testers should commit in order to practice the correct testing procedure and avoid omitting important steps in work. It is important for this to be accounted meticulously in order to produce factual effort estimation.

D. Environment
The Environment refers to any material required as a guide or reference in order to support a more reliable and accurate cost estimation. There are two factors identified namely, Estimation Method and Documentation.

1) Estimation Method
As there are many cost estimation method available, each estimation method has its estimation characteristics. In order to produce reliable cost estimation, the estimation method needs to have certain elements which meet the characteristic of software testing outsourcing projects. The Estimation Method is identified to have two elements which are Repeatable and Adjustable.
Testing is a resource-intensive activity which involves much effort to find defects. Compared to the nature of development that generates noticeable software program, the implementation of testing does not produce immediately visible output. Instead, testing is only able to indicate and inform the quality level of task generated in software development. For such efforts, the implementation of testing activities requires much repetition. Hence, in order to estimate the testing effort, the preferable estimation method needs to have a repetitive element. Example of such estimation method is the Algorithmic method which is generally based on some mathematical equations that repeat its gathered data to predict the effort for software estimation.
In order to estimate the required effort according to testing outsourcing context, the proposed estimation method need to incorporate the globally distributed project characteristic. This is crucial as a lot of cost deviation occurs because the outsourcing feature is not taken into account in estimation. Hence, the estimation method needs to have the adjustable element to consider the particular need for outsourcing characteristics in order to estimate the effort more realistically.

2) Documentation
The Documentation refers to any document that will be referred to in obtaining information to build the estimation. It covers information from three main aspects which are the project documentation, testing documentation, and the estimation guideline. Project documentation includes the document from the project perspective such as the project plan, software requirement specification, and the project's past historical data. The project documentation generally provides the overall characteristic of the software, and this is important in building reliable cost estimation. The example of the documentation from the testing aspect is the test plan. The test plan mainly consists of scope, the software, and hardware specification and its resources, project schedule, personnel to perform the testing activities, approaches and risks associated.
Estimation guideline refers to any references which the organizations commonly adopt in their processes and cost models in making the estimations. Since each organization is different from one another, many factors are causing the variance of estimation references for every organization. Examples of the factors are the geographic currencies, inflation circumstances, and labor productivity hours. The estimation guideline helps to define the standard estimation process in the global environment settings. In order to produce an accurate estimation, it is identified that the documentation needs to have the following elements.
The referred documentation in making the cost estimation needs to be comprehensive in order to acquire accurate information for the estimation effort. Document with a high level of comprehensiveness helps in better comprehension of the testing projects. For instance, previous project documentation that provides full and detailed information helps extract better context-dependent values based on different projects handled before. Besides that, a testing plan that is prepared with extensive testing requirements also contributes to more relevant information and leads to higher chances of producing more accurate cost estimation.
The related documentation to be referred also need to be legible. There should be no ambiguity in the documentation in order to avoid confusion among the distributed team members. Unclear written information may cause a significant difference in their expectation regarding the testing tasks. For example, the testing scope needs to be clear for both parties as the vague scope of work would highly affect the number of work hours needed to accomplish the task.
Stable documentation refers to documents that contain a fixed content and not likely to have many modifications done especially when the testing phase is executed. Unstable documentation would indicate that there will be more bugs introduced. If the referenced document or information changes during the testing activities, it may cause the software code to be changed thus increasing the testing effort that has been allocated for the work. This may influence significantly the predetermined cost that has been planned based on the estimated effort.

IV. CONCLUSIONS
This paper brought attention to discussing the considerations needed in cost estimation for testing outsourcing projects. The findings emerged in two categories, which are the cost items and contributing factors. Cost items include two types of cost which are Direct Cost and Indirect Cost, which refers to the expenses for the project. The contributing factors consist of People and Environment, which are needed to produce accurate cost estimation. The cost items and contributing factors were gathered from previous studies, referring to the cost estimation aspects in two perspectives. The first is the cost estimation of software testing projects, while the second is the globally outsourced software projects. Since the gathered cost items and factors were derived solely from the literature, future work needs to be conducted to validate the findings through empirical studies. Empirical studies which involve the practitioners related to the issues are believed to aid in formulating more detail cost items and concrete factors. It also aids in revising the findings in previous studies. Finally, more effort should be given in the derivation of the theories and guidelines specified in the context of cost estimation for software testing outsourcing.