A系统的测试工作从10月11日开始到11月28日正式结束了。此次测试工作包含了A系统自身的web端测试和其他系统联调测试。这次项目与往期系统有很多大不同,具体以下几点:
1. 没有产品经理,没有完善的需求相关文档。
2. 它是完全由java开发的,团队内.Net开发人员本身java实际经验不足。
3. 项目中使用了从未接触过的Hive数据库和非关系型数据库HBase。
因此本次测试过程中并非一路顺风顺水,而且遇到了不少的问题。本人以书面形式整理记录下来,为将来工作时遇到相似问题作为参考。
1. 接口测试很重要
即使项目管理人员不给予足够时间,仍然要在整个测试工作开展之前进行简单的接口测试。可以提前暴露出很多问题。不光是系统的缺陷,同时也会暴露出测试脚本的设计问题或者对业务的错误理解。
2. 接口需要了解所有传参的枚举值
A系统最初接口设计的是通用接口,所以接口文档很简单。实际每个业务系统接入都有自己的参数,这些参数的枚举值没有在文档中体现。例如本次测试过程中,某个业务系统会传一个approveRes参数,一开始我设计的jmeter脚本传的是”成功”,但是请求的行为记录没有计算,后来通过沟通才知道,A系统和业务系统约定了”3”代表”成功”。
3. 随时更新测试用例
本次项目测试比较特殊,没有产品经理,所以页面元素和交互部分也是开发掌控的。所以很多东西逻辑上没错,但用着很不舒服。例如:开发实际提测版本中动作配置页面显示的列表是以参数为元祖列表,而不是动作为元祖的列表,这和原先写测试用例时不一样。但是这块用例没有重新设计,导致删除这个功能出现了极差的用户体验。(现在点击删除给人感觉是删除了单条参数,但实际是删除了参数所在的整个动作。)
4. 从源头解决数据问题
本次项目中有很多overwrite insert的表。同时其数据来源又是其他的overwriteinsert的表。所以当出现有异常数据时,需要早找最源头的那些表,进行条件过滤。条件过滤需要与业务系统确认。哪些属于测试环境异常数据,可以忽略。哪些属于线上也存在的异常数据,是否兼容这些线上异常数据。
同时本次测试过程中也学会了很多新的知识和小技巧。这些知识和小技巧可以提升测试效率。以下是本次测试中的学习总结:
1. Hive数据库&HBase数据库的基础语句
2. Notepad++的compare插件,可以智能对比文本
3. Excel粘贴时选择自定义分隔符、选择文本模式可以保留源数据格式。(不丢0)
4. Linux时区知识,分为系统时区和用户时区
5. Jdbc连接mysql时,汉字会乱码,需要添加”?characterEncoding=utf8”参数
至此,整个项目的测试算是告一段落。以上是本人对A系统测试工作的一次经验总结。定期总结可以很好的消化和巩固知识,以此自勉。