软件测试自学教程—软件测试在质量体系中的位置

CMMI(CapabilityMaturityModelIntegration,能力成熟度模型集成)认证评估在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMMI共有五个等级,分别标志着软件企业能力成熟度的五个层次,如图2-1所示。从低到高,软件开发生产计划精度逐级上升,单位工程生产周期逐级缩短,单位工程成本逐级降低。据SEI统计,通过评估的软件公司对项目的估计与控制能力提升约40%~50%,生产率提高10%~20%,软件产品出错率下降超过1/3。

图2-1CMMI模型

第一级:初始级

初始级的软件过程是未加定义的随意过程,项目的执行也是随意的,甚至是混乱的。当然有些企业可能已经制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,并且在执行过程中没有政策、资源等方面的支持,它仍然被视为初始级。

第二级:受管理级

根据多年的经验和教训,企业总结出软件开发的首要问题不是技术问题,而是管理问题。因此,CMMI发展到了第二级,更强调软件管理过程,建立一个可管理的过程是很重要的,它可以将开发的过程重复,只有可重复的过程才能逐渐改进并使其成熟。受管理级的管理过程主要包括五个方面:需求管理、项目管理、质量管理、配置管理和子合同管理;其中项目管理过程又分为计划过程和跟踪与监控过程。通过实施这些过程,从管理角度可以看到一个按计划执行且阶段可控的软件开发过程。

第三级:已定义级

在受管理级定义了管理的基本过程,但并没有定义执行的步骤标准。在第三级则要求制定企业范围的工程化标准,并将这些标准集成到企业软件开发标准过程中。规定所有开发的项目或产品都必须遵守该标准过程,并且按照过程执行,当然在实际过程中,可以根据具体的项目对该过程进行适当的裁剪,但过程的裁剪不是随意的,在使用前必须经过企业有关人员的批准。

第四级:定量管理级

第四级的管理是量化的管理。所有过程需建立相应的度量方式,所有产品(包括工作产品和提交给用户的最终产品)的质量需要有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正成为一种工业生产活动。

第五级:持续优化级

持续优化级的目标是达到一个持续改善的境界。所谓持续改进,是指根据过程执行的反馈信息来改善当前已定义的开发过程,即优化已定义的执行步骤。如果企业达到了第五级,就表明该企业能够根据实际的项目性质、技术等因素,不断调整软件开发过程使开发过程达到最优。CMMI模型中包括验证(VER)和确认(VAL)两大过程域,这两大过程域与软件测试有着紧密的联系,也是规范软件测试的两大过程域。

(1)验证(VER)过程域的目的是确保所选定的工作产品符合其指定的需求。验证过程域包括验证准备、验证执行和纠正措施识别。验证的对象包括产品和中间工作产品,验证方法是将待验证的对象与选定的客户需求、产品需求和产品组件需求加以比较。验证是渐进的过程,因为它发生在产品和工作产品的整个开发过程中,从需求开始验证,历经工作产品的验证,最终为已完成产品的验证。

(2)确认(VAL)过程域的目的是展示完全置于预期环境中的产品或产品组件是否满足预期的使用需求。

所有的产品都可在其预期环境中实施确认活动,例如:操作、培训、制造、维护及支持服务。所有用于工作产品的确认方法,也能使用在对产品和产品组件的确定过程中(在所有过程域中,产品和产品组件的含义包括服务和其组件)。工作产品(例如需求、设计、原型)存在于整个产品生命周期,应及早并逐步实施确认。

确认环境必须可代表产品和产品组件的预期环境,同时该确认环境也适用于工作产品确认活动的预期环境。

当在确认过程中问题被识别出来时,需要参考需求开发、技术解决方案或项目监控过程域的实践来解决。

二、基于过程中的质量

图2-2基于过程的质量控制

而软件测试是评估产品质量的重要手段,软件测试贯穿产品开发的始终,那么在整个软件测试过程中,应该如何来度量软件测试的质量呢在整个测试过程中,质量度量主要包括以下几个方面:

(1)测试覆盖率。

测试覆盖率是指在测试过程中对被测试对象的需求、功能、代码测试的程度。主要包括对需求和代码两个方面的覆盖评估,但其实这两个方面的评估本质是一致的,都是通过测试用例来评估覆盖率。

1)基于需求的测试覆盖评估依赖于对已执行/运行的测试用例的核实和分析,其主要是通过评估测试用例覆盖率来评估,在测试过程中的目标是要求需求的覆盖率达到100%。在实际测试过程中,可以通过统计已执行的覆盖率和执行成功的覆盖率来评估需求覆盖率的值。

已经执行的测试用例覆盖率指所有测试用例中被执行用例所占百分比,公式如下:

其中,Tx表示已执行的测试用例数,Rft是测试需求的总数。成功执行的覆盖率指测试过程中执行成功的测试用例所占百分比,公式如下:

其中,Ts表示已执行并且执行状态为成功的测试用例,Rft是测试需求的总数。

