一、测试优先的编程
1.先写spec
2.再写符合spec的测试用例
3.写代码、执行测试、有问题再改、再执行测试用例,直到通过它
Spec:描述一个函数的输入输出,即描述·一个函数的行为。
二、单元测试
针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试。
使用
JUnit框架实现单元测试。使用assert方法。
//定义的类及其方法
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
------
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
//为了测试该方法而编写的测试方法
@Test
public void evaluatesExpression() {
//在此处调用该方法
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
//比较实际使用该方法后所得结果是否与预计相同,前为预期,后为实际
assertEquals(6, sum);
}
}
三、黑盒测试
(1)通过等价类划分:选择测试用例:相似的输入,将会展示相似的行为。故可从每个等价类中选一个代表作为测试用例即可。
(2)划分要包含边界
(3)两种划分的覆盖方式:笛卡尔积全覆盖;覆盖每个取值最少一次即可。
四、测试策略
记录测试策略,可以提高可读性和供别人测评。