软件测试期末复习

填空题

1.软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

2.测试阶段的基本任务是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组测试用例利用这些实例执行程序找出软件中潜在的各种 错误缺陷

3.测试用例由输入数据和预期的输出数据两部分组成,

4.软件测试方法一般分为两大类:动态测试方法和静态测试方法。

5.动态测试通过运行程序发现错误。 根据测试用例的设计方法不同,动态测试又分为黑盒测试白盒测试两类。

6.静态测试采用人工检测计算机辅助静态分析的手段对程序进行检测。

7.人工审查程序偏重于编码质量的检验, 而软件审查除了市查编码还要对各阶段软件产品进行检验。

8. 计算机辅助静态分析利用静态分析工具对测试程序进行特性分析。

9.黑盒法只在软件的接口处进行测试,依据_需求规格说明书,检查程序是否满足功能要求。

10.白盒法必须考虑程序的内部结构处理过程,以检查 处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试.

11. 白盒测试是结构测试,被测对象是源程序__, 以程序的内部逻辑为基础设计测试用例。

12.逻辑覆盖是对程序内部有判定 存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为_语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖6种覆盖技术。

13.实际的逻辑覆盖测试中,一般以条件组合覆 盖为主设计测试用例,然后再补充部分用例,以达到路径覆盖测试标准。

14. 循环覆盖是对程序内部有循环存在的逻辑结构设计测试用例,它通过限制循环次数来测试。

15. 基本路径测试是在程序控制流程图基础上,通过分析控制构造的环路复杂性,导出_基本路径集合, 从而设计测试用例。

16. 黑金测试是功能测试,用黑盒技术设计测试用例有4种方法:等价类划分、边界值分析、错误推测、因果图.

17.等价类划分从程序的_功能说明, 找出一个输入条件(通常是一句话或: 一个短语),然后将每个输入条件划分成两个或多个等价类.

18.边界值分析是将测试边界  情况作为重点目标,选取正好等于、刚刚大F或刚刚小于边界值的测试数据。如果输入或输出城是个有序集合, 则应选取集合的第一个元素和最后一个元素作为测试用例。

19在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为错误推测法

20. 因果图的基本原理是通过画_ 因果 图,把用自然语言描述的功能说明转换为判定表_, 最后为 判定表每一列设计一个测试用例,

 21测试的综合策略是在测试中,联合使用各种测试方法。 通常先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。

22软件测试过程中需要3类信息:软件配置、测试配置 和测试工县_

23.软件测试般经过4个测试: 单元测试、集成测试、确认测试、系统测试

24.单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否 正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及编码和 详细设计的文档,

25. 单元测试主要测试模块的5个基本特征:模块接口、局部数据结构、重要的执行路径、错误处理、边界条件,

26. 在单元测试中,需要为被测模块设计驱动模块和_模块。驱动模块用来模拟被测模块的上级调用模块,桩模块用来代替 被测模块所调用的模块。

27.集成测试指在单元测试基础上,将所有模块按照设计要求组装成个完整的系统进行的测试。也称组装测试或联合测试。

28.集成测试的方法有两种:非渐增式测试、渐增式测试

29. 渐增式测试有两种不同的组装模块的方法:自顶向下结合、自底向上结合_.

30.自顶向下渐增式测试不需要编写_ 驱动模块,只需要编写模块,其步骤是从模块开始,沿着被测程序的_顶层的控制路径逐步向下测试, 它有两种组合策略:软件结构图 和深度优先策略宽度优先策略_。

31.自底向上渐增式测试不需要编写模块,只需要编写_ 驱动模块。

32.确认测试指检查软件的功能性能是否与需求规格说明 书中确定的指标相符合,又称有效性测试。

33.确认测试在模拟环境下运用黑盒测试方法,由专门测试人员用户参加的测试。

34.确认测试开始前需要制定测试计划,结束后要写出测试分析报告。 其测试用例要选用实际运用的数据。

35.软件配置审查的任务是检查软件的所有文档资料的完整性正确性

36.调试也称纠错,是在成功的测武之后才开始进行,其目的是确定错误的原因位置,并改正错误。

37.调试技术包括简单调试、归纳法调试、演绎法调式、回溯法调试

38.回溯法调试是从程序产生错误的地方出发,而归纳法调试是从 测试结果发现的线索入手。

