《腾讯iOS测试实践》一一1.4 测试分析

1.4 测试分析

1.4.1 黑盒测试分析
“黑盒测试是软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者无须了解程序的内部情况,无须掌握应用程序的代码、内部结构和编程语言的知识,只要知道程序的输入、输出和系统的功能即可。这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。”这段关于黑盒测试的定义参考自维基百科。
黑盒测试也是应用最广的方法之一,不少公司都是以黑盒测试为主。那么黑盒测试有什么不足呢?我们先看看《微软的软件测试之道》对黑盒测试的分析,如图1-9所示。
图1-9中的A代表黑盒测试的没覆盖部分,B代表黑盒测试的冗余部分,C代表黑盒测试的有效部分。
从业界的统计数据来看,有效测试部分的百分比范围为35%~65%。从图1-9来看,要提升有效测试部分比例,就要把右边的圆(B+C)往左移动,尽可能使两个圆重合面积(C)增大。可以看出优化测试策略有两个方向:一是增加有效测试,二是减少冗余测试或者无效测试。
1.增加有效测试
增加有效测试的方法有两种:一是加强相关评审,二是应用业界的测试方法或者测试建模思想。
加强相关评审是从源头的需求抓起,加强对需求的评审,多从用户角度思考相关可用性及可能场景等。测试用例设计的评审,以及加强对产品开发等角色用例的评审。
应用业界的测试方法或者测试建模思想(详细方法参考第3章的内容),需要在测试用例设计的时候尽可能地覆盖更多功能,这就需要大家充分利用业界各种先进的测试模型来设计测试用例,这样可以更科学、更高效地扩大有效测试范围。如果有条件的话,可以通过阅读开发代码来梳理相关逻辑,这样用例设计的覆盖面会更全。
2.减少冗余测试
减少冗余测试可以通过减少无效用例或者低成效的用例、优化精简测试用例等方式进行。
减少无效用例或者低成效的用例,详细方法可以参考1.6节的数据反推。根据用例模块化划分,对Bug根据模块(TAPD上相应的模块选项)进行分类,统计每个模块出现Bug的个数,如果多次执行后Bug个数少的模块,优先级就降低。如果客户端架构稳定后,对于后续新功能没有涉及的这些模块,则可以考虑不执行相关用例。后续在每次集成测试后,测试结果都必须保存,统计经常出现Bug的相关用例,优化和增加相关测试用例,并且同步到各个平台。
优化精简测试用例,可以借助代码覆盖率作为标准,执行原来的用例和精简优化后的用例,如果两者的代码覆盖率差不多,那就达到目的了。通过代码覆盖率测试,还可以找出没有执行过的冗余代码,这样可以减少安装包的大小。借助精准测试方法,通过精准测试系统,分析测试用例以及代码映射关系,可以进一步确定测试用例的覆盖情况。这样就可以选择适当的测试用例保证合理的覆盖度。详细的原理方法可以参见第10章。
1.4.2 白盒测试分析
上文提到的优化测试策略都是从黑盒的角度进行分析的,因为黑盒测试有局限性,测试有效代码覆盖率只有35%~65%,那么如何保证黑盒测试没有测试到的部分代码的稳定性和可靠性,就需要进行白盒测试。业界通常采用的是单元测试。通过合适的单元测试,可以让代码覆盖率达到75%以上。但是由于单元测试的工作量比较大,刚开始不可能对全部代码进行单元测试,所以可以考虑先用黑盒测试,借助代码覆盖率工具,找出黑盒测试没有覆盖到的代码或模块(有可能某些代码属于冗余或者死代码),然后对这部分代码进行单元测试,这样可以最大限度地提高覆盖率,更好地保证代码质量。

时间: 2024-09-22 19:54:04

《腾讯iOS测试实践》一一1.4 测试分析的相关文章

《腾讯iOS测试实践》一一导读

Foreword 前 言 为何编写本书 随着移动互联网的兴起,移动终端的测试也进入火热的时代.两大主流操作系统Android和iOS占据了移动端的主要市场份额,其中iOS系统只能在苹果系列的移动终端使用,也就是说,在苹果系列的移动终端产品上,操作系统都是清一色的iOS系统,这就形成了硬件和系统同属于一家公司的独特现象.每年苹果公司发布新机型或者新操作系统时,都会引起全球果粉的疯狂.如此火热的平台,如何保证其App的质量就显得尤为重要. 长久以来,市面上单独讲解iOS平台测试相关知识的书籍比较少见

《腾讯iOS测试实践》一一1.2 工程效率

1.2 工程效率 总体来说,工程效率就是研发效率(包含测试效率).这里我们会把测试效率单独提出来进行说明,因为这是与测试工程师相关度最大的工作.研发效率,其实就是让产品上线的时间更快(在品质有保障的前提下),大多数时候是说与研发流程相关的(不局限于敏捷流程,Feature Team研发模型),例如包含但不局限于以下活动.需求评审:需求评审机制以及更新通知,避免需求有改动而没有及时同步到相关角色.代码质量:静态代码扫描,千行代码缺陷率等.架构评审:代码架构的讨论以及评审.Bug流程:Bug生命周期

