敏捷测试感悟(转)
敏捷分享培训心得体会范文

在当今快速变化的工作环境中,敏捷方法论已成为许多企业和团队追求的高效工作方式。
近期,我有幸参加了一次敏捷分享培训,通过这次培训,我对敏捷有了更深入的理解,以下是我的一些心得体会。
首先,敏捷的核心思想让我深受启发。
敏捷方法论强调的是快速响应变化、持续交付价值、鼓励团队合作和拥抱失败。
在培训中,我们学习了敏捷宣言的四大价值观:1. 个体和互动高于流程和工具;2. 工作软件高于详尽的文档;3. 与客户合作高于合同谈判;4. 响应变化高于遵循计划。
这些价值观让我意识到,在团队协作中,人的因素比工具和流程更为重要。
只有团队成员之间保持良好的沟通和协作,才能确保项目的顺利进行。
其次,敏捷流程的实施让我受益匪浅。
培训中,我们学习了Scrum、Kanban等敏捷流程。
这些流程通过迭代、增量开发,让团队在较短的时间内完成项目,并快速响应客户需求。
以下是我对两种流程的一些体会:1. Scrum:通过每日站立会议、迭代计划、评审和回顾,Scrum帮助团队保持高效的工作节奏,及时发现问题并调整计划。
在这个过程中,团队成员的沟通和协作至关重要。
2. Kanban:Kanban通过可视化工作流程,帮助团队控制工作量和节奏。
通过限制在进度中的任务数量,Kanban避免了工作积压,提高了工作效率。
此外,培训还强调了敏捷团队的建设。
一个高效的敏捷团队需要具备以下特点:1. 明确的角色定位:每个成员都清楚自己的职责和任务,有利于提高团队协作效率。
2. 良好的沟通能力:团队成员之间保持开放、坦诚的沟通,有助于及时解决问题,提高团队凝聚力。
3. 持续学习:敏捷团队需要不断学习新技术、新方法,以适应快速变化的工作环境。
4. 拥抱失败:在敏捷开发过程中,失败是不可避免的。
团队成员应该学会从失败中吸取教训,不断改进。
通过这次敏捷分享培训,我深刻认识到敏捷方法论在提高团队协作效率、快速响应变化等方面的优势。
在今后的工作中,我将努力将这些理念付诸实践,为团队和公司创造更多价值。
测试工作后心得体会

作为一名刚刚结束测试工作的新人,回首这段时间的经历,心中感慨万分。
在这里,我想分享一下我在测试工作中的心得体会,希望能够对即将步入这个行业的同仁们有所帮助。
一、测试工作的重要性首先,我要强调的是测试工作的重要性。
在软件开发过程中,测试是不可或缺的一环。
一个好的测试团队,能够保证软件产品的质量,提高用户体验,降低售后成本。
以下是我对测试工作重要性的几点认识:1. 确保软件质量:测试工作可以帮助我们发现软件中的缺陷和问题,从而提高软件的稳定性、可靠性和安全性。
2. 提高用户体验:通过测试,我们可以了解用户在使用软件过程中的痛点,针对性地进行优化,提升用户体验。
3. 降低售后成本:及时发现并修复软件缺陷,可以减少用户对售后服务的依赖,降低企业售后成本。
4. 提升团队协作:测试工作需要与开发、产品、设计等多个部门紧密合作,有助于提高团队整体协作能力。
二、测试工作所需技能在测试工作中,我们需要掌握以下技能:1. 编程能力:熟悉至少一门编程语言,如Java、Python等,有助于编写自动化测试脚本。
2. 测试理论:了解软件测试的基本理论,如黑盒测试、白盒测试、灰盒测试等。
3. 测试工具:熟练使用各种测试工具,如JMeter、Selenium、Postman等。
4. 问题分析能力:具备良好的问题分析能力,能够快速定位问题原因,并提出解决方案。
5. 沟通能力:与开发、产品、设计等部门保持良好沟通,确保测试工作的顺利进行。
三、测试工作心得体会1. 严谨的态度:测试工作需要严谨的态度,对待每一个测试用例都要认真执行,确保测试结果的准确性。
2. 持续学习:测试领域技术更新迅速,我们要不断学习新技术、新工具,提升自己的专业能力。
3. 团队协作:测试工作需要与多个部门紧密合作,我们要学会沟通、协调,共同推进项目进度。
4. 关注细节:在测试过程中,关注细节至关重要。
一个微小的疏忽可能导致严重的后果。
5. 责任心:作为一名测试人员,我们要有强烈的责任心,确保软件质量,为用户创造良好的使用体验。
敏捷测试实践心得体会