39被测试程序不在机器上运行,而是采用人工测试和计算机辅助分析检测的手段称为静态.测试。

40.用等价类划分法设计一个测试用例时,使其覆盖尽可能多的尚未被覆盖的合理等价类。

41.用等价类划分法设计一个测试用例时,使其覆着一个不合理等价类。

42. 在单元测试时,需要为被测试模块设计__ 驱动模块与桩模块

43. 在集成测试时有两种测试方法,它们是渐增式和非渐增式。

44软件测试是为了发现错误 而执行程序的过程。

45. 运行被测程序的方法称为动态测试,

46.动态测试中, 主要测试软件功能的方法称为黑盒

47选择测试用例,使得被测程序中每个判定的每个分支至少执行一次这种逻辑覆盖标准称为___ 判定覆盖___

48.要覆盖含循环的所有路径是不可能的,一股通过限制循环次数来测试

49.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,  则可确定一个合理的等价类和两个不合理的等价类

50.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是错误推测法

名词解释

1.软件测试:软件测试指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

2.静态测试:指被测试的程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。

3. 动态测试:指通过运行程序发现错误

4.黑盒测试:指把测试对象看成个黑盒子 ,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。

5.白盒测试:把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

6.语句覆盖:设计足够的测试用例,使被测程序中每个语句至少执行一次

7.判定覆盖:指设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”值或“假”值,从而使程序的每个分支至少都通过一次,因此判定覆盖又称分支覆盖

8.条件覆盖:设计足够测试用例,使判定表达式中每个条件的各种可能的值至少出现一次。

9.判定/条件覆盖:设计足够的测试用例,使得判定表达式中每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。

10. 条件组合覆盖:指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。

11.路径覆盖:设计足够的测试用例,覆盖被测程序中所有可能的路径

12.测试用例:指为寻找程序中的错误而精心设计的一组测试数据

13.驱动模块:指用来模拟被测模块的上级调用模块,其功能比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。

14.桩模块:是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分

15.单元测试:指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误

16.集成测试:指在单元测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称组装测试或联合测试。

17确认测试:指检查软件的功能与性能是否与需求规格说明书中确定的指标相符合,又称有效性测试。

18.渐增式测试:指逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。

19.非渐增式测试:指首先对每个模块分别进行单元测试,然后把所有的模块按设计要求组装在一起进行测试。

20.调试:指确定错误的原因和位置,并改正错误的过程,也称纠错。

21.人的因素的含义

 1)人对感知过程的认识,包括视觉、阅读时的认知心理、记忆、归纳与演绎推理等;

2)用户已有的技能和行为方式;

3)用户所要求的完成的整个任务以及用户对人机交互部分的特殊要求。

22.基线:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能遵循正式的变化控制过程得到改变。它是软件生存期各开发阶段的一个特定点

23.软件配置管理:简称SCM,它用于整个软件工程过程。其主要目标是:标识变更、控制变更、确保变更正确地实现、报告有关变更。SCM是一组管理整个软件生存期各阶段中变更的活动。

24软件配置项是软件工程中产生的信息项,它是配置管理的基本单位,对已成为基线的SCI,虽然可以修改,但必须按照一个特殊的正确的过程进行评估,确认每一处的修改。

25.软件质量软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。

26.软件缺陷即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷

 

简答题:

1.为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?

软件测试是软件开发中不可缺少的重要一环,原因是:

·测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。

·软件测试代表了需求分析、设计、编码的最终复审。

软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。

2.软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误?

基于不同的立场,存在着两种完全不同的测试目的。

从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。

从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。

软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。

 

3.软件测试应当遵循什么原则?为什么要遵循这些原则?

1. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。

2. 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。

3. 程序员应避免检查自己的程序。

4. 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。

5. 充分注意测试中的群集现象。
经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。

6. 严格执行测试计划,排除测试的随意性。

7. 应当对每一个测试结果做全面检查。

8. 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
 

4.软件测试的步骤是什么?这些测试与软件开发各阶段之间的关系?

单元测试、集成测试、确认测试、系统测试,是软件开发的一个阶段但贯穿于整个过程

5.软件测试的过程是什么?

软件测试是一个规则的过程,包括测试设计、测试执行以及测试结果比较等。

测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试用例技术精心设计测试用例。

