敏捷开发测试规范V0.1
- 格式:docx
- 大小:40.84 KB
- 文档页数:15
敏捷开发中的软件测试技巧在当今快速发展的软件开发领域,敏捷开发模式因其能够快速响应市场变化、提高开发效率而备受青睐。
然而,这种快速迭代的开发方式也给软件测试带来了新的挑战。
为了确保软件质量,在敏捷开发中采用合适的测试技巧至关重要。
敏捷开发强调团队的协作、快速反馈和持续集成。
在这样的环境下,软件测试不再是孤立的阶段,而是贯穿整个开发过程。
这就要求测试人员能够迅速适应变化,灵活运用各种测试技巧。
首先,我们来谈谈测试驱动开发(TDD)。
这是一种在编写实际代码之前先编写测试用例的方法。
通过这种方式,开发人员能够清晰地理解软件的功能需求,并且在编写代码时能够确保其满足测试用例的要求。
对于测试人员来说,TDD 有助于提前规划测试策略,了解软件的预期行为。
而且,由于测试用例是在开发之前编写的,所以能够更早地发现潜在的问题,降低修复成本。
自动化测试在敏捷开发中也是不可或缺的技巧。
自动化测试能够快速、重复地执行测试用例,节省大量的时间和人力。
例如,使用Selenium 进行 Web 应用的自动化测试,可以模拟用户的操作,检查页面元素的显示、交互等是否正常。
对于回归测试,自动化测试更是能够发挥巨大的作用。
每次新的代码提交后,自动化测试可以迅速检查是否引入了新的缺陷,保证软件的稳定性。
在敏捷开发中,持续集成(CI)和持续部署(CD)是常见的流程。
与之相配合的持续测试能够及时发现集成过程中的问题。
测试人员可以利用工具如 Jenkins 来配置持续测试的流程,当代码有新的提交时,自动触发测试任务。
这包括单元测试、集成测试、功能测试等,确保软件在不断集成的过程中始终保持高质量。
探索性测试也是敏捷开发中的一项重要技巧。
它强调测试人员在对软件了解有限的情况下,通过不断地探索和尝试来发现潜在的问题。
测试人员可以根据自己的经验、直觉和对软件的理解,自由地尝试各种操作和场景,以发现那些在常规测试中可能被忽略的缺陷。
敏捷开发中的测试人员还需要善于利用用户故事来指导测试工作。
如何在敏捷开发中进行测试敏捷开发是一种广泛应用于软件开发领域的方法论,其特点是迭代、快速响应变化和强调团队协作。
在敏捷开发中,测试是一个至关重要的环节,旨在确保软件质量和用户满意度。
本文将讨论如何在敏捷开发中进行测试,并提供一些实用的方法和建议。
1. 敏捷测试的原则在敏捷开发中,测试的核心原则是早期和频繁地进行测试。
以下是一些与敏捷测试相关的原则:快速反馈:测试应该及时提供开发团队关于软件质量的反馈。
这有助于发现和解决问题,以确保产品质量。
持续集成:测试应与开发过程紧密结合,通过自动化测试的方式来持续集成代码,并及时进行回归测试。
自组织团队:测试人员应与开发人员和产品所有者合作,形成一个自组织的团队,共同努力实现卓越的软件质量。
2. 测试策略在敏捷开发中,测试策略应该基于需求、优先级和时间限制而制定。
以下是一些测试策略的示例:需求分析:测试团队应与产品所有者共同参与需求分析,以确保对需求的理解一致并可测试。
冒烟测试:为了尽早发现关键问题,可以进行冒烟测试,对新功能或修复的问题进行基本验证。
单元测试:开发人员应编写单元测试用例,在代码变更之前运行这些测试用例,以确保代码质量和功能一致性。
集成测试:测试团队应进行集成测试,以验证不同模块之间的交互和协作是否正常。
回归测试:随着需求的变化和新功能的添加,回归测试非常重要,以确保已有功能和系统的稳定性。
用户验收测试:用户验收测试是在每个迭代周期结束时进行的,以确保软件满足用户需求和期望。
3. 自动化测试自动化测试在敏捷开发中起到了至关重要的作用。
以下是一些可以自动化的测试类型:单元测试:开发人员可以使用单元测试框架,如JUnit或Python的unittest模块,编写和运行单元测试。
集成测试:使用自动化工具,如Selenium或Appium,可以编写和执行集成测试脚本,验证不同系统之间的交互。
持续集成测试:使用持续集成工具,例如Jenkins,可以设置自动构建和测试流程,确保每次代码提交都能进行自动化测试。
敏捷开发中的测试管理与评估在当今快速发展的软件开发领域,敏捷开发方法因其能够快速响应变化、提高开发效率和交付价值而备受青睐。
然而,敏捷开发的快速迭代特性也给测试管理与评估带来了新的挑战。
为了确保软件质量,有效的测试管理与评估在敏捷开发中显得尤为重要。
敏捷开发强调团队的协作、快速反馈和持续改进。
在这种环境下,测试不再是孤立的阶段,而是贯穿整个开发过程的活动。
测试人员需要与开发人员、产品经理等密切合作,共同为实现项目目标而努力。
在敏捷开发中,测试管理面临着一些独特的挑战。
首先,需求的不断变化使得测试范围难以明确界定。
传统的基于详细需求文档的测试计划在敏捷环境中可能不再适用,因为需求可能在短时间内发生变动。
这就要求测试管理人员具备灵活应变的能力,能够及时调整测试策略和计划。
其次,敏捷开发中的短迭代周期给测试时间带来了巨大压力。
测试人员需要在有限的时间内完成充分的测试,以确保软件的质量。
这就需要优化测试流程,提高测试效率,例如采用自动化测试、探索性测试等方法。
另外,团队的高度协作对沟通提出了更高的要求。
测试人员需要与其他团队成员保持密切的沟通,及时了解项目的进展和需求的变化,避免出现信息不对称导致的问题。
为了应对这些挑战,有效的测试管理策略至关重要。
测试管理人员应该积极参与项目的规划和需求讨论,从早期就对需求有清晰的理解,以便更好地规划测试工作。
在每个迭代开始前,制定详细的测试计划,明确测试目标、范围和重点。
同时,合理分配测试资源,确保每个迭代的测试任务都能够得到充分的支持。
自动化测试是敏捷开发中提高测试效率的重要手段。
通过将重复性高、稳定性好的测试用例自动化,可以节省大量的时间和人力,让测试人员能够专注于更复杂和关键的测试场景。
选择合适的自动化测试工具和框架,并建立持续集成和持续部署(CI/CD)流程,能够实现快速的测试反馈和软件交付。
探索性测试在敏捷开发中也发挥着重要作用。
它可以帮助发现那些在传统测试方法中容易被忽略的问题,提高测试的覆盖度。
敏捷开发测试规(试行)2012年9月目录1 概述 (3)1.1 编写目的 (3)1.2 读者对象 (3)1.3 术语定义 (3)2 敏捷测试流程 (3)2.1 需求验证 (3)2.2 用例设计 (3)2.3 用例审核与维护 (3)2.4 测试计划 (3)2.5 测试实施运行 (4)2.6 版本控制 (4)2.7 需求变更 (5)2.8 迭代末期“bug大扫除” (5)3 敏捷测试方法与策略 (5)3.1 持续测试、持续反馈 (5)3.2 单元测试方法策略 (5)3.3 功能测试方法策略 (5)3.4 性能测试方法 (6)3.5 系统测试策略 (6)3.6 测试驱动研发 (7)3.7 持续集成测试 (7)4 终端移动互联网测试 (7)4.1 用户体验测试 (7)4.2 平台兼容性测试 (7)4.3 不同网络环境下测试 (8)4.4 多事务并发测试 (8)4.5 安装、卸载测试 (8)5 测试工具和环境 (8)5.1 单元测试工具 (8)5.2 功能回归测试工具 (8)5.3 性能测试工具 (9)5.4 持续集成测试环境 (9)6 测试人员要求 (9)6.1 人力需求 (9)6.2 测试人员能力要求 (9)7 附录 (11)1 概述1.1 编写目的ICT自主开发产品拟采用敏捷开发模式,为规ICT支撑中心项目敏捷测试流程,明确敏捷开发模式下的术语定义,明确敏捷测试方法与策略,明确移动互联网测试特有的测试容,确定敏捷开发模式下用到的测试工具以及测试环境,以及初步确定敏捷测试人力需求计算方式与对人员能力要求,特制定本规。
本规适用于采用敏捷开发模式下的所有自主开发移动互联网产品。
1.2 读者对象本规读者对象为软件开发项目管理者、项目经理、测试经理、开发经理、开发组、测试组所有人员。
1.3 术语定义敏捷开发模式下的几种重要角色、产品文档及过程会议术语如表1-1:表1-12 敏捷测试流程2.1 验证需求和设计敏捷测试强调问题暴露越早越好。
敏捷开发中的测试流程敏捷开发是一种迭代式的开发方法,通过不断的迭代和反馈来快速交付高质量的软件。
测试在敏捷开发过程中起着至关重要的作用,它是保证软件质量的关键环节。
在本文中,将介绍敏捷开发中常用的测试流程,并探讨如何将测试融入到敏捷开发的每个阶段。
一、需求分析阶段中的测试在敏捷开发中,需求分析是非常关键的一步。
测试团队需要参与进来,与开发人员和产品负责人一同讨论和明确需求。
测试团队可以通过提出一些测试相关的问题,帮助完善需求,并确保需求的准确性和一致性。
二、计划阶段中的测试计划阶段是敏捷开发的第一个迭代周期,也是测试团队准备测试工作的时候。
在这个阶段,测试团队需要与开发团队一起制定测试计划,明确测试的范围、目标和策略。
测试团队还需要评估测试资源的需求,并与项目管理团队协商,确保能够及时获得所需资源。
三、设计阶段中的测试设计阶段是敏捷开发的第二个迭代周期,也是测试团队进行测试设计的时候。
在这个阶段,测试团队需要根据需求和开发人员提供的设计文档,编写测试用例和测试脚本。
测试用例应该覆盖所有的功能和边界条件,以确保软件的完整性和稳定性。
四、开发阶段中的测试开发阶段是敏捷开发的第三个迭代周期,也是测试团队进行测试执行的时候。
在这个阶段,测试团队需要执行之前设计好的测试用例和脚本,并记录测试结果。
测试人员还可以根据需要进行一些手工测试,以发现潜在的问题和漏洞。
与开发人员密切合作,并及时反馈测试结果和问题,以便他们及时修复bug。
五、部署阶段中的测试部署阶段是敏捷开发的最后一个迭代周期,也是软件发布前的最后一次测试。
在这个阶段,测试团队需要执行各种类型的测试,包括性能测试、安全测试、兼容性测试等,以确保软件可以在不同的环境和配置下正常工作。
测试团队还需要与运维团队一起制定软件的部署计划,并在部署过程中监控和验证软件的稳定性。
六、迭代和持续集成中的测试在敏捷开发中,软件的迭代是一个不断循环的过程,每个迭代周期都要进行测试。
敏捷开发中测试的作用和方法有哪些在当今快速发展的软件开发领域,敏捷开发已成为众多团队的首选方法。
敏捷开发强调快速迭代、适应变化以及团队协作,而在这个过程中,测试扮演着至关重要的角色。
那么,在敏捷开发中,测试究竟有哪些作用?又有哪些有效的测试方法呢?首先,让我们来了解一下敏捷开发的特点。
敏捷开发注重短周期的迭代,通常以一到几周为一个迭代周期。
它强调与客户的紧密合作,通过不断收集反馈来调整产品方向。
在这样的环境下,测试不能再是传统的在开发后期进行的孤立活动,而是需要与开发过程紧密融合。
测试在敏捷开发中的首要作用是保障软件质量。
通过及时发现和报告缺陷,测试能够帮助开发团队在早期解决问题,避免缺陷在后期积累,从而减少修复成本和时间。
想象一下,如果一个缺陷在产品即将发布时才被发现,那修复它可能需要大量的时间和精力,甚至可能导致项目延期。
其次,测试有助于增强团队对软件的信心。
当测试结果表明软件的各项功能正常运行,团队成员就能更有信心地将产品推向市场,或者进入下一个迭代。
这种信心对于保持团队的积极性和高效性是非常重要的。
再者,测试能够促进团队内的沟通与协作。
在敏捷开发中,测试人员不再是独立于开发团队之外的“找茬者”,而是与开发人员紧密合作的伙伴。
通过共同讨论测试用例、分析缺陷,团队成员能够更好地理解彼此的工作,从而提高整个团队的效率。
此外,测试还可以为项目的决策提供依据。
通过对软件功能和性能的评估,测试结果能够帮助团队决定是否继续推进某个功能的开发,或者是否需要对产品的方向进行调整。
接下来,让我们探讨一下敏捷开发中常用的测试方法。
单元测试是其中的基础。
开发人员在编写代码的同时,为自己的代码编写单元测试用例,确保每个小的功能模块能够正常工作。
这种测试能够快速发现代码中的问题,并且由于是开发人员自己编写,能够更好地理解代码的逻辑和预期行为。
集成测试则用于验证不同模块之间的接口和交互是否正常。
在敏捷开发中,集成测试通常会在每个迭代中进行,以确保新添加的功能不会影响到已有的系统。
敏捷测试方法与实践敏捷测试方法是一种在软件开发过程中快速、灵活地进行测试的方法论。
它强调与开发团队紧密合作,通过频繁的迭代和快速反馈来增强软件品质。
本文将介绍敏捷测试方法的基本原则,并探讨如何在实践中应用这些方法来提高测试效率和软件质量。
一、敏捷测试的原则敏捷测试方法遵循以下原则:1. 迭代和增量测试:敏捷团队采用迭代开发方法,将整个开发周期划分为多个小的迭代周期。
在每个迭代中,测试团队与开发团队紧密合作,进行持续测试和修复缺陷。
2. 自动化测试:通过自动化测试脚本能够减少手动测试的工作量,提高测试效率。
敏捷团队应该优先考虑自动化测试工具和框架的选择和使用。
3. 持续集成与持续交付:敏捷团队应该实施持续集成和持续交付的流程,以确保软件的可靠性和稳定性。
4. 优先级管理:测试团队需要与业务团队紧密合作,了解需求的优先级,并根据优先级制定测试计划和策略。
5. 软件质量改进:敏捷测试团队应该持续关注软件质量指标,并通过持续改进来提高测试过程和方法。
二、敏捷测试的实践方法在实践中,敏捷测试团队可以采用以下方法来提高测试效率和软件质量。
1. 用户故事与测试用例:敏捷测试团队应该与业务团队紧密合作,参与用户故事的编写和评审过程。
同时,将用户故事转化为测试用例,明确每个功能的预期行为和结果。
2. 预先编写测试脚本:在每个迭代开始之前,测试团队应该预先编写测试脚本。
这样可以在开发过程中快速执行测试,并及时发现缺陷。
3. 结对测试:测试团队成员可以与开发团队的成员进行结对测试。
通过这种方式,可以加快反馈速度,及时修复问题,并促进团队合作与沟通。
4. 分析和优化测试环境:测试团队需要定期分析和优化测试环境,以确保测试的准确性和稳定性。
包括配置测试环境、搭建测试数据和模拟真实用户场景等。
5. 持续集成与自动化部署:敏捷测试团队应该积极参与持续集成和自动化部署的流程,确保开发的功能能够及时集成和测试,并尽早发现问题。
三、敏捷测试的挑战与解决方案虽然敏捷测试方法在提高测试效率和软件质量方面具有很多优势,但也面临一些挑战。
敏捷开发规范考试测评(100分)1、姓名:【填空题】________________________2、职位:【填空题】________________________3、下列关于敏捷方法的叙述中,错误的是【单选题】(2分)A.A、与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目B.B、敏捷方法尤其适合于开发团队比较庞大的项目C.C、敏捷方法的思想是适应性,而不是预设性D.D、敏捷方法以原型开发思想为基础,采用迭代式增量开发正确答案: B4、XP是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式,其四大价值观包括沟通、简单、【单选题】(2分)A.A、隐喻和反馈B.B、重构和勇气C.C、隐喻和重构D.D、反馈和勇气正确答案: D5、敏捷开发的核心思想是什么?【单选题】(2分)A.A、以效率为核心、迭代、循序渐进的开发方法B.B、以人为核心、迭代、由表及里的开发方法C.C、以效率为核心、迭代、由表及里的开发方法D.D、以人为核心、迭代、循序渐进的开发方法正确答案: D6、下列哪一项不属于敏捷开发的特征?【单选题】(2分)A.A、增量交付B.B、持续集成C.C、严格按照线性方式进行D.D、开发团队自我管理正确答案: C7、下列哪项不属于敏捷开发的四个会议之一?【单选题】(2分)A.A、每日站会B.B、每周分享会C.C、评审会议D.D、回顾会议正确答案: B8、Product backlog 是【单选题】(2分)A.A、产品负责人B.B、产品代办事项列表C.C、迭代D.D、燃尽图正确答案: B9、以下不是SCRUM MASTER职责的是【单选题】(2分)A. 保护团队不受外来无端影响B. 尽可能提高团队影响力C. 负责SCRUM价值观与过程的实现D. SCRUM MASTER是牧羊犬,公仆正确答案: B10、燃尽图有哪两种类型?【单选题】(2分)A. 产品发布燃尽图、任务燃尽图B. 产品发布燃尽图、迭代燃尽图C. 任务燃尽图、用户故事燃尽图D. 开发工作量燃尽图、产品发布燃尽图正确答案: B11、下列哪项是正确的敏捷开发流程?【单选题】(2分)A.A、产品功能列表→计划会→迭代任务→评审会→反思会B.B、产品功能列表→迭代任务→计划会→评审会→反思会C.计划会→产品功能列表→迭代任务→评审会→反思会D.D、计划会→迭代任务→产品功能列表→评审会→反思会正确答案: A12、下列哪项不属于敏捷开发的8个应用?【单选题】(2分)A.A、报表B.B、文档C.C、口文档D.D、运行维护正确答案: D13、下列不属于Scrum 的物件的是【单选题】(2分)A. Product BackingB. Sprint BacklogC. 燃尽图D. 看板正确答案: D14、瀑布模式是以什么为中心分阶段控制软件开发?【单选题】(2分)A.A、过程B.B、结果C.C、工作流D.D、开发代码正确答案: A15、迭代计划会议的主要议程是【单选题】(2分)A. 讨论系统物理架构B. 研讨系统逻辑架构C. 讨论产品代办事项列表最需优先完成的事项D. 讨论系统数据架构正确答案: C16、下列哪项不属于缺陷的严重程度?【单选题】(2分)A.A、提示B.B、致命C.C、普通D.D、建议正确答案: C17、下列哪项不属于轻量协作版的三个应用?【单选题】(2分)A.A、报表B.B、口文档C.C、文档D.D、看板正确答案: B18、以下属于迭代计划会议参与者的是【多选题】(2分)A. 团队B. SCRUM MASTERC. 用户代表D. 产品负责人正确答案: ABD19、以下属于产品负责人职责的是【多选题】(2分)A. 驱动产品成功B. 对产品的投资回报率负责C. 排列优先级D. 迭代回顾正确答案: ABC20、以下哪几项可以制作成用户故事?【多选题】(2分)A.A、整个团队B.B、用户C.C、客户D.D、相关他人正确答案: ABCD21、好的Product backlog具备哪些特点?【多选题】(2分)A. 适当的细化B. 随时产生C. 有估算的D. 没有优先级别正确答案: ABC22、如何识别和确定PSP?【多选题】(2分)A. 高品质B. 测试过C. 完整的D. 应该做的,都做得很好正确答案: ABCD23、敏捷开发法是一种以团队为核心,自顶向下、循序渐进的开发方法。
敏捷开发测试流程敏捷开发是一种迭代、循序渐进的软件开发方法,它强调快速响应需求变化、灵活应对客户要求、高度的合作和自组织团队。
在敏捷开发中,测试流程是非常重要的一环,它有助于保证软件质量和项目进度。
本文将介绍敏捷开发测试流程的一般步骤和注意事项。
首先,敏捷开发测试流程的第一步是需求分析和测试计划制定。
在这一阶段,测试团队需要与产品经理、开发团队和客户充分沟通,了解需求和功能特点,明确测试范围和测试目标,制定测试计划和测试用例。
其次,是测试环境的搭建和测试数据的准备。
测试环境的搭建包括硬件环境和软件环境的准备,确保测试环境与生产环境一致。
同时,测试数据的准备也是非常重要的,测试数据应该具有代表性,覆盖各种情况和边界条件。
接下来,是测试用例的执行和缺陷管理。
测试用例的执行是测试团队的核心工作之一,通过执行测试用例来验证软件的功能和性能。
同时,测试团队还需要及时记录和跟踪缺陷,确保缺陷能够及时修复和验证。
最后,是测试报告的编写和测试总结。
测试报告是测试团队向项目组和客户交付的成果之一,它应该清晰、准确地反映测试结果和测试覆盖情况。
同时,测试团队还需要对测试过程和测试结果进行总结,发现问题和不足之处,为下一轮测试提供经验和教训。
在敏捷开发测试流程中,还有一些注意事项需要特别关注。
首先是持续集成和自动化测试。
持续集成可以帮助测试团队及时发现集成问题,自动化测试可以提高测试效率和覆盖范围。
其次是与开发团队的紧密合作。
测试团队需要与开发团队保持密切的沟通和合作,及时交流问题和解决方案。
最后是灵活应对变化。
在敏捷开发中,需求和功能可能会频繁变化,测试团队需要灵活应对,及时调整测试计划和测试用例。
总之,敏捷开发测试流程是一个灵活、高效的测试过程,它要求测试团队具有较强的沟通能力、团队合作精神和快速响应能力。
通过严格执行测试流程和注意事项,可以保证软件质量和项目进度,满足客户的需求和期望。
敏捷开发测试验收文档首先,敏捷开发测试验收文档通常包括以下内容:1. 用户故事,敏捷开发中,需求以用户故事的形式呈现。
测试验收文档会包括所有相关的用户故事,以确保开发团队了解客户的需求。
2. 验收标准,测试验收文档会明确列出每个用户故事或功能的验收标准,以便开发团队知道什么时候一个功能被认为是完成的。
3. 测试用例,文档会包括详细的测试用例,以确保每个功能都经过了全面的测试。
4. 测试结果,文档会记录每个功能的测试结果,包括通过的测试用例、失败的测试用例以及待解决的缺陷。
5. 用户反馈,验收文档可能还包括用户的反馈和意见,以便开发团队可以根据实际用户体验进行调整和改进。
其次,敏捷开发测试验收文档的编写和管理需要遵循一定的原则和最佳实践:1. 及时更新,验收文档需要及时更新,以反映当前的开发进度和用户需求变化。
2. 透明可追溯,文档需要具有透明性和可追溯性,以便团队成员和利益相关者都能够了解项目的状态和进展。
3. 简洁清晰,文档应该尽量简洁清晰,避免冗长和复杂的描述,以便团队成员能够快速理解和使用。
4. 与团队协作,编写验收文档需要与开发团队和产品负责人紧密合作,以确保文档准确地反映了客户需求和团队的实际工作。
最后,敏捷开发测试验收文档在实际项目中的应用非常重要:1. 作为沟通工具,验收文档可以帮助开发团队和客户之间进行有效的沟通,确保双方对需求的理解一致。
2. 作为跟踪工具,文档可以帮助团队跟踪项目的进度和质量,及时发现和解决问题。
3. 作为文档记录,验收文档也是项目的重要文档记录,可以为项目的后续维护和升级提供参考和依据。
总的来说,敏捷开发测试验收文档在敏捷开发中扮演着非常重要的角色,它不仅是对客户需求的准确记录,也是团队协作和项目管理的重要工具。
希望这些信息能够帮助你更全面地了解敏捷开发测试验收文档的相关内容。
敏捷开发测试规范(试行)2012年9月目录1 概述 (3)1.1 编写目的 (3)1.2 读者对象 (3)1.3 术语定义 (3)2 敏捷测试流程 (3)2.1 需求验证 (4)2.2 用例设计 (4)2.3 用例审核与维护 .............................................. 错误!未定义书签。
2.4 测试计划 (4)2.5 测试实施运行 (4)2.6 版本控制 (5)2.7 需求变更 (6)2.8 迭代末期“ bug 大扫除” (6)3 敏捷测试方法与策略 (7)3.1 持续测试、持续反馈 (7)3.2 单元测试方法策略 (7)3.3 功能测试方法策略 (7)3.4 性能测试方法 (8)3.5 系统测试策略 (9)3.6 测试驱动研发 (9)3.7 持续集成测试 (10)4 终端移动互联网测试 (11)4.1 用户体验测试 (11)4.2 平台兼容性测试 (12)4.3 不同网络环境下测试 (12)4.4 多事务并发测试 (12)4.5 安装、卸载测试 (13)5 测试工具和环境 (13)5.1 单元测试工具 (13)5.2 功能回归测试工具 (14)5.3 性能测试工具 (14)5.4 持续集成测试环境 (14)6 测试人员要求 (14)6.1 人力需求 (14)6.2 测试人员能力要求 (14)7 附录 (16)1概述1.1编写目的ICT自主开发产品拟采用敏捷开发模式,为规范ICT支撑中心项目敏捷测试流程,明确敏捷开发模式下的术语定义,明确敏捷测试方法与策略,明确移动互联网测试特有的测试内容,确定敏捷开发模式下用到的测试工具以及测试环境,以及初步确定敏捷测试人力需求计算方式与对人员能力要求,特制定本规范。
本规范适用于采用敏捷开发模式下的所有自主开发移动互联网产品。
1.2读者对象本规范读者对象为软件开发项目管理者、项目经理、测试经理、开发经理、开发组、测试组所有人员。
1・3术语定义表2敏捷测试流程2.1 验证需求和设计敏捷测试强调问题暴露越早越好。
需求和设计具体来说一般包括:(1)由项目经理根据需求文本而编写的产品用户故事或者是产品软件需求规格说明书;(2)由开发人员根据产品用户故事而编写的迭代用户故事,或者是详细设计、数据库设计、系统方案设计、概要设计(可裁剪,根据开发系统规模决定是否裁剪。
)。
作为测试人员,审核重点是检查产品用户故事、迭代用户故事对用户需求定义的完整性、严密性和功能设计的可测性。
在测试初期,测试人员要学会做静态测试,做好需求分析,做好对设计逻辑的分析。
测试人员要更多的思考需求的可实现性,将自身作为第一用户积极参与项目和系统的需求分析,设计和开发。
更多的参与DB Design (数据库设计),框架的评审中来。
积极地参与前期工作,尽早的开始测试,并迅速反馈给设计和开发其静态测试结果。
需求和设计验证产出物: 测试需要提交评审结果。
2.2 用例设计与审核开发人员根据产品用户故事、迭代用户故事,设计测试用例,测试人员负责测试用例审核。
为保证测试用例的质量和可行性,确保测试工作的顺利进行,让开发人员、测试人员迅速地了解测试的重点并给出相应的意见和建议,用例设计人员在出输出测试用例的同时,应出一份用户故事与用例跟踪表(见附件:产品故事-燃尽图跟踪表),其中注明测试用例已覆盖了哪些用户故事,具体每个用户故事对应的测试用例编号,这样其他项目组成员对测试用例进行查看的时候,能够对测试用例的覆盖率一目了然,对覆盖率不足(如某个重点用户故事的测试用例覆盖不够)的地方能够及时给出意见。
测试人员负责用例审核。
2.3 测试计划敏捷测试的测试计划不需要复杂的计划文档,写出一页纸的测试计划,将测试要点(包括策略、特定方法、重点范围等)列出来即可,模板见附件。
2.4 测试实施运行敏捷开发模式中,测试与研发紧密结合在一起。
测试主要有两种:单元测试和验证收测试。
单元/接测试一般是由开发人员来完成的,接收测试是由客户代表来完成。
由于客户通常无法在现场,一般由测试人员做验证测试,最后由客户进行接收测试。
在每个版本发布给客户之前必须由测试人员进行测试,发布版本之后由客户做接收测试,提出需要修改的地方。
需要修改的地方将在下后面的迭代中完成。
•单元测试在每日构件版本给测试前,开发首先要做单元测试,提前告知软件中的薄弱环节,帮助测试人员调整测试重点。
做单元测试的好处是可以提高版本质量,减轻测试的工作量,减少浅层次的bug 的发生率,使测试人员能够将更多的精力投入到寻找深层次的bug 上面。
•验证测试测试人员的验证测试从总体上说就是将测试用例按计划付诸实施的过程,以及验证故障修复是否会引入新的故障。
这一阶段的测试必须在周密的计划下进行。
这种计划性首先体现在开发和测试的相互协调配合,根据产品的架构和功能模块的依赖关系,按照项目的总体计划共同推进。
从测试的过程来看,测试执行的一开始可以是针对部分用户故事的,之后可以逐步扩展。
接着开始采用迭代的过程完成测试任务,即将测试任务划分为多个周期,一开始可以做些关键的功能性/用户故事测试,可以对代码中的可复用部分(组件,构件)做完整的测试。
接着的迭代周期可以做边缘化的功能测试和其他测试,最后的几个迭代应该用于完整的回归测试,和关键的性能和稳定性测试。
•每日构件版本测试敏捷开发过程中除每个迭代中持续集成版本以外,还会有每日构件版本,每日构件版本测试用以验证前天修复的故障,以及测试故障修复是否会引入新的故障。
2.6 版本控制敏捷开发强调快速开发,持续集成。
版本包括每日构件版本、持续集成版本、验收测试版本三种类型。
1)版本号约定每日构件版本号约定:PXXV0.0.0D0823 (D 后面是日期)持续集成测试版本号约定:PXXV0.1.0B01 (从B01 开始递增)验收测试版本号约定:PXXV1.0.0B01 (从B01 开始递增)说明:PXX 为项目名,V0.0.0 为每日构件版本,V0.1.0 为集成阶段,V1.0.0 为系统测试阶段。
2)版本发布规则每日构件版本。
每日发布每日构件版本,用于验证当天解决的故障,验证故障修改是否会引入新的故障。
持续集成测试版本。
每个迭代周期发布一个持续集成测试版本,如迭代周期为二周的,每个迭代周期可发布二个版本,由项目经理、测试经理协商决定。
验收测试版本。
项目开发后期迭代发布验收测试版本,每个迭代发布一个验收测试版本(项目经理和测试经理协商决定)。
3)版本发布说明版本每次发布必须提供发布说明(Release Note )使客户对发布的版本情况一目了然。
Release Note 中主要包括三方面的内容:Fixed , New Features, Known Problems。
其中,Fixed部分写明此版本修复了上个版本中存在的的哪些比较大的bug;New Features 部分写明此版本新增加了哪些功能;Known Problems 部分写明此版本尚存在哪些比较大的问题,有待下个版本改善;或者列出需求不太明确的地方,有待客户给出明确答复意见,在下个版本中完成。
2.7 需求变更采用敏捷开发模式的项目中,客户对于需求的变更很频繁。
因此,需求管理是十分必要和重要的工作。
整个项目进行过程中,对不断变化的需求,一定要作跟踪,每次的需求变更都要有相应的历史记录,方便后期的管理和维护工作。
可将每次的变更整理记录到产品故事-燃尽图跟踪表(见附件),并使该文档始终保持最新更新的状态,与需求的变化保持同步。
同时更新项目管理系统上面的产品用户故事与测试用例。
2.8 迭代末期“ bug 大扫除”在项目开发的迭代末期,可以开展“bug^扫除”活动。
戈U出一个专门的时间段,在这期间所有参与项目的人员,集中全部精力,搜寻项目的Bug。
注意以下要点:(1)尽管这是一个测试活动,但参与者并不仅限于测试人员。
项目经理,开发人员甚至于高层管理人员都应参加,如同全民动员。
目的是要集思广益;(2)要鼓励各部门,领域交叉搜索,因为新的思路和视角通常有助于发现更多的Bug;(3)为调动积极性,增强趣味性,可以适当引入竞争机制,比如当活动结束时,评出发现Bug 最多,发现最严重Bug 的个人,给以物质和精神奖励。
(4)可以分专题展开,比如安全性、用户界面可用性、国际化和本地化等等。
3 敏捷测试方法与策略3.1 持续测试、持续反馈敏捷测试是持续测试、持续反馈的过程,测试人员扮演“用户代表”角色,确保产品满足客户的需求。
测试报表,测试日志都能及时得到反馈。
3.2 单元测试方法策略单元测试是对功能模块进行正确检验的测试工作,也是后续测试的基础。
目的是在于发现各模块内部可能存在的各种差错,因此需要从程序的内部结构出发设计测试用例,着重考虑以下五个方面:1)模块接口:对所测模块的数据流进行测试。
2)局部数据结构:检查不正确或不一致的数据类型说明、使用尚未附值或尚未初始化的变量、错误的初始值或缺省值。
3)路径:虽然不可能做到穷举测试,但要设计测试用例查找由于不正确的计算(包括算法错、表达式符号表示不正确、运算精度不够等)、不正确的比较或不正常的控制流(包括不同数据类型量的相互比较、不适当地修改了循环变量、错误的或不可能的循环终止条件等)而导致的错误。
4)错误处理:检查模块有没有对预见错误的条件设计比较完善的错误处理功能,保证其逻辑上的正确性。
5)边界:注意设计数据流、控制流中刚好等于、大于或小于确定的比较值的用例。
单元测试除代码走查外,敏捷团队成员要能熟练单元测试工具开展单元测试,确保代码质量。
3.3 功能测试方法策略功能测试的目标主要包括:是否有遗漏需求;是否正确的实现所有功能/ 用户故事;隐示需求在系统是否实现;输入、输出是否正确;移动互联网应用的功能测试侧重于所有可直接追踪到用例(用户故事)、业务功能和业务规则的测试需求,这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。
功能测试基于黑盒技术,通过图形用户界面(GUI)与应用程序进行交互,并对交到的输出或结果进行分析,以此来核实实用程序及其内部进程正确与否。
敏捷模式下的功能测试方法策略:已经实现功能的自动化测试。
对前期迭代中已经实现的功能,采用工具进行自动化测试,即功能回归自动化测试。
新实现功能的手工测试。
主要验证用户故事是否正确实现,与用例是否相符。
新实现功能的探索性测试。
针对新实现的功能,除验证用户故事是否实现以外,还需要拓展测试内容。
测试系统是否会有其他意想不到的异常或者缺陷。
探索性测试说明:探索性测试是一种测试风格,不是具体的某种测试技术,强调个人自由与职责,将测试相关学习、测试设计、测试执行与结果分析三者相互支持和并行执行。