代码测试(CodeTest)

发表于:2014-10-20 13:12

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

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

  (4)  快速搭建测试脚本环境
  适合场景:待测试的方法以hsf提供接口方法,或者需要测试的类引入了其他bean 配置。
  方法介绍:直接在开发工程中添加测试依赖,主要是junit,如果是需要测试hsf接口,则加入hsf的依赖,如果需要使用itest的功能,加入itest依赖。
  Junit 的依赖一般开发都会加,主要看下junit的版本,最好是4.5 以上
  HSF的测试依赖:以前的hsfunit 和hsf.unit 最好都不要使用了。
  <dependency>
  <groupId>com.taobao.hsf</groupId>
  <artifactId>hsf-standalone</artifactId>
  <version>2.0.4-SNAPSHOT</version>
  </dependency>
  Hsf 接口测试代码示例:
  // 启动HSF容器,第一个参数设置taobao-hsf.sar路径,第二个参数设置HSF版本
  HSFEasyStarter.start("d:/tmp/", "1.4.9.6");
  String springResourcePath = "spring-hsf-uic-consumer.xml";
  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(springResourcePath);
  UicReadService uicReadService = (UicReadService) ctx.getBean("uicReadService");
  // 等待相关服务的地址推送(等同于sleep几秒,如果不加,会报找不到地址的错误)
  ServiceUtil.waitServiceReady(uicReadService);
  BaseUserDO user = uicReadService.getBaseUserByUserId(10000L, "detail").getModule();
  System.out.println("user[id:10000L] nick:" + user.getNick());
  Hsf bean的配置示例:
  <beans>
  <bean name="uicReadService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean"
  init-method="init">
  <property name="interfaceName" value="com.taobao.uic.common.service.userinfo.UicReadService" />
  <property name="version" value="1.0.0.daily" />
  </bean>
  </beans>
  Itest的依赖:这个版本之前修复了较多的bug。
  <dependency>
  <groupId>com.taobao.test</groupId>
  <artifactId>itest</artifactId>
  <version>1.3.2.1-SNAPSHOT</version>
  <dependency>
  (5)  程序流程图校验
  适合场景:业务流程的逻辑较为复杂,分支和异常情况很多
  方法介绍:根据代码逻辑画出业务流程图,跟实际的业务逻辑进行对比验证,是否符合预期。
  (6)  结对编程
  适合场景:代码改动较小,测试和开发配对比较稳定
  方法介绍:开发修改完代码后,将修改部分的逻辑重复给测试同学,测试同学review 开发同学讲述的逻辑是否和代码的逻辑一致。
  3.   具体操作步骤:
  (1)  checkout代码,在接手项目和日常后第一件事情是checkout 对应的应用的代码
  (2)  了解数据结构与数据存储关系:了解应用的数据对象和数据库的表结构及存储关系。
  (3)  了解代码结构, 主要搞清楚代码的调用关系。
  (4)  了解业务逻辑和代码的关系:业务逻辑肯定是在代码中实现的,找到被测试的业务逻辑对应的代码,比较常见的是通过url 或者接口名称等。
  如果是webx框架的可以根据http请求找到对应的代码,如果是其他框架的也可以通过http请求的域名在配置文件中找到对应的代码。
  (5)  阅读相关代码,了解数据流转过程。
  (6)  Review 代码,验证条件,路径覆盖。
  (7)  复杂逻辑可以选用写脚本测试或者私有方法测试,或者画出流程图。
  4.  代码测试的常见测试场景举例:
  (1)  条件,边界值,Null 测试:
  复杂的多条件,多边界值如果要手工测试,会测试用例非常多。而且null值的测试往往构造数据比较困难。
  例如如下的代码:
if (mm.getIsRate() == UeModel.IS_RATE_YES) {
float r;
if (value != null && value.indexOf(‘.’) != -1) {
r = currentValue – compareValue;
} else {
r = compareValue == 0 ? 0 : (currentValue – compareValue) / compareValue;
}
if (r >= mm.getIncrLowerBound()) {
score = mm.getIncrScore();
} else if (r <= mm.getDecrUpperBound()) {
score = mm.getDecrScore();
}
mr.setIncreaseRate(formatFloat(r));
} else {
// 目前停留时间为非比率对比
if (currentValue – compareValue >=mm.getIncrLowerBound()) {
score = mm.getIncrScore();
} else if (currentValue – compareValue <= mm.getDecrUpperBound()) {
score = mm.getDecrScore();
}
}
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号