测试执行:利用这些测试用例执行程序,得到测试结果。

测试结果比较:将预期的结果与实际测试结果进行比较,如果二者不符合,对于出现的错误进行纠错,并修改相应文档。修改后的程序还要进行再次测试,直到满意为止。如果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用例。

6.单元测试、集成测试和确认测试各自主要目标是什么?它们之间有什么不同?相互有什么关系?

单元测试、集成测试和确认测试各自主要目标是:

单元测试的主要目标是检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。

集成测试的主要目标是检查与设计相关的软件体系结构的有关问题。

确认测试的主要目标是检查已实现的软件是否满足需求规格说明书中确定的各种需求。

单元测试、集成测试和确认测试之间的不同如下:

测试内容不同:单元测试集中于单个模块的功能和结构检验,其测试内容主要包括模块接口、局部数据结构、重要的执行路径、错误处理和边界测试;集成测试集中于模块组合的功能和软件结构检验,其测试内容主要包括模块组装中可能出现的问题,即数据穿过接口可能丢失、一个模块可能破坏另一个模块的内容、子功能组装可能不等于主功能、全程数据结构问题、误差累积问题;确认测试集中于论证软件需求的可追溯性,主要包括测试软件功能和性能是否与软件需求一致、测试软件配置的所有程序与文档是否正确完整而且一致。

测试的方法不同:单元测试总是使用白盒测试法,为被测模块设计驱动模块和桩模块;集成测试使用渐增式测试和非渐增式测试,渐增式测试又有分为自顶向下结合法和自底向上结合法;确认测试总是使用黑盒测试法。

发现的错误不同:单元测试发现的错误主要是在编码阶段产生的错误,集成测试发现的错误主要是在设计阶段产生的错误,确认测试发现的错误主要是在需求分析阶段产生的错误。

涉及的文档不同:单元测试涉及编码和详细设计文档,集成测试涉及详细设计文档和概要设计文档,确认测试涉及软件需求规格说明书和用户手册。

三者相互关系是:单元测试、集成测试和确认测试是顺序实现的。首先单元测试对各个模块进行测试,然后集成测试以单元测试为基础,将所有已测模块按照设计要求组装成一个完整的系统,对模块组合的功能和软件结构检验进行测试,最后确认测试是以集成测试为基础,测试集成的软件是否满足需求规格说明书中确定的各种需求。

7.什么是黑盒测试与白盒测试?它们都适应哪些测试?

黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。

白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

白盒测试适应的测试有单元测试、逻辑覆盖(按逻辑覆盖程度不同,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。)、循环覆盖(限制循环次数,有单循环和嵌套循环)和基本路径测试。

  • 黑盒测试适应的测试有:确认测试、等价类划分、边界值分析、错误推测和因果图。

8.软件配置管理的任务。

(1)制定项目的配置计划;(2)对配置项进行标识;(3)对配置项进行版本控制;(4)对配置项进行变更控制;(5)定期进行配置审计;(6)向相关人员报告配置的状态

10、测试计划应包括内容

一个测试计划应包括:产品基本情况、测试需求说明、测试策略和记录、测试资源配置计划表、问题跟踪报告、测试计划的评审、结果等。

11、软件测试阶段是如何划分的

软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。

12、简述软件测试过程

软件测试过程主要包括如下6个活动:测试计划;测试需求分析;测试设计;测试规程实现;测试执行;总结生成报告

13.一条软件缺陷(bug)记录都包含了哪些内容?如何提交高质量的软件缺陷记录?

1.和BUG对应的软件版本2.开发的借口人员,测试人员3.BUG的优先级4.BUG的严重程度5.BUG可能属于的模块6.BUG的标题7.BUG的描述8.BUG的截图9.BUG的状态
10.BUG的错误类型(数据,界面。。。。)

14软件测试人员在软件开发过程中的任务?

寻找BUG2.避免软件开发过程中的缺陷3.衡量软件的品质4.关注用户的需求

15.软件测试和调试的区别?

1,软件测试是找出软件已经存在的错误,而调试是定位错误,修改程序以修正错误.
2,软件测试从一个已知的条件开始,有预知的结局 而调试从未知的条件开始,其结局不可预知
3,软件测试可以计划,可以预先制定测试用例和过程,工作进度可以度量.而调试不能计划,进度不可度量.
4,调试是在测试之后,在方法,思路,策略上都有所不同.
5,测试的对像可以是文档和代码 而调试的对像只能是代码
 
