外文文献翻译--基于价值的软件测试管理
软件测试管理制度模板英文

软件测试管理制度模板英文1. IntroductionSoftware testing is a crucial part of the software development process, ensuring the quality and reliability of the final product. An efficient and effective software testing management system is essential for the successful completion of any software project.This document outlines the software testing management system that will be used for all software testing activities within the organization. It describes the processes, procedures, roles, and responsibilities that will be followed to ensure that all software testing is carried out in a systematic and organized manner.2. ObjectivesThe objectives of the software testing management system are as follows:- To ensure that software testing is carried out in a systematic and organized manner.- To define the roles and responsibilities of the testing team.- To establish processes and procedures for conducting all types of software testing activities.- To ensure that the software testing activities are aligned with the overall software development process.- To provide a framework for continuous improvement of the software testing process.3. ScopeThe software testing management system will cover all software testing activities within the organization. This includes, but is not limited to, the following:- Functional testing- Non-functional testing (performance, security, usability, etc.)- Integration testing- System testing- User acceptance testing4. Roles and Responsibilities4.1 Test ManagerThe test manager is responsible for overseeing all software testing activities. Their responsibilities include:- Defining the overall testing strategy and approach for each project.- Planning, directing, and coordinating all testing activities.- Ensuring that the testing activities are aligned with the software development process. - Monitoring and controlling the progress of the testing activities.- Reporting on the status and results of the testing activities to project stakeholders.4.2 Test Analyst/Test EngineerThe test analyst/test engineer is responsible for carrying out the testing activities. Their responsibilities include:- Analyzing the requirements to identify the test scenarios and test cases.- Developing test cases based on the requirements and test scenarios.- Executing the test cases and recording the results.- Analyzing and reporting any defects found during testing.4.3 Test CoordinatorThe test coordinator is responsible for coordinating the testing activities. Their responsibilities include:- Scheduling and coordinating the activities of the test team.- Establishing and maintaining the test environment.- Managing the test data and test tools.5. Testing Process5.1 Test PlanningThe test planning phase involves defining the testing strategy and approach for the project, as well as identifying the scope and objectives of the testing activities. The test manager is responsible for developing the test plan, which should include the following:- Objectives and scope of the testing- Testing strategy and approach- Roles and responsibilities of the testing team- Test schedule and resource requirements- Test environment and test data requirements- Risk and issue management plan- Test reporting and documentation requirementsThe test plan should be reviewed and approved by the project stakeholders before testing activities commence.5.2 Test DesignThe test design phase involves identifying the test scenarios and test cases based on the requirements. The test analyst/test engineer is responsible for developing the test cases, which should be based on the following:- Functional requirements- Non-functional requirements- Use cases and user stories- Business processesThe test cases should be reviewed and approved by the test manager before testing activities commence.5.3 Test ExecutionThe test execution phase involves executing the test cases and recording the results. The test analyst/test engineer is responsible for executing the test cases, which should include the following:- Defining the test execution strategy and approach- Executing the test cases based on the test schedule- Recording the test results and any defects found during testing- Analyzing the test results and providing feedback to the project stakeholders5.4 Test ReportingThe test reporting phase involves reporting on the status and results of the testing activities. The test manager is responsible for preparing the test reports, which should include the following:- Status of the testing activities- Test coverage and test results- Defect tracking and resolution- Recommendations for improvementThe test reports should be reviewed and approved by the project stakeholders.6. Testing Tools and EnvironmentThe software testing management system will define the testing tools and environment that will be used for all testing activities. This may include the following:- Test management tools- Test automation tools- Defect tracking tools- Test environments (e.g., hardware, software, network)The test coordinator is responsible for establishing and maintaining the test tools and environment.7. Training and DevelopmentThe software testing management system will provide training and development opportunities for the testing team to improve their skills and knowledge in software testing. This may include the following:- Training on testing methodologies and best practices- Training on testing tools and technology- Certification programs for testing professionalsThe test manager is responsible for identifying the training needs of the testing team and providing appropriate training and development opportunities.8. Quality AssuranceThe software testing management system will define the quality assurance activities that will be carried out to ensure the quality of the testing process. This may include the following:- Review and audit of the testing activities- Process improvement initiatives- Compliance with industry standards and best practicesThe test manager is responsible for establishing and maintaining the quality assurance activities within the testing process.9. Continuous ImprovementThe software testing management system will provide a framework for continuous improvement of the testing process. This may include the following:- Periodic review and analysis of the testing process- Identification of improvement opportunities- Implementation of improvement initiativesThe test manager is responsible for ensuring that continuous improvement activities are carried out within the testing process.10. ConclusionThe software testing management system outlined in this document provides a systematic and organized framework for conducting all software testing activities within the organization. By following the processes, procedures, roles, and responsibilities described in this document, the testing team can ensure that software testing is carried out in an efficient and effective manner, leading to the successful completion of software projects.。
软件质量保证(外文翻译文献)

