程序员面试宝典 - 软件测试
简答题
1. 自动化测试为什么重要?
答:自动化测试能够让测试人员从重复性工作中解放出来,并且能够提高工作效率。
2. 测试结束的准则?
答:首先是查看已提交的BUG是否已经全部解决并验证关闭,BUG验证率在95%以上,并且不存在有重大影响的BUG没有解决,可认为测试通过。
3. 一个测试计划中应该包含哪些内容?
答:测试产品的特点和主要的功能模块,首先,列出需要测试的功能点,并标明侧重点;其次是测试的策略和内容记录(包括测试工具的确认,测试用例等文档的撰写,以及测试方法的确定);最后,测试资源的分配(包括测试每一阶段的具体任务及所需的资源)。
4. 功能测试和可用性测试之间的区别?
答:功能测试主要是黑盒测试,由测试人员执行,主要验证产品是否符合设计需求;可用性测试是站在用户角度进行的测试,主要是测试产品是否可用,易用,好用。
黑盒测试
1. club函数用来模拟一个俱乐部的顾客。初始化情况是0个顾客,俱乐部最大规模只能有50个顾客,当用户超过了最大规模,他们必须等在外面。当一些顾客离开了,等待队列将减少,这个club函数将打印俱乐部里面的顾客人数,和外面等待的人数。函数声明如下:
void club(int x);
整数x代表客人来了,负数x代表客人离开了俱乐部。
1 #include <iostream> 2 using namespace std; 3 4 # define MAX_IN_CUSTOM (50) 5 6 void club(int x) 7 { 8 static int in_custom = 0; 9 static int out_custom = 0; 10 if(x > 0) 11 { 12 if((x + in_custom) > MAX_IN_CUSTOM) 13 { 14 out_custom += x + in_custom - MAX_IN_CUSTOM; 15 in_custom = MAX_IN_CUSTOM; 16 } 17 else 18 { 19 out_custom = 0; 20 in_custom += x; 21 } 22 else if(x < 0) 23 { 24 if((out_custom + x) >= 0) 25 { 26 out_custom += x; 27 } 28 else 29 { 30 in_custom += out_custom + x; 31 out_custom = 0; 32 } 33 } 34 if(in_custom < 0) 35 { 36 std::cout<<"N/A"<<std::endl; 37 } 38 else 39 { 40 std::cout<<in_custom<<","<<out_custom<<endl; 41 } 42 } 43 int main() 44 { 45 club(40); 46 club(20); 47 club(-5); 48 club(-30); 49 club(-30); 50 club(0); 51 }
2. int FIndMiddle(int a, int b, int c)和int CalMiddle(int a, int b, int c)分别是两个C函数,他们都能返回三个输入int中中间大小的那个int。你无法看到他们的源代码,那么该如何判断哪个函数的质量好?
首先,从函数命名上来看,FindMiddle更好;
然后,使用例如 0,0,0 或 0,0,1 或 非整数 来测试两个函数的排错功能,哪个更优;
最后,可以测试算法的效率,哪个更高;
3. 写一个函数测试输入数是否为回文数,给出算法和代码?
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int k = 12321; 7 int p; 8 int a[10]; 9 int ss; 10 int i = 0; 11 int begin,end; 12 cout<<"please input"<<endl; 13 cin>>k; 14 p = k; 15 while(p) 16 { 17 ss = p % 10; 18 a[i] = ss; 19 p = p/10; 20 i++; 21 } 22 begin = 0; 23 end = i - 1; 24 25 while(begin < end) 26 { 27 if(a[begin] != a[end]) 28 break; 29 else 30 { 31 begin++; 32 end--; 33 } 34 } 35 if(begin < end) 36 cout<<"False"<<endl; 37 else 38 cout<<"True"<<endl; 39 40 41 return 0; 42 }
4. 写一个测试用例和测试方案来测试手机。
包括:打电话,短消息,通讯录
打电话:
- 是否具有打电话这个功能;
- 拨打正确号码能否接通,并正常通话,如果对方是关机状态,是否有提示;
- 拨打不正确号码是否有提示,比如号码位数不正确,号码不存在等情况;
短消息:
- 是否有发送和接收短消息的功能;
- 输入正确号码能否发送短信成功,短信发生成功是否有提示,并测试对方能否成功收到短信;
- 如果输入手机号位数不对或者不存在的号码是否有提示;
- 发送成功的短信是否会自动保存到发件箱,编辑状态的短信能否不发送保存为草稿,所有短信能否进行删除操作;
通讯录:
- 是否有通讯录这个功能;
- 新建一个联系人,联系人信息为空是否有提示;
- 新建联系人与已有联系人姓名或电话号码等信息重复是否有提示;
- 删除联系人是否成功,删除时是否有提示信息;
浙公网安备 33010602011771号