软件测试浅悟妄语[3] 软件测试
对软件的“试”
上文说过,“试”是动态的。对软件的动态测试比较复杂,一是要时刻提醒自己要识别一些相对静止的属性,把对它们的观测提出来,二是动态测试要分析的东西也比较多——但并不是没有章法。
软件动态测试之“道”,只有两个字,那就是——宇宙。
古往今来谓之“宇”,它强调一个时序关系。我们在动态测试的时候,特别要注意软件操作的时序,因为每一步的操作都在直接和间接地影响着后面的操作。
上下四方谓之“宙”,它强调一个空间关系。如果我们把软件看作一个系统,那么“宙”就是这个系统的环境。
举个简单例子,我们观察上面的测试流程中的第3步“安装”:
它的“宇”就是前两步和后几步,如果“宇”中的第2步出了问题——下载的时候文件出了问题,那么安装肯定要失败的。
它的“宙”中有一项是硬盘空间,如果硬盘空间不足,那么安装也是要失败的。
所以,我们在做软件的动态测试时,要把测试中的“宇”和“宙”想周全。
那么,怎样才能把“宇”和“宙”想周全呢?
软件测试的生命之图
如果把软件从启动到关闭看作是一次生命的话,那么软件的生命会是一张非常美丽的生命之图——这张图的起点是软件的Start,然后每一步你都有一个或者若干选择,从而让用户可以有多个达到下一步的通路,这些通路有的是可逆的,有的是单行的,有些是可跳过的……总之,我们最后会达到软件生命的另一端——关闭。
虽然这是一个“图”数据结构,但是对每个通路的遍历却是一条线(我是说线性的步骤),其中包含一些可以回溯的步骤。而每条线又是由有限个线段构成的。
每条线段由两个端点和一条连线构成。两个端点,一个是起点(我称它为“起点场景”),一个是终点(我称它为“终点场景”),中间的连线是从起点到终点的“动作”。(目前CSDN没法上传图片,过几天我补上图)
那么有个问题:这条小线段有几种走法?OK,让我们来分析一下——
1. 起点à正确操作à终点。(基线测试)
2. 起点à错误操作à终点。
3. 起点à正确操作à终点à正确操作à起点。
4. 起点à错误操作à终点à正确操作à起点。
5. 起点à正确操作à终点à错误操作à起点。
6. 起点à错误操作à终点à错误操作à起点。
文章来源于领测软件测试网 https://www.ltesting.net/