杭州软件测试培训
达内杭州软件测试培训中心

18357109557

热门课程

软件测试中的测不准原理

  • 时间:2015-11-24
  • 发布:~Rambler~
  • 来源:51测试网


    1.测不准原理

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

    达内软件测试专家提出,对任何系统,加入了观测后,必然会对系统产生或多或少的影响。或者说,如果你要观测一个系统,严格意义上说,它就不是原来的系统了。

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

    2.软件测试方法

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

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

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

    传统的白盒测试方法:

    单步测试方法

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

    日志测试方法

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

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

    断言测试方法

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

    3.QS测试方法

    QS(Quantum Spy)是断言方法和日志方法两者的结合。

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

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

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

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

    QS不仅可以测试程序的功能,而且能很好地测试程序的性能,很好地实现了对系统进行测试,并对系统影响最小。
上一篇:白盒测试抓取网络请求的方法
下一篇:Web自动化测试之DOM

WEB安全探测框架——Recon-ng

达内:测试用例中的电子邮箱文本框

达内介绍iOS功能性UI测试框架EarlGrey

达内:python的web应用开发与测试

选择城市和中心
贵州省

广西省

海南省