课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件测试是目前大多数程序员都在学习的一个互联网技术,下面我们就通过案例分析来了解一下,测试覆盖率的一些基础知识。
测试覆盖率是什么?
测试覆盖率(testcoverage)是2018年公布的计算机科学技术名词,它是测试质量的度量标准之一,告诉我们测试了多少代码。它定义了系统的某些实体,目的是用测试覆盖它们。这是一种用来指示我们什么时候进行了充分的测试,并告诉我们还需要测试什么(从而扩大了覆盖范围)的方法。
如果把测试比喻为打扫房子,那些不常用的房间总会被遗漏,我们总会忘记诸如次卧卫生间这样的区域,所以打扫的覆盖范围不包括就那个卫生间。
想象一下,如果我们的打扫标准只包括打扫卧室。按照这个标准,如果打扫了所有的卧室,就意味着整个房子都是干净的吗?
并非如此,因为我们完全忽略了厨房、餐厅、卫生间等房子内的其他部分!因此,务必要细致精准地度量测试覆盖率。具有一定程度的覆盖率是测试质量的一项指标,但它从来不是系统质量的指标,也不能保证所有内容都经过测试。测试覆盖率告诉我们测试代码的百分比,但这并不意味着它在每种情况下都被测试过。
测试覆盖率有什么优势?
依然是以打扫房屋为例,测试覆盖率可以:
度量打扫的质量;
指示何时该停止打扫;
提醒我们还有其他地方需要清理。
某些标准可能比其他标准更强大。了解它们可以让我们知道测试的深度以及何时应用某个或其他标准。例如,如果涵盖标准A的任何测试用例集TS也涵盖标准B,则可以说标准A包括另一个标准B。
按照上述原则,清洁房屋就可以遵循以下标准:
打扫每个卧室;
打扫房子的每一部分(包括卧室、厨房、卫生间等);
打扫每一个小地方,甚至是角落,因为它们很可能会积聚灰尘。
显而易见,标准3包括2,而2又包括1,关系是传递的,即3包括1。如果我们为标准3设计一个测试用例,它也应该包括前两个标准。对于测试软件,标准通常包括程序中的各种路径、条件、语句、函数等。
另一个真实的例子可能是等价类划分,先划分若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,这样就覆盖了所有类。如果考虑白盒测试,又有语句覆盖率、分支覆盖率、路径覆盖率等,特别是对于状态机,我们有指示覆盖所有节点、所有转换等的标准。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。