2)基于代码的测试覆盖率是对被测试的程序代码语句、路径或条件的覆盖率分析。代码覆盖可以建立在控制流(语句、分支或路径)或数据流的基础上,主要用于白盒测试阶段。控制流覆盖的目的是测试代码行、分支条件、代码中的路径或软件控制流的其他元素;数据流覆盖的目的是通过软件操作测试数据状态是否有效,例如,数据元素在使用之前是否已经定义。

基于代码的测试覆盖通过以下公式计算:

其中,Tc是指使用代码语句、条件分支、代码路径、数据状态判定点方法设计的并被执行的用例数,Tnc(Totalnumberofitemsinthecode)是指项目中总的代码数。

(2)测试执行的质量和效率。

测试执行的效率是指测试工程师每天执行的测试用例数,一般每天执行50条测试用例。测试执行的质量包括两个方面:一方面是指每个测试用例发现的缺陷数;另一方面是指软件发布后遗留的软件缺陷数占总缺陷数的百分比,一般要求低于0.5%。

故测试执行的质量和效率一般使用以下指标来统计:

(3)测试用例深度、质量和有效性。

测试用例是所有测试活动的基础,测试用例质量的好坏直接影响软件测试的质量。

测试用例的度量主要从测试用例深度(也叫测试用例密度)、质量和有效性三个方面来实现。当然如果开展了自动化测试,还可以从测试用例自动化的程度这一维度来度量。测试用例深度(TestCaseDepth,TCD)指每KLOC(千行代码)设计的测试用例数或每个功能点所设计的测试用例数,一般情况下认为每KLOC设计的用例数越多,表示测试的质量越高。当然必须考虑冗余或重复的用例数,在设计用例时应该尽量避免出现冗余或重复。

测试用例质量(TestCaseQuality,TCQ)其实是一个很复杂的指标,它包括两个方面:一方面指如何设计一个好的测试用例;另一方面指测试发现缺陷的数量。

一般情况下,一个好的测试用例应该考虑以下几个方面:

发现缺陷方面主要是指测试用例发现的缺陷数量,公式如下:

TCQ=测试用例发现的缺陷数量/总的缺陷数量总的缺陷数量除了测试用例发现的缺陷数外,还包括通过ad-hoc测试(随机、自由的测试)、集体走查(Work-through)和Fire-drill测试(类似消防训练的用户压力/验收测试)等其他手段发现的缺陷。

(4)缺陷分布分析。

缺陷是测试过程中体现工作效率和价值的重要指标之一,也是分析系统质量的重要指标。在测试过程中除了要提交缺陷外,还需要对缺陷的分布情况进行分析,这样可以作为改进系统质量的依据。在提交缺陷时,需要注意一些必需的元素项,即一个好的缺陷通常需要包含的内容,现在一些企业通常会使用缺陷管理工具来管理测试过程中所发现的缺陷。对提交的缺陷需要进行分析,这样可以进一步改进系统质量,并且可以改进测试方法和测试策略,常用的缺陷分析方法有:ODC正交缺陷分析法、Gompertz缺陷分析法、Rayleigh缺陷分析法、四象限缺陷分析法和根源缺陷分析法,具体的缺陷分析法在第7章详细介绍。

本章主要介绍了关于“软件测试在质量体系中的位置”的内容,大家觉得有用的话,记得每天来这里和小编一起学习涨薪技能。识别下方二维码,免费领取学习课件、视频哦。(笔芯)

