Right-BICEP原则
Right —— 结果是否正确
B ——是否所有的边界条件都是正确
I——可否检查反向关联
C——可否用其他手段交叉检查
E ——是否可以强制错误条件的发生
P ——是否满足性能要求
从文件中读取数据
1 import junit.framework.*; 2 import java.io.*; 3 import java.util.ArrayList; 4 import java.util.StringTokenizer; 5 6 public class TestLargestDataFile extends TestCase{ 7 public TestLargestDataFile(String name){ 8 super(name); 9 } 10 public void testFromFile() throws Exception{ 11 String line; 12 BufferedReader rdr = new BufferedReader( 13 new FileReader("textdata.txt")); 14 15 while((line = rdr.readLine()!= null){ 16 if (line.startsWith("#")) { 17 continue; 18 } 19 StringTokenizer st = new StringTokenizer(line); 20 if (!st.hasMoreTokens()) { 21 continue; 22 } 23 String val = st.nextToken(); 24 int expected = Integer.valueOf(val).intValue(); 25 26 ArrayList argument_list = new ArrayList(); 27 28 while(st.hasMoreTokens()){ 29 argument_list.add(Integer.valueOf( 30 st.nextToken())); 31 } 32 int[] arguments = new int[arguments_list.size()]; 33 for(int i = 0; i < argument_list.size(); i++){ 34 arguments[i] = ((Integer)argument_list.get(i)).intValue(); 35 } 36 assertEquals(expected,Largest.largest(arguments)); 37 } 38 } 39 }
边界条件
- 需要考虑的条件:
- 完全伪造或者不一致的输入数据
- 格式错误的数据
- 空值或者不完整的值
- 一些与意料中合理值相去甚远的数值
- 如果要求的是一个不允许出现重复数值的list,但是传入的为一个存在重复数值的list
- 如果要求的为一个有序的list,但是传入的为一个无序的list
- 事件到达顺序错误
检查反向关联
例如
可以利用对结果的平方来检查一个计算平方根的函数
通过查询这条记录来验证某条记录是否成功地插入数据库
强制产生错误条件
检查不良网站程序:
1 public void testURLFilter(){ 2 Timer timer = new Timer(); 3 String naughty_url = "www.t66y.com"; 4 URLFilter filter = new URLFilter(small_list); 5 6 timer.start(); 7 filter.check(naughty_url); 8 timer.end(); 9 assertTrue(timer.elapsedTime() < 1.0); 10 URLFilter f = new URLFilter(big_list); 11 timer.start(); 12 filter.check(naughty_url); 13 timer.end(); 14 assertTrue(timer.elapsedTime() < 2.0); 15 URLFilter f = new URLFilter(huge_list); 16 17 timer.start(); 18 filter.check(naughty_url); 19 timer.end(); 20 21 assertTrue(timer.elapsedTime() < 3.0); 22 }
时间: 2024-11-05 13:57:24