软件工程(吕云翔)概述问答题(五)

1.简述静态测试和动态测试的区别。

答:按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。

静态测试人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。

与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。

2.现有一段判定三角形类型的程序,可以根据输入的三角形的三边长来判定可构成的三角形是否为等腰三角形。请用等价类划分法来为此段代码设计测试用例。

答:画出该问题的等价类表,并为每个等价类进行编号:
在这里插入图片描述

3.为什么软件开发人员不能同时完成测试工作?

答:开发工作和测试工作不能由同一部分人来完成。如果开发人员对程序的功能要求理解错了,就很容易按照错误的思路来设计测试用例。如果开发人员同时完成测试工作,那么测试工作就很难取得成功。

4.软件测试的常用模型有哪些?请简述它们的优缺点。

答:常用的软件测试模型有V模型、W模型和H模型。每种模型都有各自的优缺点。

V模型的价值在于非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程各阶段的对应关系。在V模型中,测试工作在编码之后才能进行,所以在软件开发早期各个阶段引入的错误不能及时被发现。尤其是需求阶段的错误只有等到最后的验收测试才能被识别。对分析、设计阶段产生的错误不能及时发现并改正的缺点会对后期的修复工作带来诸多不便,造成更多资源浪费时间延迟
在V模型的基础上,增加开发阶段的同步测试,就是W模型。W模型的最大优势在于,测试活动可以与开发活动并行进行,这样有利于及早地发现错误,但是W模型也有一定的局限性。在W模型中,需求、设计、编码等活动依然是依次进行的,只有上一阶段完全结束,才有可能开始下一阶段的工作。与迭代的开发模型相比,这种线性的开发模型在灵活性和对环境的适应性很大差距
H模型中,软件测试过程的活动完全独立,贯穿于整个软件产品的生命周期,与其他流程并行进行。当软件测试人员认为测试准备完成,即某个测试点准备就绪时,就可以从测试准备阶段进入到测试执行阶段。

5.已知有如下一段代码:

      int a,b, c;
      if(a<1 and b>0)
         c=5;
      else if (b<-3)
         c=4;
      else
         c= 3;

请画出这段代码的程序流程图,并分别采用语句覆盖、分支覆盖、条件覆盖、分支一条件覆盖、条件组合覆盖和路径覆盖的方法设计测试用例。
答:程序流程图:
在这里插入图片描述
语句覆盖
在这里插入图片描述
分支覆盖
在这里插入图片描述
条件覆盖
在这里插入图片描述
分支----条件覆盖
在这里插入图片描述
条件组合覆盖
在这里插入图片描述
路径覆盖
在这里插入图片描述

posted @ 2019-03-06 20:02  Philtell  阅读(1951)  评论(0编辑  收藏  举报