1.测不准原理

1927年,德国物理学家海森堡,首先提出了量子力学中的不确定性。即在一个量子力学系统中,一个粒子的位置和它的动量不可被同时确定。这就是著名的测不准原理。

基于海森堡的测不准原理,推广之,对任何系统,加入了观测后,必然会对系统产生或多或少的影响。或者说,如果你要观测一个系统,严格意义上说,它就不是原来的系统了。

如何既要对系统进行观测,又要对系统影响最小?

2.软件测试方法

软件的测试方法有黑盒测试和白盒测试。

黑盒测试,这种测试不需要了解软件的内部构造,是从用户的角度对程序进行的测试,只知道程序的输入、输出和系统的功能就可以。包括功能测试、系统测试、极限测试和性能测试。

白盒测试,也称结构测试、逻辑驱动测试或基于程序本身的测试。测试者需要了解待测试程序的内部结构、算法等信息,这是从程序设计者的角度对程序进行的测试。

传统的白盒测试方法:

  • 单步测试方法

也就是用集成开发环境(IDE,如VC,Eclipse等)进行单步调试,可以在语句级、函数级、对象级进行单步调试。使用JUnit也属于单步调试的范畴,只是粒度在函数级,属于单元测试,本质并没有太大的变化。 这种方法中,代码并不是“真实”地运行,代码总是要走走停停,运行一段程序或一条代码,之后停止下来观察运行结果。这个测试方法对系统影响很大,不适合系统性能的测试,适合功能级的测试

  • 日志测试方法

也就是在关键代码中大量嵌入printf语句,输出日志或直接显示,之后分析日志。在linux中总是用种方法。这种测试,代码是在真实地运行,不仅能调试功能,也能测试软件的性能,但是在代码中要大量嵌入printf语句,影响了软件的性能,但这种测试,与单步调试相比,对系统性能影响较小。

在日志测试方法中,代码不用停止,代码在运行到有printf语句的地方会打印日志,事后我们要分析日志,以了解代码的运行状况,如从日志中可以知道发生了什么错误、程序运行状况等。这种方法,有点类似飞机的黑盒子,是事后的分析与处理。这是一种被动的对系统的观测方式

  • 断言测试方法

还有一种叫断言测试方法,也叫基于DBC的测试,程序员对函数或变量进行预测,并插入断言语句来判断是否符合你的预测,但要加入大量的断言语句,断言的输出可以显示或记入日志中。这是一种主动的对系统的观测方法。可以测试软件系统的性能。

3.QS测试方法

QP(Quantum Platform量子平台)【1】中的QS(Quantum Spy)是断言方法和日志方法两者的结合。

QS测试方法是,在目标板中进行事件记录,记录内容放到RAM中缓冲,之后,在目标板程序运行的空闲时间,通过串口或UDP协议,把RAM缓存的内容传送到上位机(PC机) ,上位机事后对事件进行分析,检查程序的运行正确与否。QS把记录事件与传送事件分离,并且,传送的数据是压缩格式的。

QS的软件测试方法不用单步调试方法,也不用printf语句,但严格地说它是属于断言测试和日志测试两者的结合,需要在关键部分嵌入测试代码宏,但是QS实现的测试结构性更好,不像printf语句那么零碎和任意放置。

QS是基于QP框架的,在关键代码中加入测试代码模块,对事件的监测是动态可变的,可以通过两层事件过滤机制对需要监测的事件进行动态变更,屏蔽不需要观测的事件。

新版的QS加入了事件注入机制,可以主动发起特定的事件,观测系统对这个事件的反应结果。这是一种主动的测试方式,对系统影响也比较小。

QS不仅可以测试程序的功能,而且能很好地测试程序的性能,很好地实现了对系统进行测试,并对系统影响最小。

参考:
【1】QP:http://www.state-machine.com

转载于:https://www.cnblogs.com/hyper99/p/ruan-jian-ce-shi-zhong-de-ce-bu-zhun-yuan-li.html

