技术分享|基于CMMI的软件测试

2018-07-06 15:24:39

现在,很多软件组织都在走CMMI之路,这是以软件工程过程的标准化来保证软件质量的一种规范性行为。那么,软件测试在CMMI中是如何定义和实施的呢?作为一名资深软件测试人员,今天西安中软卓越的老师来阐述一下基于软件能力成熟度模型集成的软件测试。

f技术分享|基于CMMI的软件测试.jpg

首先,在CMMI中,软件测试与两个关键过程域有关,一个是验证,一个是确认。验证,是为了确认某一开发阶段的产品是否满足在阶段初期提出的要求而进行评估的过程;确认,是在开发过程中或结束时,对软件产品进行评估以确定其是否满足软件需求规格的要求。简单地讲,验证就是证明是否正确地构造了产品;确认则是证明构造的产品是否正确。

以传统的瀑布模型为例,验证意味着每个阶段结束后,对软件产品的技术审查和管理评审,确认则是对每个阶段结束后所产生的代码进行测试。基于CMMI的软件测试,就涵盖了这两方面的工作,下面就瀑布模型软件生命周期中各阶段的软件测试活动进行介绍。

1.软件需求分析阶段

基于"软件测试介入要及早"的原则,在软件需求分析阶段,软件测试人员就可以加入到软件需求分析和确认的行列中,并在该阶段结束后,参与本阶段软件产品的评审。在该阶段,并没有软件代码产生,所以主要的软件产品就是文档。本阶段产生的跟软件测试关系密切的文档是软件需求规格说明和软件开发计划,根据这两份文档,测试人员可以出具软件配置项测试计划,在计划中明确测试类型,测试方法,测试环境,以及测试人员和进度安排。

2.软件设计阶段

在软件概要设计阶段,软件人员主要参与的测试活动是评审软件概要设计和软件集成计划文档,并出具软件集成测试计划。同样,在软件详细设计阶段,软件人员参与评审软件详细设计文档,并出具软件单元测试计划。

3.软件编码及后续测试阶段

在这个阶段,软件代码已产生,可以按照单元测试计划,拟制单元测试用例,执行单元测试,出具单元测试报告。在单元测试阶段,建议进行代码走查,这是对软件代码的确认。自此以后的阶段,软件确认和验证的对象就都是代码。

单元测试完成后,对该阶段的软件产品进行确认,相关文档该评审就评审,该入受控库就入受控库,经软件配置确认后,转入集成测试阶段。

依照集成测试计划,拟制集成测试用例说明,可对软件单元按照某种恰当的集成策略进行组装。在这个阶段,产生集成测试报告。这是该阶段软件验证和确认的成果。同样,集成测试完成后,对该阶段的软件产品也要进行确认并入受控库,经软件配置确认后,转入配置项测试阶段。

软件配置项测试以需求阶段产生的测试计划为依据,拟制配置项测试说明,执行以黑盒为主的配置项测试,出具配置项测试报告。测试完成后,提交配置管理,确认后等待软件交付。

以上就是基于CMMI的软件测试过程。其优点在于,将测试分为验证和确认两部分,涵盖了软件产品的整个生命周期,从工程过程的角度确保了软件产品的质量。但以上的软件过程也是有缺陷的,例如测试计划周期太长,随着开发过程的进展,难免会有变更,这无疑增加了测试的工作量,降低了测试文档的实效性。所以随着软件项目管理的发展,基于CMMI的软件测试活动,还有很大的改进空间。

作为一名开发人员,技术是立身的根本,是拴马桩的尊严;对于一个做教育机构,口碑如水是生命之源,是长盛不衰的根本。13年历经风雨依然昂首前行,未来的西安中软卓越同样会恪守初心,以技术立身,培养IT精英,捍卫教育本质。

 

本文由中软卓越(西安)汇集整理,转载请注明作者及出处。

如需学习java、UI设计、软件测试、Python、大数据、嵌入式、Linxu云计算,请点击咨询,加入我们让你的未来不再迷茫。

关于我们

“简称中软卓越”,是中软国际教育科技股份有限公司是大型IT人才培训机构,是人才战略的核心组成部分之一,承担集团发展过程中人才储备和培养的任务;专注IT培训37年,国内高端IT培训品牌,教育部指定官方IT人才培训机构。专注java培训、UI设计培训、软件测试培训、Python培训、大数据培训、嵌入式培训、Linxu云计算培训等培训课程。217家合作院校,880家合作企业,真实项目实战,素质拓展,职业规划。零首付,100%保障就业,先就业,后付款。

最牛逼的毕业学员入职名企享受高薪就业。880家合作企业,年培育学员人数逾6000人,毕业学员就职于中软国际、百度、腾讯、阿里巴巴、IBM、华为科技、中兴通讯、软通动力等知名企业。

还有什么疑问?我们全面为你解答!为您提供一对一专人服务,请点击下方咨询

  • 卓越资讯
  • 猜你想看
  • 常见问题

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。[详细课程]

    软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程;软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。[详细课程]

    软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。[详细课程]

    Python是一种面向对象的解释型计算机程序设计语言,语法简洁清晰,特色之一是强制用空白符作为语句缩进,它常被昵称为胶水语言,能够把用其他语言制作的各种模块。[详细课程]

    UI设计分为实体UI和虚拟UI,互联网说的UI设计是虚拟UI,一般是指对软件的人机交互、操作逻辑、界面美观的整体设计。[详细课程]

    大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。[详细课程]

    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。[详细课程]

    西安市长安北路8号高速大厦三楼

    电话:029-61876930