1:接口的参数:
指针: NULL,
字符串: NULL,空字符串,特殊字符,汉字,长度,^_^,O(∩_∩)O哈哈~,haha,V模式,U模式,数字,网址,日期,
整型: 最大、小数值的边界,正负号
浮点型: 0.0,正负号,
2:阻塞中等待消息的时候,一个进程被意外终止或者出现异常而终止的情况。
3:为了避免CASE之间出现相互影响,要在每一条CASE进入的时候初始化数据,退出的时候清空数据。
具体:框架使用Gtest
class MyTest:public testing::Test
{
protected:
virtualvoid SetUp()
{
ClearFolder(“……”);//首先清空旧数据,以防退出时没有正常删除旧文件
CopyFolderTo(……);//之后将原始数据拷贝到测试的数据文件夹中
Init();//如果需要,则调用一下初始化的功能函数
}
virtualvoid TearDown()
{
ClearFolder(“……”);//清空旧数据
}
};
TEST_F(MyTest , 测试XXXXXX)
{
//……
}
4:在进行测试的时候看到一个BUG要看一下需求文档,确认是开发的问题,还是产品需求就是这样。
5:测试用例设计的流程
比如接口测试:
1:先看参数的类型。
写常见的参数问题CASE,比如指针是否验证NULL
2:参数的逻辑验证。
比如数量是否验证为非负数,文件路径是否验证有效性,权限是否验证可行
3:具体的CASE,遇到不清楚的一定要问开发,避免写出来的CASE并不实用,导致浪费时间做无用功,并且用例要与实际的代码实现远离保持一致,而不要全部写普通的验证用例,因为有些用例测试点在某一功能实际中完全不可能出现的。
将所有想到的CASE全写出来,之后再一个个的调试验证测试逻辑、环境没问题,不要一个一个的写之后立刻调试验证,因为那样很难有一个特别清晰的思路。
6:VS使用的时候一般都要使用管理员权限打开,因为有些数据文件所在的文件夹程序没有足够权限操作的时候,会出现莫名的现象,导致花费很多时间却浪费很多时间;除了权限,有时候一个文件放在D盘就不能处理,放在C盘就能,这个有时候也需要注意。
7:在深入一个CASE进行调试的时候,一定要充分证明环境配置、数据初始化、旧数据清空、版本正确、用例写的没错的情况下再进行跟入,避免在错误的基础上试图找问题。
8:对于每一个CASE,都是用设计好了的数据包,这时候CASE里边直接硬编码,而不要试图使用代码去读取、计算等等一般化处理数据,因为硬编码节省时间,并且你也不能保证你写的处理代码是正确的,所以硬编码这时候会是更好的选择。
9:有时候文件读取失败,可能是因为保存的时候使用的编码格式问题,这个也是有出现的可能的。
10:测试里边打印的测试信息要尽可能的准确精简,以便别人测试的时候也能轻松知道问题所在。