代码测试(CodeTest)

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

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

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

  1.  什么是代码测试?与传统的功能和接口测试有什么不同?
  代码测试的立足点是Code,是基于代码基础之上的,而传统的功能测试和接口测试是基于应用的,必须对应的测试系统是在运行中的。
  代码测试不会特别注重接口测试的可持续性集成。
  代码测试的特点是快捷高效准确的完成测试工作,快速推进产品的迭代。
  2.  Code Test 的方法:
  (1)  代码走读和review
  适合场景:逻辑相对简单,有较多的边界值。
  方法介绍:直接查看和阅读代码,检验逻辑是否正确。
  (2)  代码debug与代码运行中测试
  适合场景:数据构造比较困难,特殊的场景覆盖。
  方法介绍:1.直接在debug代码过程中查看数据流走向,校验逻辑。
  2.在debug过程中直接将变量的值或者对象的值直接改成想要的场景
  (3)  私有方法测试
  适合场景:需要测试的类的复杂逻辑处理是放在一个特定的方法中,而且该方法中没有使用到其他引用的bean
  方法介绍:通过反射的方式调用方法,进行测试。
  例子:
  假设有一个待测试的类叫MyApp,有一个私有方法叫getSortList, 参数是一个整形List。
/**
* Created by yunmu.wgl on 2014/7/16.
*/
public class MyApp {
private List  getSortList(List<Integer> srcList){
Collections.sort(srcList);
return srcList;
}
}
  那么测试类的代码如下:
/**
* Created by yunmu.wgl on 2014/7/16.
*/
public class MyAppTest {
@Test
public  void testMyApp() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
Class clazz = MyApp.class;
Method sortList = clazz.getDeclaredMethod("getSortList",List.class); //获取待测试的方法
sortList.setAccessible(true); //私有方法这个是关键
List<Integer> testList = new ArrayList<Integer>();//构造测试数据
testList.add(1);
testList.add(3);
testList.add(2);
MyApp myApp = new MyApp(); // 新建一个待测试类的对象
sortList.invoke(myApp,testList); //执行测试方法
System.out.println(testList.toString()); //校验测试结果
}
}
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号