随着互联网和软件行业的快速发展,敏捷开发逐渐成为主流的开发模式。
敏捷测试作为敏捷开发的重要组成部分,其核心理念是以用户需求为导向,快速响应变化,提高软件质量。
在我国,敏捷测试也日益受到重视,本文将结合个人实践,谈谈敏捷测试的心得体会。
一、敏捷测试的核心价值观1. 用户至上:敏捷测试始终关注用户需求,确保软件满足用户期望,提高用户满意度。
2. 快速响应:敏捷测试强调快速迭代,及时发现问题,降低风险。
3. 透明沟通:敏捷测试要求团队成员之间保持良好的沟通,确保信息畅通。
4. 自我组织:敏捷测试鼓励团队成员自主组织工作,发挥团队潜能。
5. 不断学习:敏捷测试要求团队成员具备持续学习的能力,适应不断变化的技术和需求。
二、敏捷测试实践心得1. 理解敏捷理念:要成为一名优秀的敏捷测试人员,首先要深入理解敏捷理念,掌握敏捷开发的基本原则和方法。
在实际工作中,要时刻关注用户需求,以用户为中心,快速响应变化。
2. 搭建敏捷团队:敏捷测试的成功离不开一个高效的团队。
在搭建敏捷团队时,要注重团队成员的多样性,包括开发、测试、产品经理等角色,确保团队具备全面的能力。
3. 制定敏捷测试计划:敏捷测试计划应具备灵活性,能够根据项目需求的变化进行调整。
在制定测试计划时,要充分考虑测试范围、测试方法、测试周期等因素。
4. 采用自动化测试:自动化测试是敏捷测试的重要手段,可以提高测试效率,降低人力成本。
在实际工作中,要掌握自动化测试工具,如Selenium、JMeter等,提高测试覆盖率。
5. 关注质量:敏捷测试的核心目标是提高软件质量,确保软件满足用户需求。
在实际工作中,要关注测试过程中的质量,及时发现并解决缺陷。
6. 持续学习:敏捷测试技术不断更新,测试人员要具备持续学习的能力,跟上技术发展的步伐。
可以通过参加培训、阅读书籍、交流经验等方式,提高自己的专业素养。
7. 跨部门协作:敏捷测试需要与其他部门紧密协作,如开发、产品、运维等。
敏捷训练心得体会教师

