《软件工程综合实践专题》
———程序简单测试与升级
博客说明:《软工实践专题》课程第一次作业,同学处得到代码,主题是python的微信自动回复;
1. 程序代码:
2. 代码解读:
Python是一门很强大的语言主要是因为它包含了很多使用的库,这里的程序就是调用了itchat这样一个操作微信的库。我们先看第一行“#coding=utf-8”,因为PY文件中不支持汉字,就算是在注释当中也不行,因此必须把文件编码类型转换成utf-8的格式。下面是对库文件的引入。第三行比较关键,这是一个已经封装好的修饰器,我们可以直接调用。当收到文本类型消息的时候将返回“已经收到你的信息”这一条信息。下面的是一些控制登陆的语句也很好理解。
3. 需求增加:
(1) 经过我的分析,我首先发现这段程序并没有判断消息是不是由自己发出去的,所以我觉得要加上这一部分的功能;
(2) 现在的程序只能自动回复文本信息,如果对方发来的是一些图片,语音或者是表情包,将无法正常回复;
(3) 现在的程序回复的太过僵硬,只能回复固定的话语,不能像Siri一样智能地回答问题;
(4) 当改动程序,第二次登陆时,还需要第二次扫码,应该改成默认自动登陆。
4. 新增需求的测试用例:【可能写的不好,因为软件测试这学期才开始学习】
(1) 测试用例说明:
假设测试用户使用的是IOS系统下的微信7.0.3版本。功能描
如下:
- 当用户自己向他人发出信息时,不会自己回答自己;
- 当用户收到对方语音,图片,好友名片分享,文本信息时能自动回复;
- 当用户收到对方消息时,可以智能地根据收到的信息就行交流;
- 第二次自动登陆。
(2) 表1-1新增需求测试用例
用例ID:PyWechatAutoR | 2019-03-03 | 用例名称:新增需求测试 | 系统登陆:Wechat7.0.3 | ||||
用例描述 | 用户向他人发出信息,系统不会回复; 系统检测信息类型,做出相应回答; 接入网络图灵机器人接口,对信息做出只能回答; | ||||||
用例入口 | 假设通过Wechat 7.0.3,扫描跳转二维码,进行登陆。 | ||||||
| |||||||
用例ID | 场景 | 测试步骤 | 预期结果 | 备注 | |||
PyWechat1 | 微信登陆 | 运行程序,屏幕会自动跳出生成的二维码,用户用对应版本的Wechat扫码登陆网页版微信 | 二维码成功出现 登陆成功 |
| |||
PyWechat2 | 向好友发送信息 | 用户向随机好友发送 | 程序不对自己进行回复 | 测试期间,先发送文本信息进行测试 | |||
PyWechat3 | 收到好友其他类型的信息 | 令一微信好友,向测试用户逐条发送指定类型的信息,等待回复
| 识别不同类型信息成功 对不同累心信息回复成功 |
| |||
PyWechat4 | 收到好友信息时----进行智能回复 | 令一微信好友,向测试用户逐条发送指定类型的信息,等待回复
| 测试用户根据收到的信息,智能回复成功 |
| |||
PyWechat5 | 终止程序---第二次运行程序 | 终止第一次运行的程序,第二次运行,等待结果 | 无需扫码,登陆成功 |
| |||
… | … |
| … | … |
5.增量开发
(1) 需求确认:
♠ 不对自己的信息进行回复;
♠对收到的各类型的信息都可以识别回复;
♠根据收到的信息进行智能回答;
♠第二次无需扫码,自动登陆。
(2) 设计:
a 在进行回复时加上判断语句,判断发出信息的用户是不是自己,这时也要加一条语句获得用户名字;
b 在修饰器后加另外的判断条件,对形如PICTURE,RECORDING,SHARING,AUDIO,TEXT的信息进行判定;
c 接入图灵机器人接口,将收到的信息上传给图灵机器人,再将机器人回复内容爬取下来,发送给好友;
d 更改登陆判断条件。
(3) 开发:
为了解决需求a, b, d, 现将程序更改如下:
为了解决c,现将程序更改如下:
(4) 回归测试:
a 扫码过后自动登陆,测试成功
b 自己发出信息时不会进行回复,测试成功【无法给出具体截图】
c 当收到不同类型消息,做出回复,测试成功:
d 根据收到的休息,进行智能回复:
6.收获和不足
这是第一次接触这方面的作业,也是第一次在一个公共的空间分享这些不知道对错的知识,感觉既紧张又兴奋。虽然第一次作业做的时间比较长,困难比较大,但通过这一不断摸索的过程,自己学会了许多知识。
我们这学期刚开设 软件测试这门课程,老师刚提到测试用例的写法,正好在这次作业里可以“比葫芦画瓢“先操练一次,尽管不知道写的准确不准确,但是也了解到了测试用例的必备要素和一些规范的写法。另外,我这次挑选的程序是Python的,这个语言也是暑假自学的,只学了一些基本的语法,对一些库和函数的应用还不是很熟练,通过这次对程序的分析和改造,对这个itchat库有了更深的了解。
说实话,刚开始听到这样的作业的时候很崩溃,觉得很麻烦,但是这次作业下来,真的学会了不少东西。更主要的是,这样自己摸索着学习掌握的更牢固一些。
当然,这次也有一些不足。是程序方面的,最后在解决智能回复的问题时,由于调用的是网上的现成接口(或许是我还没发现),程序不能对语音信息进行自动回复,很遗憾,希望在学习更多知识之后,可以解决这个问题。