zoukankan      html  css  js  c++  java
  • 软件测试中的测不准原理

    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

  • 相关阅读:
    Hybrid 实验
    Access+Trunk 配置
    JS 超类和子类
    javascript高级程序设计第3版——第一章概括
    js 获取getElementsTagName()方法返回值的内容
    js 数组的pop(),push(),shift(),unshift()方法小结
    js parseInt()与Number()区别
    HTML中引用外部JS文件失效原因
    TP5报错 User qdm813229266 already has more than 'max_user_connections' active connections 解决办法
    微信内打开链接,跳转到公众号关注页面
  • 原文地址:https://www.cnblogs.com/hyper99/p/ruan-jian-ce-shi-zhong-de-ce-bu-zhun-yuan-li.html
Copyright © 2011-2022 走看看