作为一名教师,我一直致力于提升自己的教育教学能力,以更好地服务于学生。
在参加敏捷训练的过程中,我收获颇丰,以下是我的一些心得体会。
一、团队协作的重要性敏捷训练强调团队协作,通过模拟实际工作场景,让团队成员共同解决问题。
在这个过程中,我深刻体会到团队协作的重要性。
作为一名教师,我们每天都要面对各种各样的教学任务,单打独斗往往难以取得理想的效果。
而在敏捷训练中,我发现只有通过团队协作,才能发挥每个人的优势,共同完成目标。
二、沟通与表达能力的提升敏捷训练过程中,沟通与表达能力的提升至关重要。
在团队讨论、头脑风暴等环节,我们需要清晰、准确地表达自己的观点,同时也要倾听他人的意见。
这对于我作为一名教师来说,无疑是一次很好的锻炼。
在日常教学中,我更加注重与学生、同事的沟通,力求做到言简意赅,提高教学效果。
三、不断调整与优化教学方法敏捷训练让我认识到,教育教学是一个不断调整与优化的过程。
在训练过程中,我们会遇到各种各样的问题,需要不断地寻找解决方案。
这种思维方式也启示我在教学中要善于发现学生的问题,及时调整教学方法,以适应不同学生的学习需求。
四、关注学生个体差异敏捷训练让我更加关注学生的个体差异。
在团队中,每个人都有自己的长处和短板,我们需要相互扶持、共同进步。
同样,在教学中,我也要关注学生的个体差异,针对不同学生的学习特点,采取差异化的教学方法,让每个学生都能在课堂上找到自己的位置。
五、培养学生的创新思维敏捷训练强调创新思维,鼓励团队成员打破常规,勇于尝试。
这对我培养学生的创新思维起到了很好的启示作用。
在日常教学中,我注重培养学生的发散性思维,鼓励他们敢于质疑、勇于探索,从而激发他们的创新潜能。
六、自我反思与成长敏捷训练让我认识到,教育教学是一个不断自我反思与成长的过程。
在训练结束后,我会对自己在团队中的表现进行反思,总结经验教训,以便在今后的工作中不断提升自己。
总之,敏捷训练让我在教育教学方面受益匪浅。
通过这次训练,我更加明确了作为一名教师的责任与使命,也为自己今后的教育教学工作指明了方向。
敏捷测试追求高效的测试工作方式

敏捷测试追求高效的测试工作方式敏捷测试是一种以快速响应变化、追求高效、注重团队合作的测试方法论。
在传统的软件开发中,测试往往处于开发的最后阶段,导致测试周期长、测试成本高、问题发现效率低下。
而敏捷测试通过与开发团队紧密合作、持续集成与持续测试的方式,积极应对需求的变化,提高测试的效率和质量。
一、敏捷测试的核心理念敏捷测试的核心理念是以人为本、尽早反馈和持续改进。
测试团队成员应该注重与开发团队的紧密沟通,理解需求并不断提供反馈。
同时,测试团队要保持灵活性和适应性,及时调整测试计划和策略,以应对需求的变化。
持续改进是敏捷测试的重要实践之一,测试团队需要通过持续学习和反思,不断改进测试流程和方法。
二、敏捷测试的关键实践1. 敏捷测试的测试策略敏捷测试的测试策略应当务实、简单且重点明确。
测试工作应该集中于关键功能和核心业务逻辑的验证,而非全面覆盖每一个细节。
测试团队需要根据风险评估和业务需求,合理划分测试用例的优先级,并制定相应的测试计划。
2. 敏捷测试的自动化自动化测试是敏捷测试不可或缺的一环。
通过自动化测试工具和框架,测试团队可以快速、准确地执行大量的测试用例,提高测试的效率和一致性。
自动化测试还可以帮助测试团队实现持续集成与持续交付,加速软件的发布速度,提升团队的整体效能。
3. 敏捷测试的持续集成与持续测试持续集成是敏捷开发中的一项重要实践,也适用于敏捷测试。
通过持续集成,测试团队可以快速发现和解决集成问题,确保软件在不同部分的集成过程中保持稳定和可靠。
持续测试则要求测试团队在每个构建中持续进行测试,及时发现和修复问题,确保每次交付的软件都是可靠的。
4. 敏捷测试的跨职能和团队合作敏捷测试鼓励测试团队成员与开发团队和产品团队紧密合作。
测试团队应该参与需求讨论,理解需求背后的业务逻辑,提供测试方面的建议和预期的风险。
同时,测试团队还需要和其他团队成员进行密切的协作,共同解决问题,推动项目的进展。
三、敏捷测试的优势1. 更早地发现问题: 将测试融入到开发过程中,可以及早发现和修复问题,降低问题修复的成本和风险。
测试工作的收获及感想总结