软件质量保证(外文翻译文献)
本文转述自一篇关于软件质量保证的外文翻译文献,以下是其主要内容:
概述
该文献讨论了软件质量保证的重要性以及一些简单的策略来提高软件的质量。
软件质量保证的重要性
软件质量保证对于确保软件能够正常运行且符合用户需求非常重要。
如果软件质量不佳,可能会导致功能故障、数据损失或安全漏洞等问题,给用户带来负面的体验和损失。
简单的策略来提高软件质量
本文献提出了一些简单的策略来提高软件的质量,包括:
1. 测试:通过全面的测试来发现软件中的错误和缺陷。
测试包括单元测试、集成测试和系统测试等。
2. 代码审查:对软件代码进行审查,以发现潜在的问题和改进代码的可读性。
3. 持续集成:通过持续集成来频繁地构建、测试和发布软件,以快速发现和修复问题。
4. 用户反馈:积极收集用户的反馈和建议,以改进软件的功能和性能。
5. 文档化:提供清晰、详尽的文档,以帮助用户了解软件的功能和使用方法。
结论
软件质量保证是确保软件质量和用户满意度的重要手段。
通过采用简单的策略,如全面测试、代码审查和持续集成等,可以提高软件的质量并减少潜在问题的发生。
此外,积极收集用户反馈和提供详尽的文档也是提高软件质量的关键因素。
注意:本文献的内容仅供参考,部分内容可能无法确认或引用来源不明,因此需谨慎使用。
软件测试外包项目成本估算外文文献翻译

文献信息文献标题:Considerations for Cost Estimation of Software Testing Outsourcing Projects(软件测试外包项目成本估算的思考)文献作者及出处:Ismail F F, Razali R, Mansor Z.Considerations for cost estimation of software testing outsourcing projects[J]. International Journal on Advanced Science, Engineering and Information Technology, 2019, 9(1): 142-152.字数统计:英文7816单词,42973字符;中文12514汉字外文文献Considerations for Cost Estimation of Software TestingOutsourcing ProjectsAbstract— 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 andcontributing 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.Keywords—software testing project; outsourcing project; cost estimation; project management; software cost management.I.INTRODUCTIONThe interest in software testing outsourcing implementation has recently become a trend. 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.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. 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. 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. Previous cost estimation guides also do not discuss the costs according tothe context of software testing outsourcing. 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. 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, or unexpected higher outlays. 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.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 METHODFor 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.A.Cost Estimation of Software Testing ProjectPrevious research on software cost estimation of software testing projects has proposed a variety of cost models, techniques, management strategies and best practices 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. 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.The test case complexity is one of the important elements that need to beincluded in the estimation. 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. 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. 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. As defects can be present from various sources such as requirement, design, code, 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. The quality of the testers is also important in making up the team size. 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. 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.Besides that, the turnover rate aspect is also an important element in cost estimation. 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. Predicting the amount of rework is necessary and is expected in testing routine to achieve good qualitysoftware especially in a specified time which could be very costly if the test is overdue. Besides, the cost of the compatibility for the software to be tested in the outsourcing environment needs to be taken into account. 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. 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, legible and stable. Examples of the referred documentation are the Project Plan, Test Plan and estimation guideline. 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.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. The experience can be delineated in two perspectives which are to have domain application knowledge and testing knowledge. For domain application knowledge, the experience is defined by the number of similar projects that the tester has worked on before. As for testing knowledge, it involves the ability to handling the software’s language, tools, technology or equipment used. 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.The attitude of testing personnel involved in the process also influences the estimation. 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. By commitment, testers need to practice testing ethics properly. 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.B.Cost Estimation of Software Outsourcing ProjectThis 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. Participating teams might have to encounter different official work day that overlaps with the official holiday of other teams.One of the common issues of outsourcing project is the cultural value and the language of the teams. The diversity of culture and the huge gap of the language used 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. 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. The political stability of the country must also be taken into account. This issue is viewed based on the political circumstances of the vendor'scountry. 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. 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. 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. Besides that, some costs may need to be invested for project management tools in order to manage the project in distributed settings and test tools to manage the testing activities in particular. 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.One of the best practices for testing outsourcing projects is to send representatives to the vendor’s organization to monitor the work progress. 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. Since the travel includes some geographical distance, related costs for the journey such as transportation and immigration arrangement 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, in which, training session might be required to transfer the knowledge between the teams involved, or for the employee's skill development purposes.The distributed locations in outsourcing setting require specified time to be allocated in order to conduct the knowledge transfer process between involving parties. Longer time spent in the process can lead to significant cost overruns. Therefore, projects that have a higher level of task inter dependency may require more time to be conducted. The level of task capability of the involving parties also mayaffect the time taken to transfer the knowledge among them. 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. 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. 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.Previous studies also indicate that there are many software cost estimation methods available for distributed projects. For example, the algorithmic method, estimating by analogy and expert judgment method. 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.The estimator influences the estimation accuracy. The person should have experience and must be realistic. Experience is emphasized through the use of estimation tools. 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. 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.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 MethodologyThe 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 deeperunderstanding 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.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. 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. Content analysis is one of the qualitative research methods to analyze the written, verbal or communication messages. The method recognizessimilar 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 DISCUSSIONBased 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 paragraphsTABLE I COST ITEMS AND FACTORS FOR COST ESTIMATION OF SOFTWARE TESTINGOUTSOURCING PROJECTFig. 1 Considerations for Cost Estimation of Software Testing Outsourcing ProjectA.Direct CostDirect 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)TestingThe 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 theestimated 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 post conditions, 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.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)InfrastructureThe 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 tasksthat 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.。
软件工程毕业论文文献翻译中英文对照

软件工程毕业论文文献翻译中英文对照学生毕业设计(论文)外文译文学生姓名: 学号专业名称:软件工程译文标题(中英文):Qt Creator白皮书(Qt Creator Whitepaper)译文出处:Qt network 指导教师审阅签名: 外文译文正文:Qt Creator白皮书Qt Creator是一个完整的集成开发环境(IDE),用于创建Qt应用程序框架的应用。
Qt是专为应用程序和用户界面,一次开发和部署跨多个桌面和移动操作系统。
本文提供了一个推出的Qt Creator和提供Qt开发人员在应用开发生命周期的特点。
Qt Creator的简介Qt Creator的主要优点之一是它允许一个开发团队共享一个项目不同的开发平台(微软Windows?的Mac OS X?和Linux?)共同为开发和调试工具。
Qt Creator的主要目标是满足Qt开发人员正在寻找简单,易用性,生产力,可扩展性和开放的发展需要,而旨在降低进入新来乍到Qt的屏障。
Qt Creator 的主要功能,让开发商完成以下任务: , 快速,轻松地开始使用Qt应用开发项目向导,快速访问最近的项目和会议。
, 设计Qt物件为基础的应用与集成的编辑器的用户界面,Qt Designer中。
, 开发与应用的先进的C + +代码编辑器,提供新的强大的功能完成的代码片段,重构代码,查看文件的轮廓(即,象征着一个文件层次)。
, 建立,运行和部署Qt项目,目标多个桌面和移动平台,如微软Windows,Mac OS X中,Linux的,诺基亚的MeeGo,和Maemo。
, GNU和CDB使用Qt类结构的认识,增加了图形用户界面的调试器的调试。
, 使用代码分析工具,以检查你的应用程序中的内存管理问题。
, 应用程序部署到移动设备的MeeGo,为Symbian和Maemo设备创建应用程序安装包,可以在Ovi商店和其他渠道发布的。
, 轻松地访问信息集成的上下文敏感的Qt帮助系统。
【计算机专业文献翻译】软件测试

附录2 英文文献及其翻译原文:Software testingThe chapter is about establishment of the system defects objectives according to test programs. You will understand the followings: testing techniques that are geared to discover program faults, guidelines for interface testing, specific approaches to object-oriented testing, and the principles of CASE tool support for testing. Topics covered include Defect testing, Integration testing, Object-oriented testing and Testing workbenches.The goal of defect testing is to discover defects in programs. A successful defect test is a test which causes a program to behave in an anomalous way. Tests show the presence not the absence of defects. Only exhaustive testing can show a program is free from defects. However, exhaustive testing is impossible.Tests should exercise a system's capabilities rather than its components. Testing old capabilities is more important than testing new capabilities. Testing typical situations is more important than boundary value cases.An approach to te sting where the program is considered as a ‘black-box’. The program test cases are based on the system specification. Test planning can begin early in the software process. Inputs causing anomalous behaviour. Outputs which reveal the presence of defects.Equivalence partitioning. Input data and output results often fall into different classes where all members of a class are related. Each of these classes is an equivalence partition where the program behaves in an equivalent way for each class member. Test cases should be chosen from each partition.Structural testing. Sometime it is called white-box testing. Derivation of test cases according to program structure. Knowledge of the program is used to identify additional test cases. Objective is to exercise all program statements, not all path combinations.Path testing. The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least once. The starting point for path testing is a program flow graph that shows nodes representing program decisions and arcs representing the flow of control.Statements with conditions are therefore nodes in the flow graph. Describes the program control flow. Each branch is shown as a separate path and loops are shown by arrows looping back to the loop condition node. Used as a basis for computing the cyclomatic complexity.Cyclomatic complexity = Number of edges -Number of nodes +2The number of tests to test all control statements equals the cyclomatic complexity.Cyclomatic complexity equals number ofconditions in a program. Useful if used with care. Does not imply adequacy of testing. Although all paths are executed, all combinations of paths are not executed.Cyclomatic complexity: Test cases should be derived so that all of these paths are executed.A dynamic program analyser may be used to check that paths have been executed.Integration testing.Tests complete systems or subsystems composed of integrated components. Integration testing should be black-box testing with tests derived from the specification.Main difficulty is localising errors. Incremental integration testing reduces this problem. Tetsing approaches. Architectural validation. Top-down integration testing is better at discovering errors in the system architecture.System demonstration.Top-down integration testing allows a limited demonstration at an early stage in the development. Test observation: Problems with both approaches. Extra code may be required to observe tests. Takes place when modules or sub-systems are integrated to create larger systems. Objectives are to detect faults due to interface errors or invalid assumptions about interfaces. Particularly important for object-oriented development as objects are defined by their interfaces.A calling component calls another component and makes an error in its use of its interface e.g. parameters in the wrong order.Interface misunderstanding. A calling component embeds assumptions about the behaviour of the called component which are incorrectTiming errors: The called and the calling component operate at different speeds and out-of-date information is accessed.Interface testing guidelines: Design tests so that parameters to a called procedure are at the extreme ends of their ranges. Always test pointer parameters with null pointers. Design tests which cause the component to fail. Use stress testing in message passing systems. In shared memory systems, vary the order in which components are activated.Stress testingExercises the system beyond its maximum design load. Stressing the system often causes defects to come to light. Stressing the system test failure behaviour. Systems should not fail catastrophically. Stress testing checks for unacceptable loss of service or data. Particularly relevant to distributed systems which can exhibit severe degradation as a network becomes overloaded.The components to be tested are object classes that are instantiated as objects. Larger grain than individual functions so approaches to white-box testing have to be extended. No obvious ‘top’ to the system for top-down integration and testing. Object-oriented testing. Testing levels.Testing operations associated with objects.Testing object classes. Testing clusters of cooperating objects. Testing the complete OO systemObject class testing. Complete test coverage of a class involves. Testing all operations associated with an object. Setting and interrogating all object attributes. Exercising the object in all possible states.Inheritance makes it more difficult to design object class tests as the information to be tested is not localized. Weather station object interface. Test cases are needed for all e a state model toidentify state transiti.ons for testing.Object integration. Levels of integration are less distinct in objectoriented systems. Cluster testing is concerned with integrating and testing clusters of cooperating objects. Identify clusters using knowledge of the operation of objects and the system features that are implemented by these clusters. Testing is based on a user interactions with the system. Has the advantage that it tests system features as experienced byusers.Thread testing.Tests the systems response to events as processing threads through the system. Object interaction testing. Tests sequences of object interactions that stop when an object operation does not call on services from another objectScenario-based testing. Identify scenarios from use-cases and supplement these with interaction diagrams that show the objects involved in the scenario. Consider the scenario in the weather station system where a report is generated.Input of report request with associated acknowledge and a final output of a report. Can be tested by creating raw data and ensuring that it is summarised properly. Use the same raw data to test the WeatherData object.Testing workbenches.Testing is an expensive process phase. Testing workbenches provide a range of tools to reduce the time required and total testing costs. Most testing workbenches are open systems because testing needs are organisation-specific. Difficult to integrate with closed design and analysis workbenchesTetsing workbench adaptation. Scripts may be developed for user interface simulators and patterns for test data generators. Test outputs may have to be prepared manually for comparison. Special-purpose file comparators may be developed.Key points:Test parts of a system which are commonly used rather than those which are rarely executed. Equivalence partitions are sets of test cases where the program should behave in an equivalent way. Black-box testing is based on the system specification. Structural testing identifies test cases which cause all paths through the program to be executed.Test coverage measures ensure that all statements have been executed at least once. Interface defects arise because of specification misreading, misunderstanding, errors or invalid timing assumptions. To test object classes, test all operations, attributes and states.Integrate object-oriented systems around clusters of objects.译文:软件测试本章的目标是介绍通过测试程序发现程序中的缺陷的相关技术。
关于软件测试的外国文献

关于软件测试的外国文献软件测试是软件开发过程中至关重要的一环,而外国文献中关于软件测试的研究和实践也非常丰富。
下面我将从不同角度介绍一些相关的外国文献,以便更全面地了解软件测试的最新发展。
1. "Software Testing Techniques" by Boris Beizer:这本经典著作详细介绍了软件测试的各种技术和方法,包括黑盒测试、白盒测试、基于模型的测试等。
它提供了许多实用的指导和案例,对软件测试的理论和实践都有很深入的探讨。
2. "Testing Computer Software" by Cem Kaner, Jack Falk, and Hung Q. Nguyen:这本书介绍了软件测试的基础知识和常用技术,包括测试计划的编写、测试用例设计、缺陷管理等。
它强调了测试的全过程管理和质量保证,对于软件测试初学者来说是一本很好的入门指南。
3. "The Art of Software Testing" by Glenford J. Myers, Corey Sandler, and Tom Badgett:这本书从理论和实践的角度探讨了软件测试的艺术。
它介绍了测试的基本原则和策略,以及如何设计有效的测试用例和评估测试覆盖率。
这本书对于提高测试人员的思维和技巧非常有帮助。
4. "Foundations of Software Testing" by Aditya P. Mathur:这本书系统地介绍了软件测试的基本概念、技术和方法。
它涵盖了测试过程的各个阶段,包括需求分析、测试设计、执行和评估。
这本书还提供了丰富的案例和练习,帮助读者深入理解和应用软件测试的原理和技术。
5. "Software Testing: Principles and Practices" by Srinivasan Desikan and Gopalaswamy Ramesh:这本书介绍了软件测试的原则、实践和工具。
软件测试技术英文作文

