灰盒测试技术

2024-04-08 06:38
文章标签 技术 测试 灰盒

本文主要是介绍灰盒测试技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很想写灰盒测试技术了。
 
    今天面试之余,我静下心来,仔细想想,做针对业务的测试可不容易了,尤其对外面一个软件公司,认识到软件测试重要性已经很不错了,能够组建测试团队实施测试的也就更好了。这种测试肯定就是黑盒测试了,主要对系统做产品的功能测试为主,如果有条件就做性能测试。这种测试对于需求规格说明书写得不详细,设计也不详细的公司,也只能这样做测试了,但是作为测试经理或测试工程师,你可能觉得很难实施测试,因为好像无从下手,怎么实施测试呢?这种测试不是以规格说明书为依据吗?说明书不详细,或者说没有多大的参考价值,怎么去做依据呢?如何覆盖功能点呢?
    其实我在想,如果把白盒测试和黑盒测试两者结合的灰盒测试,就在这种情况下发挥作用了,而我想灰盒测试追求软件质量,又不能投入大量资源做白盒测试的公司的一种理想选择,且能做到让你的软件做到功能上的需求覆盖和代码级上的覆盖,我想这应该是软件测试今后发展的一个趋向。
   如何来实施灰盒测试呢?其实我们常说的单元测试,基本上算是灰盒测试了,我说的单元测试,首先就是注重代码覆盖,同时注重功能点覆盖的单元测试。灰盒测试的核心思想:针对软件外在的表现设计测试用例,运行被测试程序,在运行时同时统计代码中的覆盖率,根据覆盖情况,反过来再去补充新的测试用例,直到把所有的功能点都覆盖了,这样代码的覆盖率肯定已经接近100%了,如果还没有到100%,那就要分析为什么有些语句或分支没有被执行呢?再去设计测试用例,覆盖这些语句和分支,这样让你的测试做得更充分。但是很多情况下,有些异常处理或例外语句,不好在外部设计测试用例,让这些异常被处理。例如:申请内存的malloc或new语句,有可能失败,但是在我们的计算机中,很难分配失败,这时,就可以借助模拟内存失败的工具xenu等来模拟了。当然,也可以在进入这些语句前,添加一些处理,让程序执行到这里时,发生异常,看程序遇到这种异常如何执行的,是否符合遇到这种异常的正确处理方式。
    现在有很多的工具,可以做这种灰盒测试,例如logisope、Rational的PureCoverage工具等是针对c和C++语言软件的,还有专门针对Java语言的等。读者如果为测试经理,不妨自己去试试,这种测试让你同时做到两种覆盖,同时互为补充,注意统计的语句或分支覆盖率是逻辑统计的,也就是多个测试用例执行到某些相同的语句,有些工具工具可以统计执行的语句次数,这样也能分析看那些语句是影响程序性能的语句,因为他们总是被执行到。
    现在软件测试在发展之中,很多概念和术语都不太统一,每个测试人员对软件测试的认识都可能不同,因为这些主要来自于经验,而很少来自于教材。但是灰盒测试应该被有能力的测试人员关注,这样能够在有限的资源下,取得最好的效益。
 
    文章上的观点纯属一家之言,如果你有不同意见,请欢迎留言讨论。
 

这篇关于灰盒测试技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884837

相关文章

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2