上周四在上软件测试课的时候,老师在课的最后布置了一道题。图片大致如下:
大概的意思就是根据上述的关系,用PICT测试工具来编写并生成决策表。由于我是初学者,也是第一次接触测试工具,接下来也就为自己记录一下写这个作业的思维过程。
首先是确定一下各个部分的值(测试用例?我也不知道怎么具体表达),例如,登陆后的状态可以分为:在线、离线、隐身、Q我吧,离开等。而其他的勾选项的值只能会有:是、否两种值,但是由于下方存在约束关系,所以还可能会出现第三种值,就是“不可选”。
待值确定好了之后,接下来我考虑的就是看它有没有约束关系。没有约束关系的最省事了,几个独立分开一写就可以了,但是一旦有约束关系,我觉得还是要仔细分析一下的。
第一个约束关系出现在第三行的“仅在q我吧和我在线上的状态下生效”,这就意味着虽然第二项在任何状态下虽然都可以选,但生效的只有两种情况,这就需要单独限定。
第二个约束关系出现在第二个选项中。首先我们要知道的是,如果不勾选那么下方的两个选项将都不可选,并且也无法设定多长时间。如果勾选了,那么下方的选项也只能二选一。选择了自动锁定后,那么第一个条件就不可选且切换至什么状态也是不可选的状态。
搞清楚了这一些列之后,在我们了解测试工具语法的情况下,我们就可以开始编写测试语句了:
以下是我编写的测试语句,有不好之处,望各位大佬勿喷:
登录后的状态:在线,隐身,忙碌,离开,离线,Q我吧
运行全屏程序切换至忙碌状态:是,否
运行全屏程序切换至忙碌状态是否生效:是,否
鼠标无动作多少分钟后切换状态:是,否
鼠标无动作后切换状态的时间:10分钟,20分钟,30分钟,40分钟,50分钟,60分钟,不可选
无动作后状态切换:是,否,不可选
无动作后状态切换的状态:离开,忙碌,隐身,离线,不可选
自动锁定:是,否,不可选
离开、忙碌、请勿打扰时自动回复:是,否
IF [鼠标无动作多少分钟后切换状态] = "否" THEN ([无动作后状态切换] = "不可选" AND [自动锁定] = "不可选" AND [鼠标无动作后切换状态的时间] = "不可选" AND [无动作后状态切换的状态] = "不可选" );
IF [鼠标无动作多少分钟后切换状态] = "是" THEN ([无动作后状态切换] IN {"是","否"} AND [自动锁定] IN {"是","否"} AND [鼠标无动作后切换状态的时间] in {"10分钟","20分钟","30分钟","40分钟","50分钟","60分钟"});
IF [无动作后状态切换] = "否" THEN [无动作后状态切换的状态] = "不可选";
IF [无动作后状态切换] = "是" THEN [无动作后状态切换的状态] in {"离开","忙碌","隐身","离线"};
IF [无动作后状态切换] = "是" THEN [自动锁定] = "否";
IF [无动作后状态切换] = "否" THEN ([自动锁定] = "是" AND [无动作后状态切换的状态] = "不可选");
IF [登录后的状态] IN {"在线","Q我吧"} THEN [运行全屏程序切换至忙碌状态是否生效] = "是" ELSE [运行全屏程序切换至忙碌状态是否生效] = "否";
这是用txt文件编写的,之后用测试工具生成决策表了之后,我们再把它转成表格的形式呈现出来:
登录后的状态 | 运行全屏程序切换至忙碌状态 | 运行全屏程序切换至忙碌状态是否生效 | 鼠标无动作多少分钟后切换状态 | 鼠标无动作后切换状态的时间 | 无动作后状态切换 | 无动作后状态切换的状态 | 自动锁定 | 离开、忙碌、请勿打扰时自动回复 |
忙碌 | 否 | 否 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 是 |
在线 | 是 | 是 | 是 | 40分钟 | 是 | 离开 | 否 | 否 |
离线 | 是 | 否 | 是 | 20分钟 | 否 | 不可选 | 是 | 否 |
离线 | 否 | 否 | 是 | 40分钟 | 是 | 隐身 | 否 | 是 |
Q我吧 | 是 | 是 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 否 |
隐身 | 否 | 否 | 是 | 60分钟 | 否 | 不可选 | 是 | 是 |
Q我吧 | 否 | 是 | 是 | 10分钟 | 是 | 忙碌 | 否 | 是 |
Q我吧 | 否 | 是 | 是 | 30分钟 | 否 | 不可选 | 是 | 否 |
离开 | 是 | 否 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 是 |
忙碌 | 是 | 否 | 是 | 20分钟 | 是 | 离线 | 否 | 否 |
Q我吧 | 否 | 是 | 是 | 40分钟 | 否 | 不可选 | 是 | 否 |
离开 | 是 | 否 | 是 | 10分钟 | 否 | 不可选 | 是 | 否 |
在线 | 否 | 是 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 是 |
离开 | 否 | 否 | 是 | 40分钟 | 是 | 离线 | 否 | 是 |
在线 | 否 | 是 | 是 | 20分钟 | 否 | 不可选 | 是 | 是 |
忙碌 | 是 | 否 | 是 | 60分钟 | 否 | 不可选 | 是 | 否 |
离开 | 是 | 否 | 是 | 50分钟 | 是 | 隐身 | 否 | 否 |
忙碌 | 是 | 否 | 是 | 10分钟 | 否 | 不可选 | 是 | 否 |
在线 | 是 | 是 | 是 | 30分钟 | 是 | 离开 | 否 | 是 |
离线 | 否 | 否 | 是 | 30分钟 | 否 | 不可选 | 是 | 否 |
离开 | 是 | 否 | 是 | 30分钟 | 是 | 忙碌 | 否 | 否 |
离开 | 否 | 否 | 是 | 60分钟 | 是 | 离开 | 否 | 否 |
隐身 | 否 | 否 | 是 | 50分钟 | 否 | 不可选 | 是 | 是 |
离线 | 是 | 否 | 是 | 10分钟 | 否 | 不可选 | 是 | 是 |
离开 | 否 | 否 | 是 | 20分钟 | 是 | 隐身 | 否 | 否 |
离线 | 否 | 否 | 是 | 60分钟 | 否 | 不可选 | 是 | 否 |
Q我吧 | 否 | 是 | 是 | 60分钟 | 是 | 离线 | 否 | 是 |
在线 | 否 | 是 | 是 | 50分钟 | 是 | 忙碌 | 否 | 否 |
隐身 | 是 | 否 | 是 | 20分钟 | 是 | 忙碌 | 否 | 否 |
隐身 | 否 | 否 | 是 | 10分钟 | 是 | 离开 | 否 | 否 |
离线 | 否 | 否 | 是 | 50分钟 | 是 | 离线 | 否 | 否 |
隐身 | 是 | 否 | 是 | 30分钟 | 是 | 离线 | 否 | 否 |
离线 | 是 | 否 | 是 | 50分钟 | 是 | 离开 | 否 | 是 |
忙碌 | 否 | 否 | 是 | 30分钟 | 否 | 不可选 | 是 | 是 |
隐身 | 否 | 否 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 否 |
忙碌 | 否 | 否 | 是 | 20分钟 | 是 | 离开 | 否 | 否 |
Q我吧 | 是 | 是 | 是 | 20分钟 | 是 | 隐身 | 否 | 否 |
忙碌 | 是 | 否 | 是 | 40分钟 | 是 | 忙碌 | 否 | 否 |
Q我吧 | 是 | 是 | 是 | 50分钟 | 是 | 离开 | 否 | 否 |
在线 | 否 | 是 | 是 | 60分钟 | 是 | 隐身 | 否 | 是 |
离线 | 是 | 否 | 否 | 不可选 | 不可选 | 不可选 | 不可选 | 否 |
忙碌 | 是 | 否 | 是 | 30分钟 | 是 | 隐身 | 否 | 否 |
隐身 | 否 | 否 | 是 | 10分钟 | 是 | 隐身 | 否 | 否 |
忙碌 | 否 | 否 | 是 | 50分钟 | 是 | 离线 | 否 | 否 |
隐身 | 否 | 否 | 是 | 40分钟 | 否 | 不可选 | 是 | 是 |
离线 | 是 | 否 | 是 | 60分钟 | 是 | 忙碌 | 否 | 否 |
在线 | 是 | 是 | 是 | 10分钟 | 否 | 不可选 | 是 | 是 |
在线 | 是 | 是 | 是 | 10分钟 | 是 | 离线 | 否 | 是 |
这就是基本的思维过程了,这个过程一共花了我1h的时间,(我的确思维太慢了,卡在约束那里思来想去写了很久也改了很久,大佬们别嘲笑我啊),我觉得还是挺有意思的,软件测试真的是一门思维逻辑很强的课,上一节课下来我都会觉得身心疲惫,(脑子笨没办法),这是我第一次写文章,若有不好之处或者代码编写的过程有不合理指出,欢迎大佬们前来指正!