关于白盒测试的一些想法

简介:
 近一年多一直在从事服务端的测试工作,虽然之前也做过两年,但融合了自动化测试功能测试以及单元测试,所以精力有限,接触到的白盒测试比较碎也比较浅。近期项目进入了调整期,有时间整理下对于项目测试中的代码测试一些感触。 顺便对未来的工作方向和计划做好准备工作。
  2014年可能需要继续负责服务端项目测试工作,但到底白盒测试和功能测试以及模块测试,自动化测试之间应该如何进行抉择,如何进行搭配,相互补充,来达到项目高质,高效的目的呢? 站在整个项目的角度,从以下几个维度对白盒测试进行了一些思考:
  1.   什么样的项目可以考虑做白盒测试
  1.1.  大项目,周期比较长(因为需要前期介入review RD代码)
  1.2.  功能测试不放心的项目,接口比较明确,重要函数做的修改
  1.3.  对整个项目了解较清晰,时间要求较低
  1.4.  新项目
  1.5.  逻辑较复杂的模块
  1.6.  通用类的
  1.7.  异步的、多线程的程序
  1.8.  函数用到的外部数据较多的不适合做,构造起来非常复杂,如大量的信令、词典等
  2.  如何结合白盒测试和其它测试方法
  首先,需要根据项目特点,比如项目周期,项目难度等来确定测试方法。
  然后,如果满足做白盒测试的条件,则需要先确定白盒测试处于项目测试中的什么阶段,如果是迭代或优化类的项目,建议进行分层测试,重点对更新的代码进行白盒测试,其它的进行传统的自动化或手工回归测试。如果是周期比较长的全新项目,可以考虑在RD编码阶段介入,了解接口和底层内部函数构造,为白盒测试做准备。        为了避免白盒测试和功能测试的交叉工作量,可以底层库用白盒测试,上层功能测试用功能测试,在功能测试上就不再关注底层的测试,可借助分层测试思想。
  3.  如何降低白盒测试成本
  不管从技术还是从周期上,白盒测试成本比较大,所以站在高效和简易的基础上,尽量借助工具来尽量减少白盒测试范围,比如可以借助:
  3.1.   手工测试+代码覆盖率测试来覆盖一部分代码
  3.2.   C代码可以用gdb(其它语言也有)来构造一些比较难引入的上层变量,再结合代码覆盖率来做
  3.3.   单测工具,比如cppunit,gtest等来做接口测试
  3.4.   其它
  我们之前的做法是将模块测试做成自动化CASE,然后新版本来后,进行自动化测试回归,并结合代码覆盖率来出一份覆盖报告(从分支和代码行两个维度),然后再对新升级的代码进行review,并拓展用例来覆盖,如果功能测试实在无法模拟,会采取gtest,最后仍不好模拟会采用gdb挂载的方式
  4、 白盒测试收益和风险是什么
  4.1. 功能测试无法深入到底层的测试上,白盒测试可以
  4.2. 投入成本较大,收益较小
  4.3. 通过白盒测试只能发现函数级的错误,较难发现函数接口之间的错误
  4.4.  时间会增加,覆盖率会增加
  4.5.  可促进rd的单元测试做的更充分
  4.6.  短期收益不明显,长远会有收益
  5、白盒测试方法
  5.1. 最基层的函数做详细的测试(倾向于功能),策略较复杂的做详细测试(倾向于逻辑),通过自己写5.2. 程序去调用被测函数,外层的通过GDB的方式去测试
  5.3. 自己写驱动去调用被测程序或构造上下层来验证被测程序
  5.5. 通过程序包装被测程序,通过多线程的方式去实现多个动作之间的交互
  5.6. cppunit去做,但调用关系较复杂的测试很难去实现,支持case的管理、验证
  5.7. 可借助gtest去实现,扩展为和c++test类似的功能
版权声明:本文出自 800716 的51Testing软件测试博客:http://www.51testing.com/?359684
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
Java 测试技术 程序员
|
监控 Java 测试技术
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第4天】 在软件开发的复杂多变环境中,保证代码质量和性能是至关重要的。白盒测试作为一种深入到代码级别的测试方法,提供了对软件内部结构和逻辑的全面审视。本文将探讨如何通过有效的白盒测试技术来优化软件开发流程,提高发现缺陷的能力,并确保最终产品的稳定性和可靠性。文章将介绍白盒测试的基本概念、常用技术和工具,并通过案例分析,阐述如何将这些策略应用于实际开发中,以期达到更高的软件质量保障水平。
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
319 2
|
供应链 测试技术
深入白盒测试:提升软件质量的关键策略
【4月更文挑战第7天】 在软件开发的复杂世界中,确保代码质量和性能的可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的正确性。本文将探讨白盒测试的核心概念、优势以及如何有效利用它来提高软件产品的质量。我们将深入分析不同的测试技术,如静态分析和动态测试,并讨论如何将这些方法应用于实际测试场景中,以便发现和修复潜在缺陷。通过案例研究和最佳实践的分享,本文旨在为读者提供一套全面的白盒测试策略,以支持他们在不断变化的技术环境中保持竞争力。
|
算法 安全 测试技术
深入探索白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第11天】 在软件开发的生命周期中,确保代码质量和功能的正确性是至关重要的。白盒测试,作为一项关键的验证手段,允许测试者通过检查内部结构、设计和编码逻辑来识别软件中的缺陷和漏洞。本文将探讨白盒测试的核心概念、方法及其在提升软件测试效率和质量上的重要性。我们将分析静态分析和动态测试的策略,并讨论如何通过白盒测试优化软件开发过程。
|
安全 算法 测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第7天】 在软件开发生命周期中,确保代码的质量和性能至关重要。白盒测试作为一种重要的测试方法,允许测试者通过检查程序内部结构和逻辑来识别缺陷和问题。本文旨在探讨白盒测试的核心原则、技术及其对提升软件产品可靠性的影响。我们将重点分析如何利用白盒测试进行有效的单元测试、集成测试以及系统测试,并讨论现代软件测试工具如何帮助实现自动化测试流程,从而优化开发周期并降低错误率。
|
测试技术
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第9天】在软件开发的复杂多变环境中,保证产品的质量和可靠性是至关重要的。白盒测试作为一种深入代码层面的测试方法,它通过分析程序内部逻辑和结构来识别缺陷,从而确保软件按照预定的要求运行。本文将探讨白盒测试的核心概念、技术手段及其在现代软件开发中的应用,旨在为读者提供一套系统的白盒测试实施策略,以提升测试效率和软件产品的整体质量。
|
安全 测试技术 持续交付
深入白盒测试:提升软件质量的关键策略
【4月更文挑战第5天】 随着软件行业的迅猛发展,保证代码质量和性能变得尤为重要。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证程序的逻辑和执行路径。本文将探讨白盒测试的核心概念、技术及其在提高软件产品质量中的作用,同时分享一些实用的白盒测试策略和最佳实践,帮助读者更有效地利用这一技术保障软件的健壮性。
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
864 2
|
安全 测试技术 持续交付
深入探索白盒测试:提升软件质量的关键步骤
【4月更文挑战第9天】在软件开发的生命周期中,确保代码的质量和性能至关重要。白盒测试,作为软件测试的一个核心分支,提供了一种通过检查内部结构、设计和逻辑来验证程序正确性的方法。本文将深入探讨白盒测试的原理、方法和最佳实践,旨在帮助开发者和测试工程师提高测试效率,从而确保软件产品的可靠性与稳定性。通过对不同白盒测试技术的比较分析,我们将揭示如何更有效地利用这些技术来发现和修复潜在的缺陷。

热门文章

最新文章