THE END
1.软件工程就业前,应该掌握哪些技能?找10个目标岗位的招人要求跟岗位要求. 总结一下 最后能找个公司实习一下,跟现实工作的人,现实的 HR https://www.zhihu.com/question/4273013503/answer/48581226087
2.小白数据分析入门必备课程适合需提升竞争力、提升工作效率、喜欢用数据说话的职场人士,如从事产品、运营、市场、财务、人事、分析等。 Excel数据分析 分享Excel中数据处理、数据分析、数据展现常用的实战方法与技巧 PPT数据分析报告 想让你的报告令人眼前一亮?专业的数据呈现必不可少。https://study.163.com/series/47001.htm
3.3000字《软件测试》从入门到精通全套学习路线整理,零基础入门搭建APP测试环境,使用Appium对APP核心功能进行测试验证,包括ID、xpath、 list元素定位,数据交互、模块封装以及自动化测试框架的使用,生成测试报告,对APP功能进行评估。 三、接口测试Jmeter 1.接口测试综合核心理论 接口测试基础,接口测试流程,接口测试方法,接口测试工具 https://blog.csdn.net/2401_86640450/article/details/141891162
4.2020新版软件自动化测试自学全套教程——中级程序员学习路线Time will tell. 前言 不知不觉间,在软件测试行业折腾了七年。七年之痒即将过去,但我依然热爱着软件测试这份工作,一路坚持,走到现在。 经历过各种难题,有过迷茫,https://www.jianshu.com/p/a0651de6841e
5.300G软件测试0基础全套自学教程(200集视频+学习笔记+项目案例+PDF目录 打印 云打印 上一页 /0 下一页 实际大小 适合宽度 适合界面 Word转PDF 文档在线预览失败,可下载后查看 300G软件测试0基础全套自学教程(200集视频+学习笔记+项目案例+PDF电子书).docx· 818.4KB 下载文件 /0 100% 测**学院 暂无签名 加为好友 https://pan.baidu.com/link/zhihu/71hGzUuZhCiFU2UzN2cUBaNFcwOzZESQQqND==
6.软件测试视频教程全套软件测试学习视频免费下载达内软件测试入门到精通全套视频教程免费下载,包括:软件测试基础理论与项目实战、数据库、linux、手机测试以及性能测试、接口测试与Java语言基础、Java面向对象与selenium自动化测试等,自学软件测试视频教程视频平台!https://www.tedu.cn/v/qa/
7.全网最牛软件测试学习路线图(含学习路线图+学习阶段+学习视频+文末有官方推荐微信、申请好友去领取全套软件测试学习资料吧!!! 此文涵盖软件测试从零到项目实战所有教程,这里有你需要掌握的所有前沿测试技术!史上最全软件测试学习路线,从基础到项目实战,超适配2022年度! 太多太多人根据这套学习路线图进行自学,找到了9k-18k的工作。 https://www.1000bd.com/Article/Index/905049
8.2024新版黑马程序员软件测试零基础入门到精通全套视频教程,包含唯祺娜创建的收藏夹AI内容:2024新版黑马程序员软件测试零基础入门到精通全套视频教程,包含Web测试、app手工测试,到AI测试提效,一套全通关,如果您对当前收藏夹内容感兴趣点击“收藏”可转入个人收藏夹方便浏览https://www.bilibili.com/list/ml3193286029
9.开发技术分享wx62e9cee37942d的技术博客3、(零基础系列)黑客学习基地菜鸟系列之批处理教程 链接: http://pan.baidu.com/s/1eQ3horg 密码: iqc6 4、(零基础系列)黑客学习基地黑客攻防系列课程 链接: http://pan.baidu.com/s/1zR6d4 密码: gsco 5、Show me Why 软件破解(超强脱壳系列)VIP培训教程 https://blog.51cto.com/u_15740304/5983465
10.Java视频教程大数据视频教程Python视频教程海量免费下载千锋教育IT视频教程主要包括Java视频教程、大数据视频教程、Python视频教程、Web前端视频教程、UI视频教程、Linux视频教程、unity视频教程、软件测试视频教程、网络安全视频教程、嵌入式物联网视频教程、全媒体视频教程等26大主流IT学习视频教程,海量视频教程免费下载.https://video.mobiletrain.org/rjcs/
11.Python测试开发项目实战课程,软件测试视频教程(52G)Python测试开发项目实战课程,软件测试视频教程(52G) 本套课程Python测试开发项目实战课程,打造企业级测试开发专业人才,3个月铸就职场核心竞争力,课程官方售价12000元,本次更新共分为100讲,文件大小共计52.5G。测试开发是面向测试的开发人员,简称测要工作是帮助团队打造测试平台与测试工具,提升工作效率,可以说这是必不https://www.vipc6.com/15424.html
12.软件测试全套课件.pdf软件测试全套课件.pdf 本章要点 ?知识点: ?了解软件测试的背景 ?掌握软件缺陷的定义及缺陷跟踪流程 ?熟悉软件测试的复杂性与经济性分析 ?掌握软件测试的定义 ?熟悉软件测试人员应具备的素质 ?目的 ?掌握缺陷跟踪流程 第一章软件测试的概述 https://m.book118.com/html/2023/1225/7131115126006022.shtm
13.软件测试技术基础教程理论方法与工具(第2版)(微课版)图书49189 软件测试技术基础教程 理论、方法与工具(第2版)(微课版)微课链接.xlsx下载 88 教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。 内容摘要 本书从软件测试工作岗位技能要求分析着手,详细剖析软件测试工作所需的理论知识,帮助读者从基础测试思想、理论入手,进而掌握软件测试工作核心技能,构建系统https://www.ryjiaoyu.com/book/details/9050
14.环境功能软件link腾讯云开发者社区一、什么是测试环境 测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。软件:指测试软件运行时的操作系统、数据库及其他应用软件。 网络:指被测软件运行时的网络系统、网络结构以及其他网络设备构成的环境等。 数据准备:一https://cloud.tencent.com/developer/information/%E7%8E%AF%E5%A2%83%E5%8A%9F%E8%83%BD%E8%BD%AF%E4%BB%B6link-article
15.软件测试培训零基础软件测试培训班简单易学,需求广泛,入门就选软件测试 入门简单 对技术小白友好,难度适合,学习容易。 需求量大 工作性质好,企业需求量大,起步薪资高。 性别平等 无论男女,只要认真学习,都能成为高端测试人才。 无内卷化 岗位执行流程化较高,不存在内卷的现象。 工作稳定 http://www.qfedu.com/sem/software/