软件测试中的测不准原理相关推荐

  1. 软件测试中排错的基本方法

    软件测试中,排错(即调试)与成功的测试形影相随.测试成功的标志是发现了错误.根据错误迹象确定错误的原因和准确位置,并加以改正的主要依靠排错技术. 1.排错过程 如下图所示,排错过程开始于一个测试用例的 ...

  2. 阿里研究员:软件测试中的18个难题

    简介:对于软件测试来说,怎么样才算测够了?如何评价测试的有效性?那么多测试用例,以后怎么删?在软件测试中会遇到非常多的问题,阿里研究员郑子颖分享了18个他总结出的难题以及相关看法,希望对同学们有所启发 ...

  3. 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别

    转:软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别 举个例子吧     if   A   and   B   then   Action1     if   C   or   D   then ...

  4. 无法定位程序输入点 except_软件测试中的功能测试点(三)

    testkuaibao|软件测试自学公众号 26.输入法半角全角检查 再输入信息中,输入一个或连串空格,查看系统如何处理,如对于要求输入符点型数据的项中,输入全角的小数点("."或 ...

  5. 软件测试除了边界值还有什么,在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值...

    北方猎人(cnitpm.com) 10:58:42 在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值. A.X=9,X=10,X=100,X=1 ...

  6. 心理软件测试自学,软件测试中的心理学

    能做一名软件测试人员不容易,要做一个名合格的软件测试人员更是不容易,因为软件测试人员要运用的知识很广,当然心理学也不例外. 测试执行得差,其中一个主要的原因在于大多数的程序员一开始就把这个术语的定义搞 ...

  7. 什么是软件测试中的黑天鹅

    1,黑天鹅以及软件测试中的黑天鹅 在发现澳大利亚的黑天鹅之前,欧洲人认为天鹅都是白色的.所以说"黑天鹅"代表了一个小概率事件,它罕有发生,但一旦出现,就具有很大的影响力." ...

  8. 软件测试mysql存储过程的用处实例_软件测试中实际应用:MySQL5存储过程编写

    软件测试中实际应用:MySQL5存储过程编写 MySql5.0以后均支持存储过程,最近有空,研究了一把这个. 格式: CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 . ...

  9. 软件测试的功能测试和性能测试,软件测试中的功能测试和性能测试

    软件测试中的功能测试和性能测试 发表于:2011-06-13来源:未知作者:娃娃点击数: 软件测试中的功能测试和性能测试一 首先先说功能测试. 1.功能测试的定义:是黑盒测试的一部分.它检查实际软件功 ...

  10. 软件测试中遇到的印象深刻的问题及反思

    软件测试中遇到的比较印象深刻的问题: 项目名称是某幼儿园报名网站,首先我介绍一下这个项目,这个项目是用来给某地区的家长抢报幼儿园名额而服务的,毕竟有的幼儿园人气比较火爆,因此会出现人多名额少的情况,从 ...

最新文章

  1. BeanShell中的Java指令和表达式
  2. Jquery操作Cookie,保存商品ID值至本地文件中
  3. [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
  4. Node.js 切近实战(八) 之Excel在线(文件权限)
  5. Vim高级使用 - CentOS下使用VIM打造C/C++开发环境
  6. ExtJS4.2 menu鼠标移开隐藏
  7. 【原创】使用yahoo雅虎js库(YUI)建立无刷新的N级树(可添加删除节点)
  8. java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现
  9. MySQL 8.0 在关系数据库方面有这些新特性
  10. 计算机网络训练参考文献,计算机网络实用技术教学方法的研究
  11. 微课|中学生可以这样学Python(2.3.4节):例2-2
  12. 使用ceph-deploy搭建三节点ceph集群
  13. angular2 学习二 directives - 使用组件
  14. curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?...
  15. Word中插入图片只显示一部分
  16. Linux内核访问用户空间文件 filp_open/vfs_read/vfs_write/set_fs/get_fs
  17. hive和presto处理月末月初
  18. 名帖109 鲜于枢 小楷《老子道德经卷》
  19. 基于cnn的人脸识别_鬼都藏不住,人脸识别新突破!就算遮住半张脸也能100%被识别...
  20. VS+OpenCV+VC超详细的配置教程

热门文章

  1. C#——NPOI对Excel的操作、导入导出时异常处理(三)
  2. dyn_threshold 算子
  3. 如何用阿里云服务器建立个人网站
  4. java 取名字_Java命名规范(新手宝典)
  5. centos7 安装wekan 看板
  6. python3.8安装cartopy使用报错:DLL load failed while importing trace
  7. excel取消按颜色排序_在Excel中按颜色排序
  8. 虚幻3和虚幻4_虚幻的非会议
  9. 解决异常:Premature end of chunk coded message body: closing chunk expected
  10. 国际电话登机英文术语