时间:2021-05-02
测试的目的是检查程序的行为是否符合设计规ge,程序的行为就是某种输入时会产生什么输出,因此,一个典型的测试用例完成以下工作:设定输入数据、执行程序、验证输出是否符合预期。
函数的输入数据一般包括:
(1)参数;
(2)成员变量,只考虑函数需要读取的成员变量;
(3)全局变量,只考虑函数需要读取的全局变量;
(4)内部输入,主要是调用子函数产生的输入、局部静态变量、中断产生的输入。
以上四项,当涉及到复杂数据类型时,只考虑函数需要读取的域,例如,一个结构对象,有十个域,而函数只读取其中一个域,则不必考虑其他九个域。
(5)其他数据,如函数需要读取文件或数据库中的数据,则要先在文件或数据库中设置好这些数据。
显然,所有可能输入都进行测试,既不可能也无意义,我们应该用一定的规则选择有代表性的数据作为输入。输入可分为三大类:正常输入,边界输入,非法输入,每大类还可再分为若干小类,划分小类的依据是:同一小类中每个数据都具有等价的测试效果,也就是说,小类中取任取一个数据作为输入,如果测试通过,可以肯定同小类的其他输入也可以测试通过,这就是平常说的“等价类法”。
正常输入
例如字符串的Trim函数,功能是将字符串前后的空ge去除,那么正常的输入可以有四类:
前面有空ge;后面有空ge;前后均有空ge;前后均无空ge。
边界输入
上例中空字符串可以看作是边界输入。
再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。
非法输入
垃圾数据或使代码不能完成正常功能的数据,如一个文件操作的函数,非正常输入有这么几类: 文件不存在;
目录不存在;
文件正在被其他程序打开;
权限错误。
预期输出
一个完整的测试用例应该有预期输出,预期输出就是程序运行后的预期结果,通常表现在对某些数据的修改,即预期输出要自动判断程序所改写的数据的结果值是否符合预期。程序可能修改的数据包括:
(1)返回值;
(2)输出参数;
(3)成员变量,只考虑函数所改写的成员变量;
(4)全局变量,只考虑函数所改写的全局变量;
(5)内部输出,即需判断的中间结果,如函数计算好一个报文后发送出去,要判断这个报文是否正确。
以上五项,当涉及到复杂数据类型时,只考虑函数所改写的域,例如,一个结构对象,有十个域,而函数只改写了其中一个域,则不必考虑其他九个域。
(6)其他数据,如函数改写文件或数据库中的数据,也是一种输出,不过通常难于自动判断是否符合预期,可用人工查看来代替。
本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用
unittest模块是Python自带的一个单元测试模块,我们可以用来做单元测试。unittest模块包含了如下几个子模块:测试用例:TestCase测试集
前言单元测试对我们的代码质量非常重要。很多同学都会对业务逻辑或者工具方法写测试用例,但是往往忽略了对Controller层写单元测试。我所在的公司没见过一个对C
为什么要进行单元测试?单元测试保证局部代码的质量单元测试改良项目代码的整体结构单元测试降低测试、维护升级的成本单元测试使开发过程适应频繁变化的需求单元测试有助于
1、单元测试的几个重要概念(1)TestCase一个TestCase实例是一个测试用例,完整的测试流程包括测试前准备环境的搭建(setUp)、实现测试过程的代码