敏捷测试(Agile Testing)是一种强调快速、灵活、协作的测试方法。它强调在软件开发的早期阶段就要开始测试,并且测试要与开发紧密结合。这种方法要求测试人员在敏捷过程中不断关注测试以及软件交付质量,以便尽早地发现问题并实施修复。以下总结了敏捷测试工作中常用的专业术语,也是敏捷测试必备的知识点。
迭代(Iteration)
敏捷开发中,迭代是指在软件开发周期内的一个特定时间段内,完成提前定义好的任务或计划。一般情况下,单个迭代的时间长度较短,通常是2至4周。在每个迭代期间,研发人员会重点关注其中的一些功能或需求,同时要在此迭代结束时完成定义好的开发和测试工作。
迭代在敏捷开发和测试工作中是非常重要的一项,可以让团队成员在整个开发周期内了解到实时的问题及进度并快速适应变化。从Kent Beck在介绍极限编程时最先提到的拥抱变化可以看出这一项的重要性。
团队可以尽早发现问题并进行调整,从而显著减少风险并提高产品交付的质量。同时在迭代结束时,要进行评估反馈,以对下个迭代进行针对性地改进,提高工作效率。
燃尽图(Burn-down Chart)
燃尽图是一种用于追踪开发团队是否按时完成项目的工具。它以图表的形式表示迭代中的开发任务,以及任务完成的速度和进度。
用户故事(User Story)
用户故事是客户对于软件需求的描述,常用于敏捷开发中。开发团队在完成每个用户故事的过程中,要满足客户的实际需求,并在开发过程中不断与客户进行沟通。
测试驱动开发(TDD,Test Driven Development)
TDD是一种以测试为导向的敏捷开发过程,它强调开发人员需要在编写代码前编写单元测试用例,如果用例运行失败,则返回检查相应的代码模块,然后再次编写代码以使测试通过。测试驱动开发又称为测试驱动设计,这种测试活动更有利于开发人员编写出健壮性强且易于维护的代码。
敏捷质量管理(Agile Quality Management)
敏捷质量管理是确保软件开发过程中质量标准的一种方法,它将质量控制融入到敏捷开发的各个阶段。
应用生命周期管理(ALM,Application Lifecycle Management)
ALM是深入了解软件开发生命周期的一种方法,并在整个开发过程中进行管理和协作。它包括需求管理、版本控制、测试管理、配置管理等等。
构建流程(Build Process)
构建流程是指将开发的代码转换为可执行的程序或成品的过程。这个过程包括编译、链接、打包等。构建流程是可以通过配置成为自动化构建组件的,比如在测试环境、预发布环境及生产环境中分别部署。
持续交付(Continuous Delivery)
持续交付是一种软件开发流程,它强调在开发过程中不断交付可生产的软件版本。这种方法有助于最大程度地减少由于错误导致的延迟。
持续集成(Continuous Integration)
持续集成是一种流程,它使用自动化工具持续集成团队成员编写、测试和发布的每一个软件变更。
行为驱动开发(BDD,Behavior Driven Development)
BDD是一种以行为为中心的敏捷开发方法,将开发人员、QA和客户协作起来,以确保开发过程中的需求更加明确和一致。
客户团队(Customer Team)
客户团队是指那些参与软件开发过程的客户代表,他们负责确保开发人员了解软件需求。有些公司也会有BA来负责与客户代表沟通需求。
交付团队(Delivery Team)
交付团队是实现客户要求的开发团队。这个团队包括开发人员、测试人员、项目经理等人员。
DevOps
DevOps是一种将软件开发、运维与技术支持等不同职能结合起来的一个术语,以便于更加轻松地交付功能和开发更加稳定和更少参与维护的系统。
企业级解决方案(Enterprise Solutions)
企业级解决方案是为大型企业提供的一种软件解决方案,以满足其业务需求。
探索性测试(Exploratory Testing)
探索性测试是一种以探索的方式进行的测试方法,它关注测试人员的感性认知和直觉。
基础设施即服务(IaaS,Infrastructure as a Service)
IaaS是一种云计算服务模型,它提供基础设施作为服务来支持软件应用程序。
看板(Kanban)
看板是一种管理方法,它通过维护项目进度和工作的透明度来控制开发团队的工作流程。目前很多项目管理系统都有看板模块。
验收测试(Acceptance Testing)
验收测试是一种测试方法,用于确认软件是否能够满足客户的需求并达到预期的性能和质量标准。
平台即服务(PaaS,Platform as a Service)
PaaS是一种云计算服务,它提供运行软件的平台,以便开发人员能够在无需花费过多时间和成本的情况下开发软件应用程序。
产品版本(Product Version)
产品版本是软件的一个特定版本,它包括特定的功能和修复了某些问题。
重构(Refactoring)
重构是一种改进代码质量和可维护性的方法,它使用一些技术手段,使代码更加简洁、清晰和易于理解。
系统测试(System Testing)
系统测试是指在整个软件应用系统的范围内进行的测试,以确保整个系统按照预期结果工作。
集成测试(Integration Testing)
集成测试是指将已经测试过的模块集成为一个单独的系统,测试整个系统是否能够按照预期工作。
回归测试(Regression Testing)
回归测试是指在应用程序已经修改或新增后,需要重新测试软件以确保新修改或新增的功能不会破坏以前已经测试通过的内容。
单元测试(Unit Testing)
单元测试是一种测试方法,用于测试软件的一个单元或一个组件,确保其单独工作时的正确性。
软件即服务(SaaS,Software as a Service)
SaaS是一种云计算服务,它提供一种将软件作为服务提供给用户的方式,用户通过网络和互联网来访问服务。
源码控制系统(Source Control System)
源码控制系统是一种管理和控制开发团队代码变更的工具,它用于版本控制和代码备份,以及协作开发。
敏捷测试回顾(Agile Test Retrospective)
敏捷测试回顾是一个评估和改进敏捷开发过程的过程,在每个迭代之后进行。旨在找出迭代中的不足之处,以便团队在下一个迭代中更好地开发。