随着我国科技水平的不断提升,软件行业得到了迅速发展。
在这个大背景下,我选择了测试工作作为自己的职业发展方向。
经过一段时间的学习和实践,我对测试工作有了更深刻的认识,以下是我对测试工作的收获及感想总结。
一、收获1. 技能提升在测试工作中,我掌握了多种测试方法,如功能测试、性能测试、安全测试等。
同时,我学会了使用各种测试工具,如JMeter、LoadRunner、Selenium等,提高了自己的技能水平。
2. 团队协作测试工作需要与开发、产品、运维等多个部门紧密协作。
在这个过程中,我学会了如何与不同背景的人沟通,提高了自己的团队协作能力。
3. 问题解决能力测试过程中,经常会遇到各种问题。
通过不断分析和解决这些问题,我锻炼了自己的问题解决能力,学会了如何从全局出发,寻找问题的根源。
4. 质量意识测试工作的核心目标是保证软件质量。
在这个过程中,我逐渐形成了强烈的质量意识,时刻关注软件的可用性、稳定性、安全性等方面。
二、感想1. 测试工作的重要性测试工作在软件开发过程中扮演着至关重要的角色。
一个优秀的测试团队,可以及时发现软件中的缺陷,降低上线后的风险,提高用户满意度。
2. 持续学习随着技术的不断发展,测试方法、工具也在不断更新。
作为一名测试人员,我深知自己需要不断学习,以适应行业发展的需求。
3. 关注细节在测试工作中,细节决定成败。
一个优秀的测试人员,不仅要关注整体功能,还要关注细节,确保软件的每个环节都符合预期。
4. 沟通能力测试工作中,沟通能力至关重要。
一个善于沟通的测试人员,可以更好地与开发、产品等部门沟通,确保测试工作的顺利进行。
总之,测试工作让我收获颇丰。
在今后的工作中,我将继续努力,不断提升自己的技能和素质,为我国软件行业的发展贡献自己的力量。
同时,我也将珍惜每一次与团队共同进步的机会,共同打造高质量的软件产品。
软件测试员工发言稿(3篇)

第1篇大家好!今天,我很荣幸能够站在这里,与大家分享一些关于软件测试工作的心得和体会。
作为一名软件测试员工,我深知我们肩负着确保软件质量的重任。
在此,我想结合自己的工作经历,谈谈软件测试的重要性、测试方法以及如何提高测试效率等问题。
一、软件测试的重要性软件测试是软件开发过程中的关键环节,它关乎着软件产品的质量和用户体验。
以下是软件测试的几个重要性方面:1. 防范风险:软件测试可以帮助我们及时发现和解决软件中的缺陷,降低软件上线后的风险,确保用户利益。
2. 提高产品质量:通过严格的测试,可以确保软件功能的正确性、稳定性和可靠性,提高产品质量。
3. 优化用户体验:测试过程中,我们关注用户的使用场景和需求,从而优化软件界面和功能,提升用户体验。
4. 降低维护成本:通过测试发现并修复缺陷,可以减少后期维护和升级的成本。
5. 提高团队协作:软件测试需要与开发、设计等岗位紧密协作,有助于提升团队整体水平。
二、软件测试方法1. 黑盒测试:通过输入和输出数据的检查,验证软件功能是否符合预期。
主要包括等价类划分、边界值分析、错误推测等方法。
2. 白盒测试:通过分析软件的内部结构,检查代码的覆盖率、逻辑正确性等。
主要包括语句覆盖、分支覆盖、路径覆盖等方法。
3. 集成测试:将各个模块组合在一起,验证模块间的接口和交互是否正常。
主要包括单元测试、集成测试、系统测试等方法。
4. 性能测试:评估软件在特定条件下的运行性能,包括响应时间、并发用户数、资源消耗等。
5. 安全测试:检测软件在安全方面的风险,包括漏洞扫描、渗透测试等。
6. 兼容性测试:验证软件在不同操作系统、浏览器、设备等环境下的兼容性。
三、提高测试效率1. 制定合理的测试计划:根据项目需求和进度,制定详细的测试计划,确保测试工作有序进行。
2. 使用自动化测试工具:利用自动化测试工具,提高测试效率,降低人工测试的繁琐程度。
3. 优化测试用例:对测试用例进行优化,确保测试用例的全面性和针对性。
测试员工工作心得体会

