论文部分内容阅读
摘要:敏捷开发倡导的就是迭代式和增量式的开发模式,并且强调测试在开发过程中的重要性。主要是围绕以用户为中心,以客户需求为导向的开发过程,这个过程有一个特点就是“随时有变化”。虽然敏捷开发引入了灵活性,但其中的重点还是在于客户满意度。客户是敏捷过程的关键环节。如果,客户能够有所参与,并且客户了解到开发对于他们参与的欢迎,那么有助于增加客户对最终产品和开发team的信心和满意度。如果客户由于其他原因不愿意参与进来,那么选择传统的开发流程更好。敏捷开发有三个比较明显的特征:依赖客户完成,测试驱动和紧凑的开发周期。
关键词:敏捷开发;软件测试;软件开发;敏捷测试
前言:
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。敏捷开发过程中,很多时候测试人员就时常被当成项目无法加快的阻力,一下这边出一个bug,那边有个缺陷,所以项目经理痛恨测试,程序员们也巴不得测试快快放行,让程序好好上线,但我们都知道没有通过测试的软件是不能硬上线的,测试是把守项目上线最后一关的,若把关不到位,可能随时会导致项目延迟。
一、敏捷开发的概念及价值观
(一)什么是敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可以运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
(二)敏捷开发的价值观
敏捷其实就是一伙程序员被繁重的过程模型所束缚,为了能跳出来,而聚到一起发表的一份宣言。其实敏捷开发就是这一份宣言中强调的四条价值观:
(1)个体与交流比流程和工具更有價值
(2)可用的软件比冗长的文档更有价值
(3)与客户的协作比合同谈判更有价值
(4)对变化的响应比遵循计划更有价值
我们要正确认识敏捷,就要从这四条价值观触发。切忌把敏捷当作一种超越了瀑布、V&V等传统模型的新模型,只要照着它的流程做就可以。
二、敏捷测试的概念及特点
(一)敏捷测试的概念
敏捷测试就是敏捷开发中的测试,属于协同测试的一种。敏捷测试要求每一个人都要参与到测试的设计,实现和执行中,客户通过定义用例以及程序树形参与到定义验收测试的设计中来。开发和测试合作打造可以进行功能自动化的测试配件。敏捷测试需要每一个人的参与,所以对沟通和协作要求比较高。敏捷测试依赖于自动化测试,因为测试的周期短,时间宝贵,自动化测试比人工测试更可靠。而测试者不仅仅发现问题并反馈给相应的开发,更重要的是通过持续的测试反馈推动项目前行,帮助开发修改bug,改变需求设计以及其他的一般性质量提升。
(二)敏捷测试的特点
1强调从客户角度进行测试
2重点关注迭代测试新功能,不强调测试阶段,不强调单元测试,系统测等测试阶段的划分
3强调尽早测试,不间断测试,具备相应的条件就开始测试
4强调持续反馈,测试发现的问题,状况等反应给相关的同事
5预防缺陷重于发现缺陷
6开发和测试是紧密合作的,大家都对软件有责任
7计划随着进展时常调整
8所有阶段都需要自动化的参与,每个人都需要做,是项目集成的一部分
9团队合作是无缝合作,没有严格区分开发团队和测试团队。团队的相关角色及时知晓研发的现状并及时改正
三、测试人员应该如何参与敏捷
敏捷开发本身没有对测试人员有明确的定位,从用户故事、结对编程、测试驱动开发、持续集成、迭代验收这些实践来看,测试人员可以参与用户故事中关于定义完成的部分,为了能够做到持续集成,测试人员在开发进行编程的同时,可以进行自动化测试用例的设计和实现,如果有一定编程能力,也可以参与结对编程。最后也可以主持迭代验收。但是不管从什么角度讲,测试人员要参与敏捷,都需要有比较过硬的技术才行。
举个例子,敏捷开发的迭代节奏非常快,而且持续集成要求测试必须可以反复的执行,所以测试自动化的要求诉求非常大,但是在敏捷开发过程中,我们不能采用录制回放的方式进行自动化测试,录制回放是回归测试的做法,必须等待可测软件编码已完成,但这种做法对快节奏的迭代来说太没效率了,会拖长迭代周期。测试的自动化用例实现必须和被测软件编码是同步进行的,这样才能在持续集成中每天都有新集成,每天都有测试。不能依赖录制回放,必须完全手工编程来实现自动化用例,这就需要测试人员有非常好的编码能力。
综上所述,测试在项目的早期就必须参加,熟悉需求,并从测试角度提出各种问题,确保产品经理、开发、测试的等角色的关注点都有备考量到,而测试也会从早期就开始撰写测试用例,在撰写过程中如果有发现任何问题也趁早反馈给产品经理、项目经理,趁早把问题给理清,这样做测试才能把自己的角色提升到为质量负责的角色
参考文献:
[1]杨骏等.关于敏捷开发项目中软件测试方法的研究[J].工程技术,2011,02(05):70-71.
[2]宋易欣.基于看板管理方法的敏捷软件开发研究[D].北京邮电大学,2013
关键词:敏捷开发;软件测试;软件开发;敏捷测试
前言:
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。敏捷开发过程中,很多时候测试人员就时常被当成项目无法加快的阻力,一下这边出一个bug,那边有个缺陷,所以项目经理痛恨测试,程序员们也巴不得测试快快放行,让程序好好上线,但我们都知道没有通过测试的软件是不能硬上线的,测试是把守项目上线最后一关的,若把关不到位,可能随时会导致项目延迟。
一、敏捷开发的概念及价值观
(一)什么是敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可以运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
(二)敏捷开发的价值观
敏捷其实就是一伙程序员被繁重的过程模型所束缚,为了能跳出来,而聚到一起发表的一份宣言。其实敏捷开发就是这一份宣言中强调的四条价值观:
(1)个体与交流比流程和工具更有價值
(2)可用的软件比冗长的文档更有价值
(3)与客户的协作比合同谈判更有价值
(4)对变化的响应比遵循计划更有价值
我们要正确认识敏捷,就要从这四条价值观触发。切忌把敏捷当作一种超越了瀑布、V&V等传统模型的新模型,只要照着它的流程做就可以。
二、敏捷测试的概念及特点
(一)敏捷测试的概念
敏捷测试就是敏捷开发中的测试,属于协同测试的一种。敏捷测试要求每一个人都要参与到测试的设计,实现和执行中,客户通过定义用例以及程序树形参与到定义验收测试的设计中来。开发和测试合作打造可以进行功能自动化的测试配件。敏捷测试需要每一个人的参与,所以对沟通和协作要求比较高。敏捷测试依赖于自动化测试,因为测试的周期短,时间宝贵,自动化测试比人工测试更可靠。而测试者不仅仅发现问题并反馈给相应的开发,更重要的是通过持续的测试反馈推动项目前行,帮助开发修改bug,改变需求设计以及其他的一般性质量提升。
(二)敏捷测试的特点
1强调从客户角度进行测试
2重点关注迭代测试新功能,不强调测试阶段,不强调单元测试,系统测等测试阶段的划分
3强调尽早测试,不间断测试,具备相应的条件就开始测试
4强调持续反馈,测试发现的问题,状况等反应给相关的同事
5预防缺陷重于发现缺陷
6开发和测试是紧密合作的,大家都对软件有责任
7计划随着进展时常调整
8所有阶段都需要自动化的参与,每个人都需要做,是项目集成的一部分
9团队合作是无缝合作,没有严格区分开发团队和测试团队。团队的相关角色及时知晓研发的现状并及时改正
三、测试人员应该如何参与敏捷
敏捷开发本身没有对测试人员有明确的定位,从用户故事、结对编程、测试驱动开发、持续集成、迭代验收这些实践来看,测试人员可以参与用户故事中关于定义完成的部分,为了能够做到持续集成,测试人员在开发进行编程的同时,可以进行自动化测试用例的设计和实现,如果有一定编程能力,也可以参与结对编程。最后也可以主持迭代验收。但是不管从什么角度讲,测试人员要参与敏捷,都需要有比较过硬的技术才行。
举个例子,敏捷开发的迭代节奏非常快,而且持续集成要求测试必须可以反复的执行,所以测试自动化的要求诉求非常大,但是在敏捷开发过程中,我们不能采用录制回放的方式进行自动化测试,录制回放是回归测试的做法,必须等待可测软件编码已完成,但这种做法对快节奏的迭代来说太没效率了,会拖长迭代周期。测试的自动化用例实现必须和被测软件编码是同步进行的,这样才能在持续集成中每天都有新集成,每天都有测试。不能依赖录制回放,必须完全手工编程来实现自动化用例,这就需要测试人员有非常好的编码能力。
综上所述,测试在项目的早期就必须参加,熟悉需求,并从测试角度提出各种问题,确保产品经理、开发、测试的等角色的关注点都有备考量到,而测试也会从早期就开始撰写测试用例,在撰写过程中如果有发现任何问题也趁早反馈给产品经理、项目经理,趁早把问题给理清,这样做测试才能把自己的角色提升到为质量负责的角色
参考文献:
[1]杨骏等.关于敏捷开发项目中软件测试方法的研究[J].工程技术,2011,02(05):70-71.
[2]宋易欣.基于看板管理方法的敏捷软件开发研究[D].北京邮电大学,2013