《腾讯iOS测试实践》一一第3章 iOS兼容性测试 3.1 引言

第3章 iOS兼容性测试 3.1 引言 苹果公司每年都有两个引人注意的大动作:一是发布新系统,二是发布新机型.无论是发布新系统还是发布新机型,都会让iPhone平台上的研发团队忙于兼容适配的工作.作为iPhone平台上的测试人员,对苹果公司每年放的大招都要有招架之术.很多不了解情况的人会认为苹果公司的机型比较少.系统发布也不频繁,应该不会有太多涉及适配的问题,而实际情况并非如此.每发布一个系统和机型,都会伴随大量的技术实现或者硬件变革,用户在感受机型与系统更新带来全新体验的同时,背后需要开发人员

《腾讯iOS测试实践》一一1.5 测试设计

1.5 测试设计 测试设计是一个系统性工程,涉及内容比较多,从前期需求分析到用例设计,再到各类数据的分析等.下面我们择取主流的理论来看一下. 1.5.1 探索式测试探索式测试是目前业界比较流行的一种测试风格,是由测试专家Cem Kaner博士于1983年提出的,后来经过James Bach.James Whittaker等人的发展流行起来.国内大多数人是因为James Whittaker撰写了<Exploratory Software Testing>(探索式软件测试)一书才了解探索式测试,并

《腾讯iOS测试实践》一一3.4 测试原则

3.4 测试原则 一般来说,进入测试窗口期的系统不会超过四个大系统,即最新的四个系统,例如当前是iOS 10系统最新,那么就覆盖iOS 10.iOS 9.iOS 8.iOS 7.当然,这跟被测App可安装的系统有关,当前QQ浏览器(iPhone)还支持iOS 7,未来当发现iOS 7的用户量比较少时就会考虑放弃支持这个系统,那么对应的iPhone 4就会退出测试的覆盖范围.截至本稿撰写时,处于iOS 10不断发小版本的阶段,每个系统下的机型分布如表3-5所示. 由于实际测试人力受限,不能每个机型

《腾讯iOS测试实践》一一1.3 品质管理

1.3 品质管理 品质管理分为两大类,即研发品质和线上品质.研发品质:包括品质体系(性能指标+用户评测).测试过程数据(Bug.通过率).线上品质:包括线上数据.用户反馈.漏测率.品质体系,除产品本身的特性功能外,还包含流畅度.内存.耗电量.启动速度.弱网络等功能,是用户体验能感知或者影响用户口碑的.同时需要思考各个指标的比重(主要考虑对用户的影响程度),这样可以更好地优化核心指标.线上品质,研发品质的指标都可以通过预设在被测App里的埋点上报上来,这样就有了线上数据.用户反馈主要是通过各反馈渠

《腾讯iOS测试实践》一一3.5 小结

3.5 小结 本章主要就iOS平台上的兼容性问题进行了介绍.苹果公司每次发布新系统,相比Android平台来说,iOS的渗透率是比较高的,短时间内就会大量升级到最新版本.而机型的更新速度比较慢,iPhone手机一般从iPhone 4到iPhone 7的用户量分布比较均衡.因此兼容性测试覆盖最重要的用户群体就是最新系统,其次就是低端机型用户.就最近几年的情况看,每次测试都至少是四个机型(四个不同的系统)同时进行,如果条件允许,最新的系统最好能覆盖两个子系统,即五个手机同时测试最佳.至于哪些测试需要

《腾讯iOS测试实践》一一1.8 小结

1.8 小结 通过本章的内容,先和读者建立了一个测试基础共识,便于接下来的章节理解.总体来说,我们认为测试=工程效率+品质管理,如何提升工程效率和品质管理是测试提升的核心内容.在测试的不同阶段,测试分析.测试设计.数据反推都能发挥一定的作用,未来的空间很大,需要我们一起去探索.

《 嵌入式系统设计与实践》一一3.6 测试硬件(和软件)

3.6 测试硬件(和软件) 虽然我强烈建议准备好工具箱.数字万用表和示波器,但是,如果大家没有准备好独自拥有这些,那么将这些留给硬件工程师也在情理之中.作为一个软件工程师,更重要的是将用于测试硬件的软件尽可能构建得有利于方便调试. 嵌入式系统有3种常见的测试.第一种,在每次系统引导的时候都运行加电自检(POST),即使代码被释放.这个测试验证所有的硬件组件都已经就绪,可以安全地运行系统.加电自检(POST)测试得越多,开机时间就越长,因此需要权衡可能对客户造成的影响.自检完成后,客户就可以使用系