软件测试技术复习题(含答案)

内容发布更新时间 : 2024/12/24 0:52:42星期一 下面是文章的全部内容请认真阅读。

功能( Y )

46. 逻辑覆盖法是一种常用的白盒测试方法。( Y )

47. 程序中存在很多判定和条件,不可能实现100%的条件覆盖。( Y ) 48. 静态测试通过对执行程序,找到程序中的错误或者是可疑之处。( X ) 49. 在整个开发周期中要对测试用例进行有效的跟踪和维护。( Y ) 50. 在进行系统测试的时候,当发现有错误时候,应该及时修正,紧接着

修正下一个错误。( Y )

三、简答题

1. 健壮等价类测试与标准等价类测试的主要区别是什么?

解:主要区别在于健壮等价类测试在标准等价类的基础上还要进行有效取值范围之外的输入(无效输入)的测试。 2. 单元测试有哪些步骤?各个步骤有哪些实施内容?

单元测试的步骤

通常单元测试在编码阶段进行。在源程序代码编制完成,经过评审和验证,确认没有语法错误之后,就开始进行单元测试的测试用例设计。利用设计文档,设计可以验证程序功能、找出程序错误的多个测试用例。对于每一组输入,应有预期的正确结果。

模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。这些辅助模块分为两种:

驱动模块:相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。

桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

如果一个模块要完成多种功能,且以程序包或对象类的形式出现,例如Ada中的包,Modula中的模块,C++中的类。这时可以将这个模块看成由几个小程序组成。对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。

单元测试的内容

模块接口测试:对通过被测模块的数据流进行测试。为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。

局部数据结构测试:设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查清全程数据对模块的影响。

路径测试:选择适当的测试用例,对模块中重要的执行路径进行测试。对基本执行路径和循环进行测试可以发现大量路径错误。

错误处理测试:检查模块的错误处理功能是否包含有错误或缺陷。例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。

边界测试:要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。

此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。这类信息对进行性能评价是十分有用的。

3. 单元测试的策略主要有哪些,并简述这些策略。

单元测试策略主要有三种方式:

1.自顶向下的单元测试策略:从顶层调用的单元做成桩模块;对第二层测试,使用上面已测试的单元做驱动模块;依次类推,直到全部单元测试结束。

2.自底向上的单元测试策略:先对模块调用的最底层模块进行测试,模拟调用该模块的模块为驱动模块;其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块,依次类推,直到全部单元测试结束。

3.孤立测试的单元测试策略:无需考虑每个模块与其他模块之间的关系,分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。

4. 集成测试有哪些不同的集成方法?简述不同方法的特点。

解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4种集成方法。

一次性集成方法需要的测试用例数目少,测试方法简单、易行。但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。

自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。

自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。

混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。

5. 简述基于功能分解的集成的特点,并分析其适用的应用场景。 6. 系统测试主要包括哪些内容?

解:系统测试主要包括强度测试、性能测试、恢复测试、安全测

试、可靠性测试、安装测试、容量测试和文档测试。 7. 针对某论坛,考虑其重要测试的内容。 8. 简述黑盒测试方法的特点

黑盒测试用例设计方法主要有以下几种:等价类划分法、边界值分析法、因果图法、决策表法、错误推测法等方法。

等价类划分法的特点:等价类划分法的优点是考虑了单个输入域的各类情况,避免了盲目或随机选取输入数据的布完整性和覆盖的不稳定性。

等价类划分法虽然简单易用,但是没有对组合情况进行充分的考虑。需要结合其他测试用例设计的方法进行补充。

边界值分析法的特点:1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

因果图法的特点:1、考虑输入条件间的组合关系。2、考虑输出条件对输入条件的信赖关系,即因果关系。3、测试用例发现错误的效率高。4、能检查出功能说明书中的某些不一致或遗漏。

决策表法的特点:在一个程序中,如果输入输出比较多,输入之间,输出之间相互制约的条件比较多,在这种情况下使用决策表更合适,它可以清楚地表达它们之间的各种复杂关系。

错误推测法的特点:没有确定的步骤,很大程度上是凭经验进行的。 9. 健壮等价类测试与标准等价类测试的主要区别是什么?

主要区别在于健壮等价类测试在标准等价类的基础上还要进行有效取值范围之外的输入(无效输入)的测试。 10. 简述单元测试的目的和意义。

目的:是暴漏出失败和错误。失败的可能性是可预期的,并且可以使用断言来进行检查。而错误则是不可预期的问题

意义:(1)提前发现问题并解决可以节约时间(2)是测试阶段的基础,为后期的集成测试和系统测试做好准备;(3)对单元独立测试,容易发现问题,减少成本。

11. 单元测试的策略主要有哪些,并简述这些策略。

12. 简述基于调用图的集成的特点,并分析其适用的应用场景。

13. 什么是系统测试?

系统测试是指测试整个系统已确定其是否能够提供应用的所有需求行为,包含了多种测试活动,主要分为功能性测试和非功能测试。 14. 针对某杀毒软件(如360杀毒),考虑其需要测试的内容。

主要是采用黑盒测试的方法,包括程序各功能性测试、界面友好性测试、时效性测试、安装/卸载测试、用户说明书测试、与其他软件的兼容性、与特定硬件的兼容性、可靠性(如长时间运行,休眠/唤醒等)、合法性(版权标示验证)等。 15. 什么是软件测试计划?

是指导测试过程的纲领性文件,包含产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流和风险分析等内容。 16. 制定软件测试的计划的原则有?

(1)制定测试计划应尽早开始;(2)保持测试计划的灵活性;(3)保持测试计划简洁和易读;(4)尽量争取多渠道评审测试计划;(5)计算测试计划的投入。 17. 单元测试的原则有哪些?

(1)单元测试越早进行越好;(2)单元测试应该根据《软件详细设计规格说明》进行;(3)对于修改过的代码应该重做单元测试,以保证对已发现错误的修改没有引入新的错误;(4)当测试用例的测试结果与设计规格说明书的预期结果不一致时,测试人员应该如实记录实际的测试结果;(5)单元测试应注意选择好被测试软件单元的大小;(6)一个完整的单元测试说明应该包含软件证明测试和负面测试;(7)注意使用单元测试工具。 18. 单元测试的重要性及目的是什么? 19. 系统测试与用户测试有何不同?

系统测试是测试整个系统已确定其是否能够提供应用的所有需求行为;用户测试分为体验、界面、验收、用户测试报告组成 20. 制定软件测试的计划的步骤有?

(1)产品基本情况调研;(2)测试需求说明;(3)测试的策略和记录;(4)测试资源配置;(5)计划表;(6)问题跟踪报告;(7)测试计划的评审

21. 什么是静态测试、动态测试?

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi