




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A Day in the Life of a Quality Assurance Tester质量保障测试人员的一天This paper will discuss the day to day activities of being a tester and instilling quality into software. Begins with a discussion of what is software testing, what is quality assurance, how do the two relate to each other, what are the daily
2、 tasks involved in software testing and Quality Assurance, what are the pain points and areas for improvement, and how an individual tester can add value to the development process no matter what type of software development life cycle.这篇文将讨论测试人员日常工作,及怎样将质量灌输到软件中。我们将先讨论什么是软件测试,什么是质量保障,它们之间如何关联?软件测试和
3、质量保障涉及到哪些日常工作,有哪些问题点和领域可改善,以及作为一个测试者,如何在任何软件开发生命周期中,都能对开发过程提供价值呢。What is Software Testing?什么是软件测试?Software testing is the systematic process by which an analyst uncovers defects in software. What are defects, you might ask? Defects are flaws in the code that cause a software application to break. Wh
4、ile no software is completely defect- free, it is the aim of testers to reduce the number of defects found in software and to instill quality in the software application. Software testing includes the process of validating that the software has incorporated the user requirements present in the Softw
5、are Requirements Specification document and meets users needs. Software testers analyze software to see if the software conforms to user expectations. Software testing is one of the activities designed to adequately assure that the software has the necessary quality required by the users.软件测试是分析者用来发
6、现软件缺陷的有组织的过程。你可能会问,什么是缺陷?缺陷是代码中导致软件应用中断的问题。没有任何软件是完全无缺陷的,测试者的目标是减少在项目中找到的缺陷,并且将质量灌输到软件应用中。软件测试包括检验软件不能满足用户需求规格说明中描述的需求及不能满足用户所需的过程。软件测试者通过分析软件来获知软件是否符合用户的期望。软件测试是一种设计来适当保障软件符合用户所需质量的活动。What is Quality Assurance?什么是质量保障?Quality Assurance is the sum of all the activities designed to adequately assure
7、that all the software processes in place have been done in an effective and efficacious manner. It involves both doing testingright and doing the right testing. Software Quality Assurance checks that the software processes are correct and are in compliance with the standards that operate within an o
8、rganization. Quality Assurance involves more than software testing and yet software testing is necessary to the Quality Assurance profession. Without it, one cannot say that a Quality Assurance process is in place.How do the two relate to each other?质量保障是恰当的确保软件过程在有效的方式下,被有条不紊地被执行的所有活动的汇总。它涉及到正确的做测试
9、和做正确的测试。软件质量保障检查软件过程是否正确且符合组织内部运作的标准。质量保障涉及到软件测试外更多的内容,但软件测试依然是质量保障专业需要的内容。缺了它,就不能称保证质量保障过程是正确妥当的。它们之间如何互相关联呢?As you can see, Software Testing is just one aspect of Software Quality Assurance. Software Testing is usually called Quality Control. QC is a component of a QA plan in an organization. In s
10、ome organizations, the Software Testing role is split from the Software Quality Assurance Analyst role. In such an organization, Software Quality Assurance involves completion of technical checklists and document reviews to verify that both the software and documents are in compliance with standards
11、.就如你看到的,软件测试只是软件质量保障的一个方面。软件测试通常被称作为质量控制。在组织中,质量控制是质量保障计划中的一个组件。在一些组织中,软件测试角色从质量保障分析师角色中被剥离出来。在这样的组织中,软件质量保障涉及到完成技术检查列表和文档评审以检验软件和文档均能符合标准。Daily Tasks Involved in Software Testing and Quality Assurance 软件测试和质量保障的日常任务Once a Software Requirements Specification (SRS document is produced, the tester “te
12、sts” the document to make sure that therequirements are complete, correct, consistent, and testable. In an agile environment, software requirements are tested as they are written. In a Waterfall SDLC, first the SRS is written and then testing the document occurs. On the topic of completeness, correc
13、tness, consistency, and testability: completeness is measured by whether or not the requirement tells you where to test, how to test, and what to test. Correctness implies that you know something about the application being tested. You have to know a little bit about the software to know if the requ
14、irement is correct.A consistent requirement is one that has no logical flaws. A testable requirement is one for which you can write a test case.软件需求规范一旦被产出,测试人员就“测试”文档确认需求是否完整、正确、一致,和可被测试。在一个敏捷的环境中,软件需求一旦编写出来就会被测试。在瀑布式的软件开发生命周期中,软件需求规范先被编写出来,然后测试它的完整性、正确性、一致性和可测试性。完整性通过需求是否能告诉你在哪里测试、如何测试及要测试什么来衡量。正确
15、性意味着你知道要测试的应用的一些方方面面。你必须对你要测试的软件有些了解,才能知道需求是否正确。一致性是指需求中不存在逻辑缺陷。可测试的需求是指一份你可以为它编写测试案例的需求。Before or after the requirements review, a Master Test Plan is written which includes an Introduction, Background, Scope, Acronyms, Definitions, Features to be Tested, Features not to be Tested, Constraints, Ass
16、umptions, Risks and Contingencies, Schedules, Roles/Responsibilities, and References. The Master Test Plan is used by the test team to determine how long testing will take. Also, the tester uses the MTP as a testing plan. The Introduction, Background, Scope, Acronyms, Definitions, and References are
17、 preliminary sections in the test plan. They outline the background of the project, the intended audience and exactly what the project definition is-what it includes and what it does not include. The Acronyms outline the abbreviations used in the test plan and theDefinitions section defines any new
18、terms that may be used in the test plan. The References section lists the documents used to create the test plan. Typically, they refer to the SRS and the Software DesignDocuments. The “Features to be tested” section includes the list of all the functional requirements, performance requirements, usa
19、bility requirements, and security requirements that will be tested in the software. The “Features not to be tested” section includes any features that will be excluded from the testing. The Constraints and Assumptions section identifies those factors that will impact the project and the software tes
20、ting effort as well as any underlying beliefs that are held regarding the project. Constraints also represent the limitations of the software project. In the Risks and Contingencies section, all the risks along with contingency plans and mitigation strategies arepresented. No one likes to discuss ri
21、sks but that should be one of the first issues discussed and planned for when formalizing the project plan. Risk analysis is one way to mitigate the risks inherent in software development. Risk analysis is a systematic process that weighs and prioritizes risks of each requirement. The Schedules sect
22、ion discusses the timeline for all the testing activities to take place. TheRoles/Responsibilities section outlines who is responsible for what deliverable. The last section is the Appendix section. These sections are not usually in the order I have presented them in but this listing does include th
23、e major pieces of a Master Test Plan.在需求评审之前或之后,一个主测试计划会被编写,包括介绍、背景、范围、缩略语、定义、将被测试的特性、不被测试的特性、约束、假设、风险和意外、日程表、角色/责任、和参考。主测试计划被测试团队用来决定测试工作将被执行多长时间。测试人员也使用主测试计划作为测试计划。介绍、背景、范围、术语、定义和参考是测试计划的前序。它们简述项目的背景,预期的读者是谁及项目的确切定义是什么(包括哪些内容和不包括哪些内容)。缩略语简要描述了测试计划中使用到的缩写。定义章节定义了在测试计划中使用到的新术语。参考章节列出了建立测试计划用到的文档资料。典
24、型情况,测试计划引用了软件需求规格和软件设计文档。“将被测试的特性”章节包括所有软件需测试的功能特性的列表、性能需求、可用性需求、和安全需求。“不被测试的特性”章节包括不会被测试的特性。约束和假设章节鉴定出有那些会影响到项目和软件测试的因素,也包括任何项目所持有的基本信念。约束也表述了软件项目所受的限制。在风险和意外章节,所有的风险和意外处理计划及缓解策略一起被表述。没有人喜欢讨论风险,但是这应该是在规范项目计划时,最先的被讨论的问题之一。风险分析是缓解软件开发固有的风险的方法之一。风险分析是处理每个需求涉及到的风险的重要性和优先级的一个系统过程。日程表章节讨论测试活动发生的时间。角色/责任章
25、节简述了谁负责交付什么。最后的一个章节是附录章节。章节之间通常并不是按照我所描述的顺序,但列出的内容已经包括了主测试计划的最主要的那些部分。After the review of the SRS is done, the tester then begins writing either test cases or use cases from the SRS. Use cases document how the system interacts with various actors while test cases are much more specific. Depending on
26、 the approach, a test case or use case document is produced. Lets assume the tester writes test cases. In the test case document, the tester will generally put the description, test steps, expected results, actual results, the pass/fail results, and screen shots. The screen shots are a necessary add
27、ition after the testing has started to show evidence that a test case has passed. The test steps are also known as the test script. For the sake of simplicity, lets assume a manual testing approach right now. Later, the discussion will turn to automated testing.在需求评审结束后,测试人员开始依照软件需求规格写测试案例或用例。用例记录系统
28、如何和多种角色进行交互,而测试案例的编写更加具体得多。依照使用的方法,一个测试案例或者用例文档被产出。我们假设测试人员编写测试案例。在测试案例文档中,测试者通常要放入描述、测试步骤、期望的结果、实际结果、通过/失败结果和屏幕截图。在测试已经开始以后,屏幕截图是一个用于证明测试已通过的必要附件。测试步骤通常也叫做测试脚本。为了简化问题的描述,这里我们假设采用的是手工测试的方法。迟一些,我们会转向自动化测试的讨论。The test case document along with the Master Test Plan is then submitted for review as part o
29、f the formal review of the work product. Revisions are made based on the outcome of the review. At the review meeting, all the stakeholders are present including the requirements analyst, developers, the testers, project manager, and if there is a separate person performing an SQA Analyst role, then
30、 he/she is also asked to the review. Each page is discussed to see if any changes need to be made or any points need to be clarified. Once the issues are noted, the tester revises the Master Test Plan and the test cases based on the formal review. Issues are tracked to closure and a decision is made
31、 to haveanother meeting to approve the work product or handle the review of the work product through email.接下来,作为工作成果中正式评审的一部分,测试案例文档和主测试计划一起被提交评审。基于评审产生修订后的版本。所有的关系人需出席评审会议,包括需求分析师、开发人员、测试人员、项目经理。如果有一个独立的执行软件质量保障的分析师角色,他(她)也被要求参加评审。讨论每一页的文档,找到是否需要作出一些修改,或需要阐明一些问题。一旦问题被记下来,测试人员基于正式评审来修订主测试计划和测试案例。问题
32、将被跟踪直到被关闭,并通过其它批准工作产出的会议制定决策,或者通过email 处理工作产出评审。 The tester must also produce a Traceability Matrix which ties the Software Requirements Specifications to the Software Design Document and to the Test Case document. There should be at least a one to one mapping or a one to many mapping of requirement
33、s to test cases. In some firms, a QA Analyst/Tester must also review the Software Design Document making sure that every requirement is accounted for in the SDD. In this way, a tester can adequately assure that every test case is traceable to a requirement and every requirement is traceable to a sof
34、tware routine, option, or menu. Traceability is a key quality attribute of a software testing process.测试人员还需要产出一个绑定软件需求规格到软件设计文档和测试案例文档的跟踪矩阵。在需求和测试案例之间最少需要建立一对一或者一对多的映射。在一些公司,质量保障分析员/测试人员还需要评审软件设计文档,确认每一个需求都已经在软件设计文档中进行了说明。用这种方法,测试人员能完全确认每一个测试案例可以跟踪到一个需求,及每一个需求可以跟踪到一个软件程序、选项,或者菜单。可跟踪性是一个软件测试过程里的关键质量
35、属性。 After development of the code is completed and the build is delivered to the testers then the actual testing begins. Each test case is executed against the application and pass/fail results are recorded. Screen shots are taken as well. Any defects are recorded using a defect tracking tool such a
36、s Rational ClearQuest, Mercury Quality Center, or another defect tracking tool. There should be a process in place for defect tracking and defect resolution. Typically, when the tester writes up a defect in a defect tracking tool, the points to include are the stage of testing, subject, description
37、of the problem, the steps to repeat, and a screen shot if possible. The description of the problem should be recorded as what is the issue that needs to be corrected and where the error is rather than a recording of what is simply left out since no one would be able to determine whether that is a pr
38、oblem. I have seenSharePoint sites used for defect tracking. When such a site is used, it should include the stage of testing that the defect was found. Even when using Rational ClearQuest or Mercury Quality Center, the stage of testing should be noted depending on the type of SDLC that is in presen
39、t in the organization.在代码的开发完成且构建分发到测试人员手中时,实际的测试开始了。针对应用执行每一个测试案例,成功/失败结果被记录下来。同时,用屏幕截图截取结果 。 任何缺陷都被用缺陷跟踪工具(例如Rational ClearQuest 、Mercury Quality Center或其他缺陷跟踪工具)记录下来。缺陷跟踪和缺陷解决需要有一个适当的过程。典型情况下,当测试人员在测试跟踪工具中记录一个缺陷,如果可能要包括测试的阶段、主题、问题的描述、重复的步骤及屏幕截图。问题的描述需要记录需要修正的错误是什么和错误在什么地方,而不是一条讨论的记录,因为没人能去确定那是否一个
40、问题。我曾看到SharePoint 站点被用来做缺陷跟踪。当这样的一个站点被使用,当缺陷被发现时,需要记录测试的阶段。甚至当你使用Rational ClearQuest和Mercury Quality Center,也要根据组织中使用的软件生命周期的类型来确定是否记录测试的阶段。Depending on the severity of the defects, a new build is created to correct the defects found. The tester retests the defect to make sure it is fixed and then d
41、oes a light regression around that area of functionality to make sure nothing else has broken. Once the tester notifies the team that internal testing is done, then depending on the SDLC, the code is released into production or handed off to the test sites, if any for field testing. If the test site
42、s find defects they are reported to the development team and a new build is released which will then have to go through internal testing before being released to the test sites again. Defects are recorded as before.根据缺陷的严重性,需要修正找到的缺陷,并为此建立一个新构建。测试人员重新测试缺陷来确认它已经被修正,然后在缺陷的功能区域执行一个轻量的回归测试,确认没有其它问题被引发。一
43、旦测试人员通知团队内容测试已经完成,依赖于软件开发生命周期,代码被作为产品发布,或根据需要发布到测试网站上做现场测试。如果测试网站发现有缺陷,将缺陷报告给开发团队,新的构建将被发布,然后先经过内部测试,再发布到测试网站。缺陷像以前一样被记录下来。Automated Testing自动化测试In automated testing, instead of a Master Test Plan or a along with one, an Automation Test Plan is written that will outline exactly how the automation wi
44、ll proceed and the approach taken. Once that is written, the creation of the automated test scripts begins and corresponds with the requirements written in the SRS o r RSD Requirement Specification Document. After a build is delivered, the test scripts are run against the application to see what has
45、 broken. If it is a true defect, then the defect is written up using the same tools as in manual testing. Depending on the number and severity of changes, a new build is delivered and the automated test scripts are run again against the application. Once the tester has found no defects, he/she can r
46、eport that testing is completed and the build is put into production.在自动化测试中,一份自化测试计划被编写出来,用于概述自动化将如何执行及被选中的测试方法。它可能是被用来完全替代主测试计划,又或者仅和主测试计划一起被编写。一旦文档被编写后,自动化测试脚本开始对应软件需求规格和需求研究文档中的需求进行编写。在构建被分发后,测试脚本针对应用运行来检查是否存在问题。如果确实是一个缺陷,那么缺陷被用和手工测试一样的工具记录下来。依赖修改的数量和严重程度,一个新的构建被分发,并再次针对应用运行自动化测试脚本。一旦测试人员发现已经不存在
47、缺陷,他/她可以报告测试已经结束,构建已经可以成为产品。Pain Points and Areas for Improvement可改善的问题点和领域1. Building trust in the SQA Tester I had a development manager tell me once that it takes a long time for a project manager to be trustful of a tester. Fortunately, that particular situation worked in my favor but it can be
48、hard for the development team to trust that the tester is going to perform due diligence on the testing project. That is, that he/she will find out and uncover everything there is to know about the project and the coding that can help him or her test the application thoroughly. Often times, this can
49、 be overcome with increasedcommunication and explanation to the project manager and developers the reasoning behind why particular actions are taken.1.建立对软件质量保障测试人员的信任 我的一个开发经理有一次告诉我,项目经理需要很长时间才会信任测试人员。幸运的是,我碰到了这种特别的情况。但是让开发团队信任测试人员将会尽职尽责去执行工作有可能是困难的。那意味着,他/她将找出或揭露所有关于项目相关的事和可以帮助他或她完全测试项目的编码。很多时候,通过
50、增加交流,并向项目经理和开发者解释为何要执行这些特别的活动,这个问题可以被克服。2. Developers who do not believe in the value of Software Testing and Quality Assurance Many times, testers are faced with a situation in which they are constantly butting heads with the developers. Usually, this comes from an antiquated belief that testers do
51、 not know what they are talking about or that anyone can test. However, testing is a skill and it takes years to finely perfect the craft of testing software. Sometimes, the only recourse a tester has is to take the issue up with a much more senior tester who has the position and the backing to tell
52、 the developer to look at the testers findings.2.开发人员不相信软件测试和质量保障的价值 测试人员会经常面对着和开发人员冲突的情形。 通常来说,这来自一种已过时的想法,测试人员并不知道开发人员所做的事或者没有人能测试系统。可事实是,测试是一种技能,而且人们花费了很多年来完善测试软件产品。有些时候,测试人员只有依赖于让一个有地位和背景,更资深测试人员去告诉开发人员,让他们去看测试人员发现的问题。3. Inadequate amount of time to test sometimes there just isnt enough time wit
53、hin the project schedule to adequately test thesoftware. A way to circumvent this issue is to test the requirements as they are written and build the test cases while the requirements are being written. The other thing to do here is to have people who can adequately scope out a project and the deliv
54、erable dates. Also, regular meetings with staff help to identify the status of key personnel in the software development project.3.测试时间不足 很多时候,仅仅是项目计划中没有足够的时间进行充分的测试。一个解决这个问题的办法是在需求被编写时就同时测试它,并在需求被编写时,就构建测试案例。另外要做的事是找一个能够评估项目和分发日期的人。另外,在软件开发项目中,人员常规例会有助于鉴别出关键人物。4. Poorly written requirements sometim
55、es the requirements are incorrectly captured and need to be revised as the software development project proceeds. This situation is costly to the organization as well as the test team in terms of both money and time. This situation could lead to scope creep in which the delivered code exceeds what h
56、as been written in the requirements. There is no real workaround for thisissue. The best thing to do is nip it in the bud when you see scope creep happening. One way to do this is to make a solid decision beforehand to gain user signoff on the SRS so that scope creep doesnt happen. An other way to n
57、ip it in the bud is to have a change control board in place that approves SRS changes. The change control board then becomes responsible for cost overruns. This avoids the project manager being blamed for scope creep.4.糟糕的需求撰写 - 有时候,需求没有被正确的捕捉,并在软件开发项目过程中需要修订。这种情形对于组织和测试团队的钱和时间都会有耗费。这种情形会导致范围渐增(Scop
58、e Creep),从而使分发的代码超过需求中所编写的内容。对此问题,并没有一种真正的解决方案。最好的方法是当发现范围渐增发生时就即时制止。一个方法是通过获得用户在软件需求规格上的签字,预先使得决策变得稳定,这样范围渐增就不会发生。另外一个制止它的办法是,有一个变更控制委员来批准软件需求规格变更。改由变更控制委员来对费用超支负责。这避免了项目经理由于范围渐增而遭责难。5. Not enough testing resources This issue is a situation for upper management to handle. When there are not enough
59、testing resources, it affects the schedule and could lead to burnout of the few testers that are there to test the product.5.没有足够的测试资源 这个问题是需要高层去处理的情形。当没有足够的测试资源,它会影响到时间表,并且会导致那些过少的测试项目的测试人员们筋疲力尽。6. Not enough training for testers This situation could lead to testers not understanding the software under test. It affects both time required to test and the money involved in the testing effort.6.测试人员没有足够的培训 这种情形会导致测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论