|
原帖由 kingdees 于 2007-8-12 14:24 发表
我公司有个人用了5年QTP,他和我讨论过,的确QTP的function librar可以做到代码重用!也可以轻而实现!
但是重用效果不理想, 无法实现在类被继承了N次后不修最原始代码实现需要的新功能!
他的做法是从如果新的测试 ...
潜水很久,说点吧.呵呵.kingdees跟我的工作经历有点类似呀,我们公司的产品也很复杂,前台,后台,辅助部分的等等,为了满足TA的要求我们也开发了一个框架(一部分是自己写的,一部分是利用开源的)把公司现有的测试工具,因为产品涉及范围比较广,所以测试工具也比较多,QTP在公司现有的框架中只是作为前台TA的一个测试入口,底层采用的是一个开源工具,这样,多个测试工具之间可以通过底层平台来交换data和获得各种各样的services,用来代替部分手工测试部分.在QTP中,我们也做了不少代码重用,你说的"无法实现在类被继承了N次后不修最原始代码实现需要的新功能",要看产品的复杂程度和新功能和被测难度了,至少到目前为止,我们的基类还没有需要修改,可能是你们的产品的复杂程度超出了我的想象,呵呵.其实基类被修改,比如需要在里面增加新的function来完成新的功能,对于其它的继承类也应该不会有什么影响吧无非就是多继承了个新的function.我想这种情况应该不是很多,如果多的话,那基类的设计就应该有些小问题了.因为基类的设计当初只是满足一定阶段内产品的测试的吗.谁也不会预见到以后公司产品会有什么变化,毕竟市场指导产品嘛.所以有点修改也是再所难免的.不要指望不做修改,楼主可能也是个完美主义者.呵呵.
说说我们在TA function library里面设计吧.,尽量的最小单元化或者原子化(根据产品的不同,可能有所不一样,我们的产品是可以进行分割的.),形成最小单元,这些最小单元都可以完成一个action或者function,一些相关的最小单元可以进行组合来完成一个大的功能,这个组合可以事先写好,也可以在用单独的XML脚本进行组织,进行分层设计,并且实现数据剥离等,最小单元的组合是用XML实现的,QA可以自己去写.在出现新功能的时候去增加和完善他们自己的library.最终去执行TA的就是一个XML控制脚本,用它来负责和协调整个case的运行,负责测试环境准备,加加载数据,组织function,出错处理等等,这种方法目前实现的效果还不错.
[ 本帖最后由 EdmondYe 于 2007-8-20 09:11 编辑 ] |
|