频道栏目
首页 > 资讯 > 四级 > 正文

计算机等级考试四级软件测试工程师试题答案5

13-04-17        来源:[db:作者]  
收藏   我要投稿
论述题 (1-1每题20分,2-2每题12分,3-3每题18分,共50分
  1.论述题1:以下是一软件规格说明,请按要求回答问题(20分)
   软件规格说明:某工厂招工规定,报名者年龄应该在16周岁到35周岁之间(到2005年12月31日为止),即出生年月不在上述范围内的人员将不予接受,并显示"年龄不合格"的出错信息。
   (1)请根据规格说明,划分等价类。(10分)
   (2)使用等价类划分方法为该软件设计测试用例。(10分)
  2.论述题2:以下是某"象棋中走马事件"应用程序的走马规则,请按要求回答问题(12分)
   以下是中国象棋中走马事件中的走马原则:
   1)如果落点在棋盘外,则不移动棋子。
   2)如果落点与起点不构成日字型,则不移动棋子。
   3)如果落点处有己方棋子,则不移动棋子。
   4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子。
   5)如果不属于(1)~(4)条,且落点处无棋子,则移动棋子。
   6)如果不属于(1)~(4)条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子。
   7)如果不属于(1)~(4)条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
   (1)画出该应用程序的因果图。(3分)
   (2)对该软件进行基于因果图的方法设计测试用例。(9分)
  3.论述题3:针对以下C语言程序,请按要求回答问题(18分)
   下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。
   函数说明:当 i_flag=0; 返回 i_count+100
   当 i_flag=1; 返回 i_count*10
   否则 返回 i_count*20
   输入参数:int i_count int i_flag
   输出参数:int i_return
   程序代码如下:
   1 int Test(int i_count,int i_flag)
   2 {
   3 int i_temp=0;
   4 while(i_count>0)
   5 {
   6 if(0==i_flag)
   7 {
   8 i_temp=i_count+100;
   9 break;
   10 }
   11 else
   12 {
   13 if(1==i_flag)
   14 {
   15 i_temp=i_temp+10;
   16 }
   17 else
   18 {
   19 i_temp=i_temp+20;
   20 }
   21 }
   22 i_count--;
   23 }
   24 return i_temp;
   25 }
   (1)画出该函数的控制流程图。(8分)
   (2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。(10分)  1.问题1:
  解答:
  根据题意,划分等价类。
  假定已知出生年月由六位数字字符表示,前四位代表年,后两位代表月,则可以划分三个有效等价类和七个无效等价类。具体如下:
  有效等价类:
  出生年月:
  (1)六位数字
  对应数值:
  (5)197003-198912
  月份对应数值:
  (8)在1-12之间
  无效等价类:
  出生年月:
  (2)含非数字字符
  (3)少于六个数字字符
  (4)多于六个数字字符
  对应数值:
  (6)小于197003
  (7)大于198912
  月份对应数值:
  (9)等于0
  (10)大于12
  问题2:
  解答:
  根据上述等价类划分,设计测试用例。
2.问题1:
  解答:
  第一步,从中国象棋中走马事件中的走马原则的描述中,明确原因和结果。
  原因:
  1 落点在棋盘上。
  2 落点与起点构成日字。
  3 落点处无己方棋子。
  4 落点方向的邻近交叉点无棋子。
  5 落点处无棋子。
  6 落点处为对方棋子(非老将)。
  7 落点处为对方老将。
  结果:
  21.不移动棋子。
  22.移动棋子。
  23.移动棋子,并除去对方棋子。
  24.移动棋子,并提示战胜对方,结束游戏。
  第二步,根据上面分析的原因和结果,结合题目中二者的关系,建立因果图。
  其因果图如图???所示,图中,结点11是导出结果的进一步原因。
  第三步,标记约束。
  由于4种结果不能同时发生,所以在因果图上标记O(唯一)约束。由于原因5、6、7不能同时发生,所以在因果图上标出E(异)约束。
问题2:
  解答:
  根据上面的因果图,建立对应的判定表。
  在该应用程序中,原因有7个,一个完整的判定表应有27=128种情况。由于篇幅的限制,且考虑到5、6、7原因只与中间结果11有关,所以这里将完整的判定表拆分为两个子表,下面两个表所示。对于结果22、23、24,中间结果是原因,因此在后一个表中,将11作为原因。
由表可知,当结点11为1时,结果21为0。由于结果21、22、23、24受到O约束的限制,不能同时为0,所以在表17-13中的的2列是不能出现的情况;同样受到O约束的还有8、12、14和16列;由于E约束,第7、8、11到16列也是不可能出现的情况。在表中用灰框表示。
  最后根据判定表设计测试用例。判定表中没有被划去的每一列就是一个测试用例。
  3.问题1:
  解答:
  根据程序的源代码,容易画出对应的控制流图,如下图所示:
  (其中圈中的数字代表的是语句的行号)
问题2:
  解答:
  第一步,根据上述控制流图计算该程序的环路复杂性。
  由图可以看出,判定节点数为3,边数为10,节点总数为8,故
  V(G)=10-8+2=4
  或V(G)=3+1=4
  第二步,根据环路复杂度为4,可确定4条基本独立路径。
  Path1:4-24
  Path2:4-6-8-24
  Path3:4-6-13-15-22-4-24
  Path4:4-6-13-19-22-4-24
  第三步,设计测试用例
  根据上面4条基本独立路径,可以设计测试用例如下:
  测试用例1:
  输入数据:i_flag=0, 或者是i_flag<0的某个值。
  预期输出结果:i_temp=0。
  测试用例2:
  输入数据:i_count=1, i_flag=0。
  预期输出结果:i_temp=101。
  测试用例3:
  输入数据:i_count=1, i_flag=1。
  预期输出结果:i_temp=10。
  测试用例4:
  输入数据:i_count=1, i_flag=2。
  预期输出结果:i_temp=20。
  但这些测试用例是可以简化的,由于路径path1是path4的真子集,所以path1是可以不要的。故针对该程序最少的测试用例数为3,即上述测试用例2,测试用例3,测试用例4。
相关TAG标签
上一篇:计算机等级考试四级软件测试工程师试题答案4
下一篇:当派生类和基类的虚构函数默认实参不同时的传递问题
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站