软件测试中的测不准原理

发表于:2015-11-20 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:~Rambler~    来源:51Testing软件测试网采编

  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不仅可以测试程序的功能,而且能很好地测试程序的性能,很好地实现了对系统进行测试,并对系统影响最小。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号