2013年度持续集成实践小结[1] —UI自动化

发表于:2013-12-11 11:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:chenkan    来源:51Testing软件测试网采编

  背景介绍
  按照组织上的安排,咱游击到了S产品(一个快速成长中的Web产品)开搞持续集成
  考虑到S产品核心业务单一明确,前端功能简单,业务逻辑主要在后端的特点,制定了持续集成的实施策略:
  UI自动化为辅,用例少一点,精一点,降低维护成本,用例设计以冒烟和页面跳转,走通业务流程为主,目的是保障一个高可测性的测试环境;
  单元测试重点跟进,自顶向下逐步覆盖各层接口,多覆盖各种分支路径,与UI自动化形成互补。
  这里有个小插曲,我和S产品的测试负责人关于UI自动化用例的粒度和覆盖度有一些歧义,测试负责人坚持UI自动化要尽量覆盖大大小小各种流程与细节,接近于手工测试。最后,咱还是坚持了己见
  虽然,实施策略中设计了以单元测试(这里必须澄清一下,此处的单元测试实为集成测试/接口测试,没有完善的mock,仍有一些外部依赖;但是考虑到使用了JUnit/TestNg,一般也就笼统地称之为单元测试了)为主,后续工作中确实也在这方面寄予厚望,投入较多,但由于种种原因,颇有鸡肋之感,此处暂时按下不表。
  框架选择
  网易杭州研究院开源的,简单易用的,结实耐操的Dagger框架
  用例建模
  考虑到UI自动化在S产品中的预定角色,我们将用例分成三大类:
  UserStory,产品的核心业务流程,一个用例包括一系列步骤,模拟用户在S产品网站的真实运动;这些用例如果失败将明显干扰QA正常测试,一旦上线,将是严重故障;
  Topic,包括一些冗长的特定业务(例如,下图所示的Topic 1:团购超市卡),以及对UI自动化所依赖的外部环境的检测(例如,Topic 2:与供应商保持联系);
  BugCover,出现过线上Bug的功能点补充用例。
Step 1Step 2Step 3Step 4Step 5
UserStory 1从车库进超市取手推车买水果买牛奶现金结账
UserStory 2从正门进超市取购物篮啥都不买就逛逛离开
UserStory 3选购牛奶选购面包购物卡充值购物卡结账
Topic 1团购超市卡
Topic 2与X供货方保持实时联系
BugCover 1央视报道Y牛奶 没有及时下架 导致用户投诉
  这里必须要特别指出的是,不同UserStory的步骤之间 尽量正交,减少重复 ,这样一来:
  在实际编写用例代码时,基本不必考虑是否须要把哪些操作抽象成API,哪些XPath封装起来,完全脚本化写用例;
  相应的,由于用例与用例之间重复代码少,也鲜有共同依赖的API,就可以很放心地将用例责任到人,实现真正的谁写谁负责;
  而对于持续集成来讲,责任到人,及时响应是其能否成功的关键之一。
  另外,我认为这种用例模型仅适合小规模的UI自动化用例,用例数量上去以后,很难实现用例之间的正交。所以,其背后必须有充分的其它类型测试,例如:单元测试/接口测试,作为依托。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号