软件测试简答题
1.根据G.Mayers的观点,软件测试的目的是什么? 软件测试是: (1)为了发现错误而执行程序的过程。 (2)一个好的用例能够发现至今尚未发现的错误的测试。 (3)一个成功的测试是发现至今尚未发现的错误的测试。
2.简述软件测试的任务、目的与类型。 参考答案: (1)软件测试是一个为了寻找软件错误而运行程序的过程。 (2)目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄 今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。 (3)软件测试主要分为白盒测试和黑盒测试两大类。
3.单元测试有哪些内容?
- 模块接口测试
对通过被测模块的数据流进行测试。为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。 - 局部数据结构测试:
设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查清全程数据对模块的影响。 - 路径测试:
选择适当的测试用例,对模块中重要的执行路径进行测试。对基本执行路径和循环进行测试可以发现大量路径错误。 - 错误处理测试
:检查模块的错误处理功能是否包含有错误或缺陷。例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。 - 边界测试:
要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。 - 此外,
如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。这类信息对进行性能评价是十分有用的。
单元测试的主要内容:单元模块内和模块之间的功能测试、容错测试、边界测试、约束测试、界面测试、重要的执行路径测试,单元内的业务流程和数据流程等。
单元测试有哪些内容?测试中采用什么方法? 单元测试主要针对模块的以下五个基本特征进行测试: (1)模块接口 (2)局部数据结构 (3)重要的执行路径 (4)错误处理 (5)边界条件 测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。
4.单元测试中采用什么方法? 测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。 通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。 桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。
5.软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?
6.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?
参考答案: (1)单元测试,目的是代码达到模块说明书的要求 (2)集成测试,目的是将经过单元测试的模块逐步组装成具有良好一致性的 完整的程序 (3)确认测试,目的是确认程序系统是否满足软件需求规格说明书的要求 (4)系统测试,目的是检查能否与系统的其余部分协调运行,并且完成SRS对他的要求。
7.什么是白盒测试法?有哪些覆盖标准试对他们的检错能力进行比较?
参考答案: 白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 白盒法有下列几种覆盖标准: 语句覆盖:设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 判定覆盖:设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。 条件覆盖:设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 判定/条件覆盖:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。 条件组合覆盖:设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。 路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。 从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。
8.什么是黑盒测试法?采用黑盒技术测试用例有哪几种方法?这些方法各有什么特点?
参考答案: : 黑盒测试法把被测试对象看成是一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。 采用黑盒技术测试用例的方法有: ①等价类的划分、②边界值分析、 ③错误推测,④因果图。 (1)等价类的划分:是将输入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率。但这个方法的缺点是没有注意选择某些高效的、能够发现更多错误的测试用例。 (2)边界值分析法:是将测试边界情况作为重点目标,选取正好等于、刚刚大于和刚刚小于边界值的测试数据。(边界情况是指输入等价类和输入等价类边界上的情况。)这种方法可以查出更多的错误,因为在程序中往往在处理边界情况时易发生错误。 (3)错误推测法:是在测试程序时,人们根据经验或直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的测试用例。 (4)因果图:能够有效地检测输入条件的各种组合可能会引起的错误。它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。
这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。 综合策略:就是联合使用上述几种测试方法,尽可能多地发现程序中的错误。
9.调试的目的是什么?调试有哪些技术手段?
调试则是在进行了成功的测试之后才开始的工作。 调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。 调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。
10.由小到大写出各种软件测试之策略。
11.软件测试准则有哪些? 1.所有测试都应该能追溯到用户需求。
2.应该远在测试开始之前就制定出测试计划。
3.把Pareto原理应用到软件测试中。
4.应该从“小规模”测试开始,并逐步进行“大规模”测试。
5.穷举测试是不可能的。
6.为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
一、软件测试基本原则 1、所有测试的标准都是建立在用户需求之上的,测试的目的在于发现系统是否满足规定的需求。 2、尽早的和不断的测试,越早进行测试,缺陷的修复成本就会越低。 3、程序员应避免检查自己的程序,由第三方进行测试更客观有效。 4、穷举测试是不可能的。 5、充分注意测试中的群集现象,一段程序中一发现的错误数越多,其中存在的错误概率越大,因此对发现错误较多的程序段,应进行更深入的测试。 6、设计测试用例时应包括合理输入和不合理输入,以及各种边界条件、特殊情况下要制造极端状态和意外状态。 7、注意回归测试的关联系,往往修改一个错误会引起更多错误。 8、测试应从“小规模”开始,逐步转向“大规模”。 9、测试用例式设计出来,不是写出来的,应根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。 10、重视并妥善保存一切测试过程文档(测试计划,测试用例,测试报告等)
12.简述静态测试方法和动态测试方法
静态测试 是指不需要运行程序代码而进行的测试,例如测试产品说明书,对此进行检查和审阅。静态方法不运行被测试程序本身,仅通过分析或检查源程序的方法、结果、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处。例如,不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归,未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例的选取提供指导。
动态测试: 是指通过运行被测程序,检查运行结果与预期结果的差异,并分析允许效率和健壮性等性能。这种方法由3部分组成:编写测试用例、执行程序、分析程序输入的结果
例如:执行程序,验证软件的正确性就是动态测试的一个过程
13.什么是集成测试?非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
非渐增式测试与渐增式测试区别
- 渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现此类错误。
- 非渐增式需要较多的人工
- 渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误到最后联合测试时才能发现,此时很难判断错误发生在哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的模块有关。
- 渐增式比较彻底。
- 渐增式需要较多的机器时间。
- 非渐增式方式,开始时允许几个测试人员并行工作,对大型系统来说,是很有意义的。
14.什么是确认测试?该阶段有哪些工作?
确认测试又称为有效性测试,他的任务是检查软件的功能与性能是否与需求规格说明书中确定的未来指标相符合。
确认测试阶段有两项工作,①进行确认测试 ②软件配置审查。
⑴确认测试一般是在模拟环境中运用黑盒测试方法,由专门的测试人员和用户参加的测试。 ⑵软件配置审查的任务是检查软件的所有文档资料的完整性正确性。如果发现遗漏和错误,应该补充和改正,同时要编排目录,为以后的软件维护工作奠定基础
|