6.调试是随机性的 由程序员完成 为了程序可运行
测试是有目的性的 由测试人员完成 为了程序可完成指定功能

16.什么是回归测试?

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

17.要使用自动化测试的几个基本条件?

1. 需求变动不频繁     2. 项目周期足够长 

3. 测试脚本可重复使用 

4. 测试对象能尽可能的被自动化 

18.画出软件测试的V模型和W模型?

19.软件缺陷等级如何划分?

1)致命错误

2)严重错误

3)一般错误:4)建议问题

20.如何划分等价类?

在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。

在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。

在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。

在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。

在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。

21.任选:使用seleium.fiddler.postman.jmeter的基本过程?

 

22.任选语言,写出模拟鼠标,键盘操作的关键代码?

from selenium import webdriver

import time

browser = webdriver.Chrome()

browser.get("http://www.baidu.com")

browser.maximize_window()

browser.find_element_by_id("kw").send_keys("猫")

time.sleep(3)

browser.find_element_by_id("su").click()

评审指导原则

(1)评审产品,而不是评审生产者。注意客气地指出错误,气氛轻松。

(2)不要离题,限制争论。有异议的问题不要争论但要记录在案。

(3)对各个问题都发表见解。问题解决应该放到评审会议之后进行。

(4)为每个要评审的工作产品建立一个检查表。应为分析、设计、编码、测试文档都建立检查表。

(5)分配资源和时间。应该将评审作为软件工程任务加以调度。

(6)评审以前所做的评审

黑盒测试和白盒测试是软件测试的两种基本方法,它们各自的优点和缺点是什么?

黑盒测试的优点有:1.比较简单,不需要了解程序内部的代码及实现;2.与软件的内部实现无关;  3.从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4.基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5.在做软件自动化测试时较为方便。
黑盒测试的缺点有:1.不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2.自动化测试的复用性较低。
白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐
    藏的问题。
白盒测试的缺点有:1.程序运行会有很多不同的路径,不可能测试所有的运行路径;2测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;3系统庞大时,测试开销会非常大。

设计题

输入三个整数,判断三个整数能否构成三角形,请用黑盒测试方法一种设计相应的测试用例,
并详细说明所使用黑盒测试方法.

 

 

6根据自己的理解什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?
答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据。这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据。
测试规程就是详细的对测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤。
设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。

7什么是软件质量保证?软件质量保证人员与开发人员的关系如何?
答:软件质量保证就是通过确保软件过程的质量,来保证软件产品的质量。
软件质量保证人员和开发人员之间具有管理上的严格的独立性,两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题

表7.12 电话号码等价类划分表

输入

有效等价类

等价类编号

无效等价类

等价类编号

地区码

空白

1

有非数字字符

3

四位有效数字

2

少于4位数字字符

4

多于4位数字字符

5

前缀

非0或1开头的四位数字

6

有非数字字符

7

少于4位数字字符

8

多于4位数字字符

9

0开头的4位数字

10

1开头的4位数字

11

后缀

四位数字

12

有非数字字符

13

少于4位数字字符

14

多于4位数字字符

15

步骤2:根据等价类划分表,设计测试用例覆盖有效等价类,如表7.13所示。

表7.13 有效等价类测试用例

用例编号

输入

覆盖有效等价类编号

地区码

前缀

后缀

CASE1

 

8632

3678

1, 6, 12

CASE2

0411

8631

8357

2, 6, 12

步骤3:根据无效等价类划分表,设计测试用例覆盖无效等价类,如表7.14所示。

表7.14 无效等价类测试用例

用例编号

输入

覆盖无效等价类编号

地区码

前缀

后缀

CASE1

041A

8632

3678

3

CASE2

041

8632

3678

4

CASE3

04111

8632

3678

5

CASE4

0411

A632

3678

7

CASE5

0411

863

3678

8

CASE6

0411

86321

3678

9

CASE7

0411

0632

3678

10

CASE8

0411

1632

3678

11

CASE9

0411

8632

A678

13

CASE10

0411

8632

678

14

CASE11

0411

8632

67890

15

发布了35 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/star_of_science/article/details/92766562