时光荏苒,转眼间我已在测试岗位工作了一段时间。
这段时间里,我经历了许多挑战和收获,以下是我对测试工作的几点心得体会。
首先,测试工作需要严谨细致。
作为一名测试工程师,我们要对软件的质量负责,确保软件在发布前达到预期的功能和质量。
这就要求我们在测试过程中,要严谨细致,对每一个功能、每一个细节都要进行严格的测试。
在这个过程中,我发现了一些以前未曾注意到的bug,提高了软件的稳定性。
同时,我也学会了如何从全局角度看待问题,提高了自己的逻辑思维能力。
其次,测试工作需要团队合作。
在测试过程中,我们与开发、产品、运维等各个部门紧密合作。
只有通过团队协作,才能确保软件质量。
在这个过程中,我学会了如何与同事沟通交流,如何表达自己的观点,如何听取他人的意见。
同时,我也明白了团队协作的重要性,只有大家齐心协力,才能完成项目目标。
再次,测试工作需要不断学习。
随着科技的不断发展,新的测试工具、测试方法层出不穷。
作为一名测试工程师,我们要不断学习,跟上时代的步伐。
在过去的这段时间里,我学习了自动化测试、性能测试等知识,提高了自己的技能水平。
同时,我也意识到,测试工作不仅仅是技术层面的挑战,更是对个人综合素质的考验。
此外,测试工作需要耐心和毅力。
在测试过程中,我们可能会遇到许多困难,如bug难以定位、性能瓶颈等。
这时,我们需要保持耐心,不断尝试,直到找到解决问题的方法。
同时,我们还要有毅力,面对重复性工作,不能轻易放弃。
正是这种耐心和毅力,让我在测试工作中不断成长。
最后,测试工作让我更加关注细节。
在测试过程中,我会关注软件的每一个细节,从用户体验、功能实现、性能等方面进行评估。
这种关注细节的习惯,让我在日常生活中也变得更加细心,对事物有了更深刻的认识。
总之,这段时间的测试工作让我收获颇丰。
我深刻认识到,测试工作不仅是一项技术活,更是一种责任和担当。
在今后的工作中,我将继续努力,提高自己的专业技能,为团队和公司的发展贡献自己的力量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
敏捷测试感悟
发布时间: 2009-11-16 17:34 作者: 关河来源: 51Testing软件测试网采编
注:转自/html/47/n-186647.html
Agile testing(敏捷测试)基本上是伴随着敏捷开发的概念成长起来的,但在受关注程度上,远远不及敏捷开发本身。
自然,开发队伍从数量和活跃度上来讲大于测试队伍,是其中的一个原因;除了这个原因之外,“敏捷测试究竟如何在项目中发挥作用”这个问题可能也是导致敏捷测试概念的流行度远远不如敏捷开发的原因之一。
关于敏捷测试,我能找到的较早的比较系统化的描述文档应该是2002年的这份PPT,这份PPT定义了敏捷测试的两个主要特点:“遵循敏捷宣言的测试实践,将开发当成是测试的客户”(Testing practice that follows the agile manifesto, treating development as the customer of testing),以及“在使用敏捷技术的项目中的测试实践”(Testing practice for projects using agile methodologies)。
敏捷开发宣言中提到了敏捷开发的四个核心价值观:简明(Simplicity)、沟通(Communication)、反馈(Feedback)、勇气/决断(Courage)─ 如果我的翻译有错,请指正─毫无疑问,从开发的角度来说,很容易理解这四个核心价值观对应的行为(敏捷开发的best practice),但从测试的角度来说,“简明”和“勇气”就很难对应到具体的测试行为中。
既然难以清楚的寻找敏捷测试的实践行为,我们先尝试来寻找另一个问题的答案:“敏捷开发究竟会给测试带来哪些改变(相对于传统的测试)?”如果可以找到这个问题的答案,我们应该可以顺藤摸瓜的找到敏捷测试中对应的best practice。
这里有一段有趣的视频,是在某个敏捷开发大会上对许多嘉宾的采访,采访的主题就是“How does Agile affect testing”,从回答中你会发现,似乎没有任何人能够准确的回答这个问题。
从采访片段中我听到的观点有:
1. 敏捷开发有不同模型,不同的模型会以不同的方式影响测试(废话─我的comment)
2. 敏捷测试需要工具的支持…(貌似卖工具的厂商喜欢隐晦的这么表达)
3. TDD方法要求测试优先,其实除了测试优先外,我认为测试也可以和开发同时进行;
4. 敏捷过程中的测试是一个integration的任务,在不同层面(单元测试,集成测试,系统测试,用户验收测试)均需要按照敏捷的方式组织测试,目的是符合敏捷方法的价值观。
在这些观点中,我最喜欢的是第4个观点,这也是一直以来我的认识,其实敏捷本质上并非是一个过程,而是一种理念。
至于敏捷测试这个敏捷开发的同源产物,自然也会继承其中的“目标驱动”而不是“过程驱动”的特性。
个人认为,敏捷测试和传统测试观点最大的不同在这几个地方:
* 敏捷测试并不倾向于严格区分开发和测试角色,全体工程师对于质量具有同等的责任,测试任务由开发和测试工程师共同完成;
* 敏捷测试的迭代周期很短,为了在很短的迭代周期中完成测试任务,要求建立“足够好”的验收测试,建立足够的自动化测试;
* 敏捷测试不严格依赖于文档(需求,设计等),测试角色必须和其他成员以及客户有良好的沟通,以保证建立的质量标准符合用户的需求,以及能够使用项目中的相关知识建立合理的测试框架;
* 关于底层测试和关于代码质量是敏捷测试中的一个非常好的实践。
其中,对传统测试观点最大的冲击是第1和第3点,打破测试角色和开发角色之间的严格限定,用沟通而不是文档作为建立测试的基础,这些的确会让一个熟悉传统测试环境的测试工程师骤然间不知所措。
拿我来说,N年前我自认为对敏捷测试有一定的了解,结果真正进入到一个敏捷测试项目的时候才发现仍然需要一段时间来改变自己的工作方式和习惯。
不过一旦习惯了这种方式,我转变成了一个彻底的敏捷测试的鼓吹者─ 毕竟,敏捷测试为产品质量产生的价值,让团队成员得到的成就感和喜悦是实实在在能够看得到的。
在本系列的第一部分中,(敏捷测试感悟之一)我们简要回顾了敏捷开发,以及敏捷测试与传统测试的不同。
在第一部分中,我们特别提到,敏捷测试的要点之一就是,不依据于角色而是依据于任务来考虑整个开发过程中的测试。
但是,对一个开发组织来说,组织中一定存在开发工程师和测试工程师的角色划分,作为一个敏捷团队中的测试工程师,他的主要工作职责是什么呢?或者说,他可以在哪些工作上发挥自己的作用呢?
敏捷过程中与测试相关的任务很多,概括说来有如下一些:
1. 建立不同级别的测试验收标准(也就是test suite),包括单元测试、集成测试、系统测试等各个层面的验收标准;
2. 推动整个组织的质量文化,保证整个组织的成员在质量责任与目标方面达成一致;
3. 通过技术或是管理的手段,保证产品、代码具有良好的可测试性;
4. 通过自动化测试手段缩短每个产品发布周期中测试所需的时间;
5. 与客户沟通确认客户可接受的软件质量标准,并建立针对此标准的验收测试;
6. 深入了解应用系统和业务需求,通过探索性测试方法设计有效的测试用例,发现产品中的缺陷;
7. 建立对整个团队可见的质量度量体系,保证整个团队能够随时看到产品的质量度量值。
这些工作都可以是敏捷团队中测试工程师角色的工作任务,但显然,在现实中,不太可能要求所有这些工作都由测试工程师来承担─同时,让测试工程师承担全部这些工作任务也并不合理,某些工作由开发工程师角色,或是由开发工程师和测试工程师共同承担更为合理。
接下来,我更详细的把列出的这7项工作中非常成“测试工程师必须完成的工作”,“测试工程师需要去推进的工作”,以及“能为项目带来巨大价值的工作”。
1. 测试工程师必须完成的工作:
* 与客户沟通确认客户可接受的软件质量标准,并建立针对此标准的验收测试;
* 深入了解应用系统和业务需求,通过探索性测试方法设计有效的测试用例,发现产品中的缺陷;
* 建立系统和用户验收级别的测试验收标准;
* 通过自动化测试手段缩短每个产品发布周期中测试所需的时间;
2. 测试工程师需要去推进的工作:
* 推动低层次测试(单元测试和接口级别的测试)的进行。
低层次是测试对于需要快速发布的敏捷开发来说至关重要,但在大部分国内的软件组织中,开发测试都需要经过不断的推动才能被最终执行下去,测试工程师具有相关的测试技巧,并且能够用翔实的统计数据表明低层次测试的必要性,是最好的推动低层次测试的人选;
* 推动整个组织的质量文化,保证整个组织的成员在质量责任与目标方面达成一致。
这一点对于敏捷组织来说也是至关重要的;在许多传统的软件开发组织中,经常能看到开发和测试之间的扯皮,针对一个遗漏的缺陷,大家考虑第一件事不是如何去修复,如何去防止,而是首先“追究责任”─在敏捷过程中,需要一个非常不同的环境:也即,质量责任是由所有工程师共同承担的,对于出现的问题,重要的是解决和预防。
3. 能为项目带来巨大价值的工作
* 建立对整个团队可见的质量度量体系,保证整个团队能够随时看到产品的质量度量值。
保证产品质量度量的可见可以让整个团队清楚的看到我们现在正在工作的产品与我们期望交付的产品在质量上还有多大的差距,这样整个团队可以以质量度量作为指示,集中精力工作在这些差距上,从而可以尽快的发布“可工作”的产品。
“验收测试的通过度”,“单元测试的通过率”,“功能完成情况”等等项目都可以是质量度量中的度量项。
* 通过技术或是管理的手段,保证产品、代码具有良好的可测试性。
良好的可测试性对于产品的维护,自动化测试的进行都是非常有利的─我觉得,甚至可以武断的说,如果一个应用系统没有良好的可测试性,就很难期望可以在该项目上设置良好的测试框架。
测试工程师一般不参与具体的设计工作和代码实施工作,但测试工程师可以推动开发工程师在设计和实现时尽可能的考虑可测试性设计,另一方面,测试工程师也可以通过测试覆盖率这个质量及时发现应用中可测试性不强的地方,推动开发工程师的改进。
综上,就是我个人认为的敏捷过程中的测试角色必须,应该和可以进行的工作。
当然,要完成这些工作,和传统的QA工程师相比,敏捷过程对测试工程师提出了更好的技能上的要求。
在我看来,一个敏捷项目中的测试工程师应该具有这样一些技能:
1. 良好的沟通和协作能力;
2. 良好的设计和代码能力,至少可以和开发工程师在同一水平上讨论具体的设计和代码实现;
3. 快速学习和总结的能力(运用探索性测试发现缺陷);
4. 对自动化测试有深刻的理解(至少要能清楚的认识到自动化测试不等于UI自动化测试,也不等于用自动化测试工具进行录制和回放);
5. 快速的风险分析和判断能力(在许多情况下都不会有足够的时间开展full regression,如何判断风险和决定相应的对策至关重要)。