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

简介:

本节书摘来自华章计算机《腾讯iOS测试实践》一书中的第1章,第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%以上。但是由于单元测试的工作量比较大,刚开始不可能对全部代码进行单元测试,所以可以考虑先用黑盒测试,借助代码覆盖率工具,找出黑盒测试没有覆盖到的代码或模块(有可能某些代码属于冗余或者死代码),然后对这部分代码进行单元测试,这样可以最大限度地提高覆盖率,更好地保证代码质量。

相关文章
|
22天前
|
安全 Linux 测试技术
提升龙蜥内核测试能力!探究持续性模糊测试优化实践
清华大学软件学院对Anolis OS使用靶向模糊测试方法将测试工作引向修改的代码,进而提高对业务代码的测试能力。
|
28天前
|
搜索推荐 Android开发 iOS开发
安卓与iOS系统的用户界面设计对比分析
本文通过对安卓和iOS两大操作系统的用户界面设计进行对比分析,探讨它们在设计理念、交互方式、视觉风格等方面的差异及各自特点,旨在帮助读者更好地理解和评估不同系统的用户体验。
19 1
|
1月前
|
SQL 搜索推荐 测试技术
【Havenask实践篇】完整的性能测试
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。性能测试的目的在于评估搜索引擎在各种负载和条件下的响应速度、稳定性。通过模拟不同的用户行为和查询模式,我们可以揭示潜在的瓶颈、优化索引策略、调整系统配置,并确保Havenask在用户数量激增或数据量剧增时仍能保持稳定运行。本文举例对Havenask进行召回性能测试的一个简单场景,在搭建好Havenask服务并写入数据后,使用wrk对Havenask进行压测,查看QPS和查询耗时等性能指标。
65381 6
|
2月前
|
安全 测试技术
测试团队的一次复盘实践
测试团队的一次复盘实践
142 0
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率与准确性的策略分析
【2月更文挑战第28天】 在快速迭代的软件发展周期中,高效的测试流程是确保产品质量和用户满意度的关键。本文旨在探讨提高软件测试效率和准确性的策略,包括自动化测试工具的选择、测试用例的优化设计以及持续集成的实践。通过分析当前软件测试领域面临的挑战,提出了相应的解决方案,并通过案例分析来展示这些策略的实际应用效果。文章的目的是为软件测试工程师提供实用的指导和参考,帮助他们在保证测试质量的同时,缩短测试周期,降低成本。
40 1
|
5天前
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
24 0
|
7天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
13 1
|
7天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
11天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
16天前
|
安全 测试技术
深入理解白盒测试:方法、工具与实践
【4月更文挑战第7天】 在软件开发的质量控制过程中,白盒测试是确保代码逻辑正确性的关键步骤。不同于黑盒测试关注于功能和系统的外部行为,白盒测试深入到程序内部,检验程序结构和内部逻辑的正确性。本文将探讨白盒测试的核心技术,包括控制流测试、数据流测试以及静态分析等方法,同时介绍当前流行的白盒测试工具,并讨论如何在实际项目中有效实施白盒测试。文章的目标是为软件测试工程师提供一份综合性指南,帮助他们更好地理解和应用白盒测试技术。