独立软件测试团队在敏捷开发中的几个特别实践

简介:

最近读了《测试人与敏捷团队的五个约定》,很是赞同。但发现其并没有紧扣敏捷开发测试的特点,这五个约定在传统开发中已经早有实践,也有相关论述。哪么在敏捷开发的测试方面有没有不一样于传统开发测试的并且是有效的实践?

  从敏捷团队的组建上来说,敏捷团队并没有要求安排专门的测试人员,甚至于在某些的方法中不建议清楚的区分开发人员角色和测试人员角色。 本文讨论的是已经存在独立测试团队的情况,如何在敏捷开发中进行高效的测试。

  实践1:测试保护开发

  通过快速的自动化测试跟进开发,保证新增和修改不破坏已经获得的成果。

  典型步骤如下:

  1、开发人员根据需求,采用TDD,编写代码,实现界面和接口。

  2、几乎同步,测试人员编写自动化测试,主要是黑盒自动化测试,也不排除白盒自动化测试。

  3、一般保证,代码出来后的第2天,相关的自动化测试代码开发完成。

  实践2:成为大敏捷团队的成员

  子实践1:参加相关会议,如果是SCRUM,参加SCRUM所有要求的会议。

  子实践2:可以阅读和修改最大范围的配置项(比如文档,代码,工作项)

  子实践3:一起工作,比如把位子搬到开发人员旁边,如果同时参加多个项目,选择一个较近距离的位子。

  说明:这个实践本身的宗旨与传统做法并无根本区别,这里的区别在于程度。

  实践3:与定期构建一起执行测试人员的自动化测试用例,或者定期构建包括测试人员的自动化测试。

  这里用了”测试人员的自动化测试用例“,也有做法是测试人员和开发人员一起维护自动化测试用例,并没有“测试人员的自动化测试用例“,这里主要说明无论测试人员贡献的自动化测试用例处于何种形式,无论构建是否包括测试人员的自动化测试用例,就是要求自动化测试能与构建为基来执行。

  子实践1:维护一套自动化测试环境,可以自动获得最新的测试用例和构建成果

  子实践2:测试结果可以自动发布到合适的地方,缺陷得到跟踪管理

  实践4:设计更多黑盒手工场景化测试用例,安排更多随机场景测试

  关注于局部功能的测试用例在敏捷开发中往往已经被自动化实现了。因此为了发布的测试中,值得设计更多黑盒手工场景化测试用例。选择一些典型场景化测试用例开发为自动化测试用例也是可以的,但是此类测试用例的自动化开发所需工作量较大,要看测试团队的投入和质量目标安排,如果有象微软一样的测试开发工程师,就另当别论了。一般而言,从经济角度出发,黑盒手工场景化测试用例是发现潜在缺陷的有效且经济的手段,如果存在丰富经验的测试人员,随机场景测试也是值得更多采用的。本实践在传统测试中也有,这里要强调的特别之处是可以考虑手工测试全部用场景化测试,大幅减少针对单一功能或局部功能的测试用例。

  对测试人员的要求

  从以上实践可以看到,测试人员所要掌握的技能有黑盒自动化测试、场景化测试,最好也要常握白盒自动化测试,定期构建和自动测试报告

  工具支持

  常见的有fit,fitnesse,white,watir,selenium,cruisecontrol,QTP,robot,xUnit系列xFit系列等等

  效果和校验

  上述的实践是否有效、是否高效,可以观察如下几点:

  1、达到发布条件所需的测试轮次是否减少?测试缺陷密度是否减少?

  2、获得快速发布的能力,发布工期偏差是否减小?

  3、测试所需总的工作量是否在测试团队承受的范围之内,尤其关注测试后期的工作量是否大幅减少,减少的数量是否比在测试前期增加的数量要更大?

  如果没有获得正面收益,就需反思了。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
9天前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
25 6
|
7天前
|
敏捷开发 机器人 Java
自动化测试之美:从理论到实践
【9月更文挑战第28天】在软件开发的海洋中,自动化测试是一艘航向高效、精确和快速交付的船。它不仅减轻了手动测试的负担,还提升了软件质量的保障。本文将带你了解自动化测试的核心概念、流行的工具以及如何将这些理论应用到实践中去。我们将通过实际代码示例,探索自动化测试的魅力所在。
110 70
|
7天前
|
测试技术
探索软件测试的奥秘:从基础理论到实践应用
【9月更文挑战第28天】在数字化时代,软件已成为我们生活中不可或缺的一部分。然而,随着软件复杂性的增加,确保其质量和可靠性变得日益重要。本文将带你深入了解软件测试的核心概念、方法论以及如何在实际工作中运用这些知识来提升软件质量。无论你是软件测试新手还是希望深化理解,这篇文章都将为你提供宝贵的洞见和实用技巧。
|
2天前
|
测试技术 开发者
软件测试的艺术:从理论到实践
【9月更文挑战第33天】在软件开发的舞台上,测试是不可或缺的角色。它不仅仅是一个过程,更是一种确保产品质量的艺术。本文将带你走进软件测试的世界,探索它的基本原则、类型、方法以及如何将这些理论应用到实际工作中。我们将一起学习如何设计有效的测试案例,执行测试计划,并分析测试结果。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和实用的技巧,帮助你提升测试技能,确保软件质量。让我们一起踏上这段旅程,发现软件测试的魅力所在。
12 4
|
1天前
|
敏捷开发 Java 测试技术
探索软件测试的奥秘:从理论到实践
【9月更文挑战第34天】在软件开发的世界中,测试是确保质量的关键一环。本文将带你走进软件测试的世界,从基础概念出发,逐步深入到测试策略和自动化工具的应用。我们将通过实际代码示例,展示如何有效地执行测试,并讨论测试在敏捷开发中的重要性。无论你是测试新手还是希望提升技能的开发者,这篇文章都将为你提供宝贵的知识和启发。
|
5天前
|
Devops jenkins 测试技术
DevOps实践:持续集成与自动化测试的融合之道
【9月更文挑战第29天】在软件开发的快节奏竞赛中,DevOps如同一位智慧的舵手,引领着船只驶向效率与质量的彼岸。本文将揭开DevOps的神秘面纱,探索其核心理念如何通过持续集成(CI)和自动化测试的实践,实现软件开发流程的优化与加速。我们将一同见证代码从构思到部署的旅程,以及这一过程中的关键技术和工具如何协同工作,确保软件质量和交付速度的双重提升。
|
9天前
|
敏捷开发 监控 测试技术
提升软件质量的利器:自动化测试的实践与反思
在软件开发的生命周期中,测试作为保障产品质量的重要环节,其重要性不言而喻。随着敏捷开发和持续集成等实践的普及,传统的手动测试方式已逐渐无法满足快速迭代的需求。因此,自动化测试作为一种提高测试效率和准确性的有效手段,正受到越来越多开发者的青睐。本文将深入探讨自动化测试的价值、实施步骤以及在实践中可能遇到的问题和解决方案,帮助读者更好地理解和应用自动化测试。
13 2
|
8天前
|
小程序 测试技术 程序员
『软件工程12』软件工程实践方法——软件测试
该文章详细阐述了软件测试的重要性和基本原则,并按测试阶段顺序介绍了单元测试、集成测试、确认测试以及系统测试的具体内容和实施步骤。
『软件工程12』软件工程实践方法——软件测试
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
下一篇
无影云桌面