|
很多人可能对软件测试没有什么太深入的概念。在这里,我想给大家大致的介绍一下什么是软件测试。
针对于嵌入式软件测试分为三类:
1. 单元测试
2. 集成测试
3. 系统测试
4. 验收测试
单元测试:指对软件中最小可测试单元进行检查和验证(由Razorcat倡导,即现在Tessy的开发团队)。例如:C语言中,单元一般指1个函数。
单元测试的通过标准是什么:
(1)程序通过所有单元测试的用例
(2)语句的覆盖率达到100%
(3)分支覆盖率达到85%
如何进行单元测试:
单元测试主要用白盒测试方法,一般我们先静态地检查代码是否符合规范,这个工作可以在编译的时候解决。比如使用Keil的时候,可以通过pc-lint来进行代码测试,Tasking可以用DAC进行代码测试。静态测试完成后再动态地运行代码,检查其它实际运行结果。当然检查程序的运行结果是否正确是一个最基本的要求,我们还要检查很多项,比如程序的非法数据的容错处理,程序的边界值处理等。
桩模块:是指模拟被测模块所调用的模块。
驱动模块:是指模拟被测模块的上级模块。
桩模和驱动模块例子:
include<stdio.h>
void main(void)
{int a=1,b=2,c;
c=fun1(a,b);
}
int fun1(int x, int y)
{return X + Y;
}
主函数main调用fun1,fun1实现了计算两个参数之和功能,假设这两个函数是由两个程序员各自开发的,他们之间的开发开度不一样。
如果没有main函数,如何测试fun1函数,这时,我们需要模拟构一个新的main函数,它可以不包含main函数中需要的所有内容和细工,但至少要能够调用fun1,并且能够打印调用之后的结果,我们就把这个模拟的函数称为fun1的驱动模块。如果没有fun1函数,这时,我们需要模拟构建一个新的fun1函数,它可以不包含fun1函数中需要的所有内容和细节,但至少能够被main函数调用,并有一个返回值,我们把这个模拟的函数就称为fun1的桩模块。
集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
系统测试和验收测试:集成测试之后,就是系统测试和验收测试,系统测试是指将整个系统看做1个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。验收测试是指在系统测试后期,以用户测试为主,或有测试人人员等质量保障人员共同参与的测试,它也是软件正式交给用户的最后一道工序。 |
|