公司自动化测试这部分一直是个老大难的问题, robot那种录制的后期维护成本高,而且约束较大。 商业软件又太贵,而且也不一定能适用于公司项目,随着项目越来越庞大,测试成本越来越高,所以自动测试这块已经到了必须要搞的地步了。
但人手这块也是个大问题, 所以我想自己搞一下, 先搞出一个小demo来,再让公司上层领导来推动。个人的想法如下。
整体模型包括以下几个部分:
一: UiAnnoitation 包 : 提供声明式标签,简化代码复杂度, 减少内部依赖
例:
@IUiTestCase
public class UserLogin{
@ITextTestUnit
private Text userName;
@ITextTestUnit
private Text password;
@IButtonTestUnit
private Button login;
}
类图如下:
二: UiTestCase 描述测试用例的输入、输出、操作、异常信息, 提供维护功能给操作员
如: 在 文本框 中,输入 "hello"
点击 "确定" 按钮
发送邮件 (组合case)
类图如下:
三: UiAnnoitaionParser 用于解析指定的 UiAnnoitation, 分解内容元素,让操作员根本内容创建相应的TestCase, 保存到数据库中
四: TestCaseHolder 可运行的测试用例
SWTBotCaseHolder和SWTBot, 我们项目基于Eclipse RCP的, 所以需要用这个
五: TestCaseGenerator 起bridge作用,将操作员创建的描述式用例转换为代码实例
六: ProjecttConfiguration 不同的项目需要不同的测试用例合集
七: CC CC在项目编译通过后,根据ProjecttConfiguration里的信息,调用 TestCaseGenerator生成相应的可执行代码, 再运行这些代码,根本结果生成相应的测试报告
很多细节部分我还没搞清楚,比如用例维护、用例间的依赖、测试报告等, 只能摸着石头一步步来
请大家给些建议, 这种方案的可靠性如何?万非感谢! ^_^