软件测试技术英文作文Software testing is an essential part of the software development process. It helps to identify and fix bugs and errors in the software, ensuring that it functions as intended.There are various techniques and methods used in software testing, such as unit testing, integration testing, system testing, and acceptance testing. Each of these techniques has its own unique approach and purpose in ensuring the quality of the software.One common technique in software testing is black box testing, where the tester examines the functionality of the software without knowing its internal code. This allows for a more user-focused approach to testing, as it simulates how an end user would interact with the software.On the other hand, white box testing involves examining the internal code and structure of the software to identifyany errors or vulnerabilities. This technique is more focused on the technical aspects of the software and is often used to ensure its security and stability.In addition to these techniques, there are also various tools and frameworks available for software testing, such as Selenium, JUnit, and TestNG. These tools help to automate the testing process and make it more efficient and reliable.Overall, software testing is a crucial step in the software development lifecycle, and it requires a combination of techniques, methods, and tools to ensure the quality and reliability of the software.。
软件测试外文翻译--GUI自动化测试研究

附录1外文译文GUI自动化测试研究摘要:指出了目前自动化测试所采用的录制技术存在的不足,针对不断变化的图形用户界面测试代码很难维护和扩展的问题,采用基于对象的捕捉技术,设计了以Windows消息机制为基础的GU IATF测试框架,实现了高度灵活并易于扩展的图形用户界面自动化测试。
关键词:软件测试;回归测试;自动化0.引言测试是一种旨在评估一个程序或系统的属性或能力,确定它是否符合其所需结果的活动。
在整个软件开发过程中,从需求分析到系统设计直到代码实现,都会出现或多或少的问题。
如何保障软件的质量,软件测试就成为关键的技术。
软件测试的工作量很大并具有一定的重复性,尤其在测试后期所进行的回归测试中(回归测试在软件出现发展性的改变和修正性改变时运行),需要验证以前发现的问题在新版本中是否解决,大部分测试工作是重复的。
实现软件测试的自动化可以使大量的测试程序化地反复执行,不仅节约了大量的劳动力,而且提高了测试效率并保证了测试的质量。
1.录制技术的不足目前一些录制技术被应用到图形用户界面的自动化测试中,在软件开发周期中,系统需要不断地更新和维护,为了保证测试质量,测试代码对不断变化的系统要有很强的适应能力,换句话说,测试也同样需要维护。
测试脚本的录制过程是根据具体的界面和操作进行的,一旦脚本的执行界面发生改变,运行就会出现异常,甚至仅仅是被操作对象位置的改变或图像分辨率的改变都可能会造成图形用户界面自动化测试的失败,因此,基于录制技术的自动化测试维护的代价相当高。
另外,脚本录制的过程是固定的,所以脚本的运行会完全按照操作步骤,不具备灵活性。
2.自动化测试框架的提出在目前的软件测试中,一个备受关注的问题是如何高效地实现图形用户界面的自动化测试,并使测试代码具有很高的灵活性。
本文提出了一种基于对象捕捉技术的图形用户界面自动化测试框架GUIATF(Graphics User Interface Automation Testing Framework),为测试人员方便地创建并灵活地维护测试代码提供保证。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计(论文) 外文文献翻译外文资料名称:Value-Based Management ofSoftware Testing外文资料出处:Institute of SoftwareTechnology & Interactive System附件: 1.外文资料翻译译文2.外文原文中文3000字基于价值的软件测试管理鲁道夫,斯蒂芬,保罗摘要:根据研究表明测试已经成为软件开发过程中一个很重要的环节,它占据了整个软件开发成本的百分之三十到五十。
测试通常不是用来组织商业价值的最大化,也不是肩负着项目的使命。
路径测试、分支测试、指导测试、变换测试、场景测试以及需求测试等对于软件的所有方面都是同等重要的。
然而在实践中百分之八十的价值往往来自百分之二十的软件。
为了从软件测试中得到最大的投资回报,测试管理需要最大化它的价值贡献。
在本章,我们将更加促进对基于价值的测试的需要,描述支持基于价值的测试管理的实践,勾画出基于价值的测试管理的框架,并举例说明该框架。
关键词: 基于价值的软件测试,基于价值的测试,测试成本,测试利益,测试管理11.1 前言测试是软件质量保证过程中最重要和最广泛使用的方法。
校验和验证旨在通过综合分析, 测试软件确保其正确运行功能,确保软件的质量和软件的可靠性。
在IEEE610.12(1990)中,测试被定义为在规定条件下对执行的系统或者组件进行观察和记录,并对系统或者组件进行评价的活动。
测试在实践过程中被广泛的使用,在保证质量策略的诸多组织中扮演着重要的角色。
软件影响着成千上万人的日常生活,担负着艰巨的任务。
因此软件在不久的将来将显得尤其的重要。
研究表明,测试通常消耗软件开发成本的30%至50%。
对于安全危急系统,甚至更高的比例也不足为奇。
因此软件测试具有挑战的就是寻找更多的有效途径进行有效的测试。
软件测试管理的价值在于努力减少测试成本和满足需求。
有价值的测试管理对于项目目标和商业价值也能有很好的向导。
在第一章,Boehm 列举了很多方面的潜在测试成本。
该例子说明了利用客户结账类型的7%的成本来完成50%的软件测试利益。
尽管百分百测试是一个不太切实际的目标, 然而通过调整测试方法, 仍有很大的空间来改进和节省达到预期的价值。
基于软件工程的价值动力在于目前软件工程的实践研究都是把需求, 测试案例, 测试对象和产品缺陷看的同等重要。
这对测试显然是正确的,它对产品价值间接的做出贡献。
开发和测试的分离使得这问题显得更为突出。
测试往往是一个纯粹的技术问题,将使得测试和商业决策之间曾解链的关系变的更加紧密。
本章主要描述了提高基于价值的测试管理的需求, 解释其基本要素, 讨论现有的实例来支持基于价值的测试, 以及基于价值的测试管理的基本框架。
本章接下来部分的基本结构如下:11.2节讨论测试管理的贡献价值; 11.3节讨论已测案例对于测试管理的支持; 11.4节用例子描述基于价值的测试管理的框架。
本章最后将对具体的再作更进一步的研究。
11.2基于价值测试的描述基于价值的校验和验证的目标被定义为确保软件的实施能够满足其预期的目标价值利益。
如果我们从价值的角度去考虑,那么测试的贡献应该在哪呢?从根本上来说, 可以从两个方面来考虑: 内部方面包括测试成本以及测试效益, 外部方面强调未来系统的威胁以及机遇。
对于基于价值的测试,其关键就是要把这两个方面结合起来,也就是说通过客户和市场需求调整内部测试的过程。
为了使内部和外部两方面因素相结合,只专注于技术方面的测试显然是不恰当的。
相反,测试管理需要有个全局的把握。
例41描述了测试管理内外双方面之间的依赖关系。
内部方面的就如同测试经理对整个项目的控制。
这方面的费用主要来自于软件测试实践以及短期长期的测试。
而外部方面被认为是测试主管所能控制以外的一些利益和参数数据.基于价值的软件测试管理使得测试能够满足以利益为重的价值主张,以及使整个小组聚焦在有价值的测试方向上。
对于软件测试的外部观点的首要问题是“我们如何确保软件系统的价值目标?”这目标就是通过协调价值主张来测试软件集中的有价值部分,最重要的品质以及项目风险的及时调整等.回答这样的问题包括市场机遇,项目的价值主张以及成本效益。
参考第一章关于机遇和风险的详细介绍以及参考第七章的价值主张的引出与调和。
内部观点是建立在价值主张的利益之上,以及测试的预算代表着整个项目的一个大概水平。
这主要的问题就是如何把测试作为一项投资活动。
为了能够高效迅速的测试及降低开发预算。
适当的内外部交流协调能够满足测试的利益价值。
测试的价值贡献测试与其他的开发环节诸如代码和用户界面设计相比,它不能立即对产品创造价值。
然而测试提供和支持软件开发过程中产生的有价值的任务活动。
理解测试贡献价值的关键点在于测试的贡献效应。
测试的贡献建立了测试与最终产品价值利益之间的关系。
最直接的客户是直接与测试小组有密切联系的程序开发者和项目主管。
在基于价值的软件工程测试过程中的集中力量是顾客和用户(见第七章)。
顾客和用户通过设定语境和范围来进行测试达到测试的价值目标。
测试的客户开发人员,项目主管,质量主管,顾客,分析者,最终用户或者维修人员们都得益于软件系统的分析,依靠反馈来检测问题,降低其不确定性,做出相关的决定来加快产品进程。
下面的例子显示了不同组对于测试需求的反馈信息:∙顾客和用户关于多大程度上需求一致是否满意以及在多大程度上满足软件的价值利益.测试还对项目的进程提供可见性和洞察力.通过测试的结果可以了解已通过的测试案例.当验收测试时出现不实用的或者失败的显示在实际环境中才能出现的问题,α和β测试提供了一个更加坚实的基础来验证结果。
∙销售和产品主管从测试计划、定价、促销和分配方面获取相关的信息。
产品实际的质量与顾客和用户所期望的质量之间的差异很容易会导致误解和错误的设想以至于降低或者阻止了真正价值的实现。
为了能够成功地达到这些期望以及满足个人或组织的目标,通过客户需求来调整产品设计满足某些功能。
∙对于项目主管,测试支持了风险管理和项目进程的估计。
重点是识别和排除潜在的价值破坏和抑制价值功绩的风险。
早期的大幅降低项目绩效的严重缺陷,是一个主要的目的。
测试降低了不确定性和帮助项目主管对于清除缺陷、系统稳定性以及产品更新发布能够作出更好、更明智的决定。
∙质量主管对于问题的识别以及对特定问题的动态趋势较为感兴趣。
测试结果对于项目评估、对于质量策略的保证以及进程的改进提供了帮助。
Rosenberg讨论了测试如何对确保质量作出贡献并展示了测试问题如何验证如何修正以此来提升项目进程。
开发者和用户了解相关问题的当前状态,并且提供相关数据来衡量及预测软件的质量和可靠性。
∙开发人员通常需要获取反馈信息来验证测试实施是否完整,是否符合标准,是否满足质量要求。
为了保证稳定性,测试提供了相关缺陷的详细信息,提示测试失败的原因。
除此之外,测试对于项目缺陷的改进作出反馈。
例如,通过相关的修改以后需要测试其是否随着相关的改动使原先的功能有所改动或者出现衰退的情况,这些都是需要注意的。
对于需求工程师来说,测试对于验证和确认需求是很有价值的。
Weinberg曾指出“最有效的方法之一就是通过测试案例就象测试一个完整的系统来形成测试需求”。
黑盒测试通过其需求帮助能够保证它们的完整性,准确性,透明性及简明性等。
因此测试能够提升要求且向着测试驱动的方向发展。
简言之,测试能够通过降低计划的不确定性和风险性来提升利益,作出相关的决定,努力控制把不必要的消耗减少到最低程度(内部原因)。
尤为重要的是,它有助于实现预期的价值利益。
这些利益的得来也并不是免费的,测试的代价通常也是有意义的(外部原因).测试可以被理解为购买信息,也可被认为降低成本风险,减少不确定性的投资活动。
在成本和利益的投资上需要对测试需求作出相关的决定。
因此接下来的两个问题是:什么是测试成本?什么是价值活动的测试利益?Value-Based Management of Software TestingRudolf Ramler, Stefan Biffl and Paul GrünbacherAbstract: Testing is one of the most resource-intensive activities in software development and consumes between 30 and 50% of total development costs according to many studies. Testing is however often not organized to maximize business value and not aligned with a project’s mission. Path, branch, instruct ion, mutation, scenario, or requirement testing usually treat all aspects of software as equally important, while in practice 80% of the value often comes from 20% of the software. In order to maximize the return of investment gained from software testing, the management of testing needs to maximize its value contribution. In this chapter we motivate the need for value-based testing, describe practices supporting the management of value-based testing, outline a framework for value-based test management, and illustrate the framework with an example. Keywords: Value-based software engineering, value-based testing, cost of testing, benefits of testing, test management.11.1 IntroductionTesting is one of the most important and most widely used approaches for validation and verification (V&V). V&V aims at comprehensively analyzing and testing software to determine that it performs the intended functions correctly, to ensure that it performs no unintended functions, and to measure its quality and reliability (Wallace and Fujii, 1989). According to IEEE 610.12 (1990) testing is defined as “an activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component.”Testing is widely used in practice and plays a central role in the quality assurance strategies of many organizations. As software pervades more and more critical tasks and affects everyday life, security, and well being of millions of people (Ferscha and Mattern, 2004), the importance of testing will increase in the future. Studies show that testing already consumes between 30 and 50% of software development costs (Beizer, 1990). Even higher percentages are not uncommon for safety-critical systems. Finding more efficient ways to perform effective testing is therefore a key challenge in testing (Harrold,2000).Managing software testing based on value considerations promises to tackle increasing testing costs and required effort. Value-based test management could also provide guidance to better align testing investments with project objectives and business value. In Chapter 1, Boehm presents an impressive example of potential test cost savings (on project level as well as on global scale) by focusing testing on the most valuable aspects. The example illustrates that with an investment-oriented focus on testing 7% of the customer billing types (1 in 15) achieved 50% of the benefits of testing the software. Completely testing the system requires a constantly increasing effort and, due to decreasing marginal benefits, results in a negative return on investment. Although a “100% tested” status is not a practical goal, there is still room for a considerable amount of improvement and savings by better adjusting testing to its value contribution.The motivation for value-based software engineering comes from the fact that “much of current software engineering practice and research is done in a value neutral setting, in which every requirement, use case, object, and defect is treated as equally important” (Boehm, 2003). This is especially true for testing, where its indirect contribution to product value leads to a value-neutral perception of testing. The common separation of concerns between development and testing exacerbates the problem. Testing is often reduced to a purely technical issue leaving the close relationship between testing and business decisions unlinked and the potential value contribution of testing unexploited.The objectives of this chapter are to motivate the need for value-based management of testing, to explain its underlying elements, to discuss existing practices that support value-based testing, and to outline a general framework for value-based test management. The remainder of this chapter is thus structured as follows. In Section 11.2 we discuss test management under the light of its value contribution. In Section 11.3 we describe existing practices that support value-based testing. Section 11.4 depicts a value-based test management framework using an example for illustration. An outlook on further research directions closes the chapter.11.2 Taking a Value-Based Perspective on TestingThe objectives of value-based verification and validation are defined as “ensuring thata sof tware solution satisfies its value objectives” and organizing V&V tasks to operate as an investment activity” (Boehm and Huang, 2003). What are the contributions of testing if we look at it from a value-based perspective? Fundamentally, we can consider two dimensions: The internal dimension of testing covers costs and benefits of testing. The external dimension emphasizes the opportunities and risks of the future system that have to be addressed. The key challenge in value-based testing is to integrate these two dimensions, i.e., align the internal test process with the value objectives coming from the customers and the market.It becomes clear that a pure focus on the technical aspects of testing (e.g., the testing methods and tools) is inappropriate to align the internal and external dimensions. Instead, test management activities need to adopt a value-based perspective.Figure 41 illustrates the external and internal dimensions of test management and their interdependencies. The internal dimension is similar to the scope of control of the test manager in the project. This dimension addresses costs from software testing practice as well as short-term and long-term benefits of testing. The external dimension considers stakeholders and parameters outside the scope of control of the test manager. Value-based test management organizes testing to satisfy value propositions of the stakeholders and to focus the team on the most worthwhile testing targets.The key question coming from the external view of softwar e testing is: “How can we ensure the value objectives of the software system?” The goal is to reconcile stakeholder value propositions by focusing testing efforts on the most worthwhile parts of the software, the most important quality characteristics, and the most urgent symptoms of risks that threaten the value contribution of the project. Answering this question involves market opportunities and threats, project-specific customer value propositions, as well as costs and benefits. Please refer to Chapter 1 for details about opportunities and risks and to Chapter 7 for elicitation and reconciliation of stakeholder value propositions.The internal view builds on the stakeholder value propositions and the test budget that represents the possible level of testing effort in a project. The key question in this view is: “How can we organize tes ting as an investment activity?”The goal is to achieve effective and efficient testing considering changes in development and budget reductions. Internalproject stakeholders consider how plans for software development and associated testing activities can contribute to stakeholder value propositions by supplying system functionality and performance, but also by limiting the impact of project-relevant risks.Appropriate communication is necessary to balance the external and internal dimensions of testing to assure the consistency of testing objectives with stakeholder value propositions.Value Contribution of TestingCompared to other development activities such as coding or user interface design, testing does not create immediate product value. Instead, testing informs and supports other value generating tasks in software development. A key to understanding the value contribution of testing is the contribution chain of testing (see the benefits realization approach described in Chapter 1). The contribution chain establishes the relation of testing to the final product that ultimately creates value for the stakeholders. Usually, the contribution chain of testing is comp lex and involves several different “clients,” who benefit from testing.Direct clients of testing are developers and project managers, who directly interact with the testing team (representing the internal dimension). However, in the spirit of value-based software engineering important parties for testing are customers and users (representing the external view). Customers and users are the source of value objectives (see Chapter 7), which set the context and scope of testing. Within this context testing informs developers and project managers to what extent value objectives are met and where improvement is required.Clients of TestingDevelopers, project managers, quality managers, customers, analysts, end users, or maintenance staff benefit from a thorough analysis of the software system and rely on feedback for detecting problems, reducing uncertainty, making decisions, or improving products and processes. The following examples show the kind of feedback from testing required by different groups:Customers and users get information as to what extent mutually agreed requirements are satisfied and to what extent the software meets their valuepropositions. Testing also provides visibility and insights about project progress.Passed tests reduce the odds of misbehavior and acceptance decisions are thus frequently based on the results of tests. When acceptance tests are impractical or fail to reveal hidden problems that become visible only in real-world conditions, alpha and beta testing provide a more solid foundation for acceptance decisions.∙Marketing and product managers require information from testing for planning releases, pricing, promotion, and distribution. A gap between the actual quality and the quality expected by customers and users most certainly leads to misleading expectations and wrong assumptions that diminish or prevent value realization (Boehm, 2000b). In order to successfully manage these expectations and to satisfy individual and organizational objectives, reconciling customer needs with product design has to consider quality in addition to functionality.∙For project managers testing supports risk management and progress estimation.The focus is on identifying and eliminating risks that are potential value breakers and inhibit value achievements. Early detection of severe defects that significantly reduce project performance is a major objective. Ideally, testing reduces uncertainty and helps project managers to take better, more informed decisions, e.g., for defect removal, system stabilization, and release decisions.∙Quality managers are interested in the identification of problems and in particular problem trends. Results from testing are the input for the assessment of development performance and provide the basis for quality assurance strategies and process improvement. Rosenberg (2003) discusses how testing contributes to quality assurance and shows that problems need to be documented, corrected, and can then be used for process improvement; after assessing problem reports for their validity corrective actions are implemented in accordance with customer-approved solutions; developers and users are informed about the problem status; and data for measuring and predicting software quality and reliability is provided.∙Developers require feedback from testing to gain confidence that the implementation is complete and correct, conforming to standards, and satisfying quality requirements. For stabilization, testing provides details about defects andtheir estimated severity, information for reproducing defects, and support for revealing the cause of the failures. Besides, testing provides feedback for improvement and learning from defects. For example, throughout maintenance a detailed and reproducible description of problems contributes to the efficient implementation of changes and regression tests ensuring that these changes do not break existing functionality.For requirements engineers, testing is valuable to validate and verify requirements.Gause and Weinberg (1989) point out that “… one of the most effective ways of testing requirements is with test cases very much like those for testing a complete system.” Deriving black-box tests from requirements helps to assure their completeness, accuracy, clarity, and conciseness early on. Tests thus enhance requirements and enable development in a test-driven manner.To summarize, testing helps to realize benefits by reducing planning uncertainty, mitigating risks, making more informed decisions, controlling efforts, and minimizing downstream costs (the internal dimension).More importantly, it helps to realize the expected stakeholder value propositions (the external dimension).These benefits, however, do not come for free and the costs of testing are often significant. Testing can be perceived as buying information and can be considered as an investment activity as it reduces the costs of risks, uncertainties, and the reward of taking risks. Making sound decisions about the investment in testing requires understanding their implications on both costs and benefits. The underlying questions therefore are: What are the costs of testing, and what are the benefits of testing for value generating activities?10。