2.2 操作和业务分离
QTP在组织测试逻辑时,提供了 Testcase和Action两种结构。这两种结构是包含和被包含的关系:一个Testcase可以包括多个Action。将可复用的业务实现分割为独立的Action。每个Action都有自己对应的object repository;Action可以设置为reused,进行复用;每个Action都有自己DataSheet;测试用例的相互调用,也是通过 Action来进行。而Testcase按照实际逻辑对众多Action进行组织,同时提供公共设置的管理,如设置使用到的函数库,错误现场恢复,测试使用的相关参数设置。
2.3 数据和脚本分离
测试数据是测试中非常重要的资源。测试脚本可能要移植到不同的测试机或测试环境中执行,也可能AUT(被测试的系统)版本需要升级,更重要的是我们需要模拟实际用户用不同的数据类型测试相同的业务,因此需要修改相应的测试数据。所以,将测试数据全部硬耦合到测试脚本中的做法不可取,需要合理处理好测试数据和测试脚本的分离问题。
将事先准备好的测试数据存储在EXCEL文档中,供测试脚本调用。定期对测试数据更新,以保证测试的有效性。
2.4 总结
通过头文件的说明,相关人员可以快捷地了解脚本或函数的相关信息,对后续脚本代码的执行、维护都能达到事半功倍的效果。实现操作和业务分离、数据和脚本分离,能有效地避免“牵一发而动全身”。
3、需求变更
在实际工作中,脚本绝不是一成不变的,而是随着需求和页面的变化而不断修改的。如果每次需求变化,都重新录制脚本,成本极高。所以最有效的方法是,先修改对象仓库,然后修改脚本,以适应新的系统。
这种方法的前提是,对象仓库的管理符合对象库管理规范。
4、其他
最后再对第一章概述中提到的其他问题作些补充说明。
自动化测试用例的选取:一般自动化测试的系统版本要比较稳定,否则要花费大量时间维护测试脚本。自动化测试的业务逻辑应该相对简单,一般情况下是对AUT的正面测试。在实际工作中,本着节省成本的原则,可以直接抽取手工测试用例中的正面测试用例作为自动化测试用例。
自动化测试工具和测试管理工具提供了缺陷邮件通知,或缺陷自动登记功能,但不建议启用。若自动化测试报告提示发现缺陷,应该先手工测试确认是否是程序BUG,然后再根据实情决定是否提交BUG。