软件测试基础理论(总结)

1. 软件的三个要素:程序(实行特定功能的代码) 文档(支持代码运行) 数据(支持程序运行一切有关) 2. 软件的产品质量 指的是? 1)质量是指实体特

1.  软件的三个要素:程序(实行特定功能的代码)  文档(支持代码运行) 数据(支持程序运行一切有关)

2.  软件的产品质量 指的是? 1)质量是指实体特性的综合,表示实体满足 明确的 或 隐含要求的能力。

3.  软件测试的目的:1)验证软件是否满足 软件开发合同 或者项目开发计划,系统/子系统设计文档,软件需求规格说明,软件产品说明等规定的软件质量要求 2)通过测试,发现软件缺陷  3)为软件产品的质量测量和评价提供依据

4.  软件测试的标准4个过程,以及对应的解释  1)测试策划:只要是进行测试的需求分析 和 测试计划的编写 2)测试设计: 依据测试需求,分析并选用,已由的测试用例或者设计新的测试用例,在进入下一个阶段工作之前,应该通过,测试就绪评审 3)测试执行,执行测试用例,获取测试结果 分析并判定 设计结果  4)测试总结:整理和分析 测试数据 ,评价 测试效果和被测软件项,描述 测试状态 最后完成软件测试报告并通过测试评审

5.  测试用例设计的基本原则,1)基于测试需求的原则 2)基于测试方法的原则 3)兼顾 测试充分性 和 效率的原则 4)执行用例的可再现性原则

6.  什么是等价类划分法?

定义:等价类划分 是在 分析 需求规格说明 基础上,把程序的输入域 划分成 若干个部分,然后再每部分中选取 代表性数据 形成测试用例

步骤:a)划分有效等价类,对规格说明 是 有意义 合理的 输入数据 所构成的集合

      b)划分无效等价类,对 规格说明 是 无意义 不合理的 输入数据 所构成的集合

      c) 为每一个等价类 定义一个唯一的编号

      d)为每一个等价类 设计一组测试用例  确保 覆盖相应的等价类

6.什么是边界值分析法?

   定义:边界值分析法 是针对 边界值 进行测试的 使用 等于 大于 或者小于边界值的数据对程序进行测试的方法 就是边界值分析法。

   步骤:a)通过分析 规格说明 找出 所有 可能的 边界条件

         b) 对每一个边界条件 给出 满足 和 不满足的输入数据

         c) 设计相应的 测试用例

对于满足边界值的 输入 可以发现 计算差错,对不满足的输入 可以发现 域差错

 7. 软件的内部质量 ,可以从哪六大特性进行解释?

   六大特性:

功能性:当软件在指定条件下使用时,软件产品 提供 满足 明确的和隐含的能力,包括适合性,准确性,互操作性,安全保密性,依从性

可靠性:在指定条件下使用时 软件产品维持规定的性能级别的能力;包括,成熟性,容错性,易恢复性,依从性

易用性:在指定条件下使用 软件产品被理解被学习 使用和 吸引用户的能力  包括 易学性 易操作性 吸引性 依从性

效率性:在规定条件下 软件产品执行其功能时使用合适数量和类别资源的能力;包括 资源利用性 和效率依从性 、  

维护性:软件产品 可以被修改的能力可能包括 纠正 改进 软件对环境 需求 和功能规格说明变化的适应 包括,易分析性,易改变性,稳定性,易测试性,依从性

可移植性:软件产品 从一种环境迁移到另外一种环境的能力,包括,适应性,易安装性,共存性,易替换性,可移植性的依从性。

8. 软件按照生命周期可以分为哪些测试? 单元测试,集成测试,配置项测试(也叫作软件合格性测试或确认测试),系统测试,验收测试。

     回归测试可以分布在上述每个测试类别中,贯穿整个软件生命周期,所以单独分类描述,

9.每一个阶段测试基于的文档是什么? 单元测试:软件设计文档。 集成测试:软件结构设计文档。配置项测试:需求规格说明书(接口需求规格说明)。系统测试:用户需求(研制合同或系统需求)。验收测试:软件研制合同(用户需求或系统需求)

10.软件的准入和准出条件分别有哪些?

   准入条件: 1)具有测试合同(或者项目计划)

              2)具有软件测试所需各种文档

              3)所提交的 被测软件受控

              4)软件源代码 正确通过 汇编或者 编译

   准出条件:结束软件测试 工作一般 应该达到下面的要求

1)  已按要求 完成了合同(或项目计划)所规定的软件测试任务

2)  实际测试过程遵循了 原定的软件 测试计划 和软件测试说明

3)  客观 详细 地记录了 软件测试过程 和软件测试中发现的所有问题

4)  软件测试文档 齐全 符合规范

5)  软件测试的全过程 自始至终 在控制下进行

6)  软件测试中 的 问题 或 异常 有合理的解释 或正确 有效的处理、

7)  软件测试工作 通过了测试评审

8)  全部测试软件,被测软件,测试支持软件,和评审结果 已经纳入配置管理

 11.什么是静态测试 什么是动态测试?

     1)静态测试:又称为静态分析结束,其基本特征是 不执行被测软件,根据检查列表,对需求分析说明书,软件设计说明书,源程序做结构检查,流程图分析等找出软件错误,静态测试一般采用人工分析(针对文档),也可以用静态分析测试工具来进行(代码扫描)

     2)动态测试:其基本特征是执行被测试程序。通过执行结果,分析软件可能出现的错误 ,一般由人工设计程序测试用例,也可以由测试工具做检查和分析。

12. 回归测试的目的是什么?

     1) 测试软件变更之后,变更部分 的正确性 针对变更需求的 复合型

     2)测试软件变更之后 软件原有的 正确的功能 性能和其他规定的要求的 不损害性。

 13.什么是黑盒测试,什么是白盒测试?

     1)黑盒测试:又称为功能测试,数据驱动测试,或者基于规格说明的测试,这种测试不必要了解 对象的内部逻辑结构,而是根据需求说明书中的功能来设计测试用例

     2)白盒测试:又称,结构测试。逻辑测试或者基于程序的测试,这种测试 应了解软件程序的内部构造,并且根据内部构造 来设计测试用例。

    一般单元测试采用白盒测试, 配置项或系统采用黑盒测试。

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

      调试:定位错误所在位置,并修改这些错误

      测试:发现软件中的缺陷,提高软件质量

15.软件测试的4项基本准备活动。

1)软件环境的准备(干净 纯净的操作系统)

2)软件的安装部署(服务器操作 Linux操作数据库,jeeweb环境,tomcat .net 环境IIS )

3)测试数据的准备

4)业务操作流程。

16. 什么是基线? 已经正式通过审核批准的软件阶段性产品,是一个阶段性的开发版本,是一个具有里程碑意义的阶段性版本,此版本,可以作为 下一步 开发的基础。

17.持续的集成测试

1)对每一个 即将成为基线的版本 灰盒测试,

2)今早和不断的进行软件测试

18.冒烟测试:短时间内 针对某个模块【刚新增的模块 或者刚刚修改完的模块】开展某个专项测试(功能测试),

19.回归测试:长时间,针对某个指定的版本【刚新增的模块 以及与他相关的其他模块,进行专项的测试活动】

20.软件测试

          

一:功能测试基本理论

1.           测试需求:测试的规格说明书,主要作用是定义待测试的模块 和 功能模块的测试要点

2.           测试计划:测试过程中的纲领性文件,对测试活动中的测试环境,测试方法,测试时间人员安排。

3.           测试用例:是测试需求的细化,是一群元素的集合,主要包含,用例编号,操作步骤/测试数据,预期结果,实际结果,判定,覆盖需求。

4.           缺陷报告:将软件的实际情况 和 测试用例的预期结果相比较,记录问题报告单。

5.           测试的基本过程:四个过程,测试策划,测试设计,测试执行,测试总结

6.           测试所需要的文档:测试需求,测试计划,测试用例,缺陷报告,测试报告(可能编写)

7.           软件测试的定义:官方定义:是在规定的条件下,对软件程序进行操作,以发现其中的错误为目的,对软件质量进行评估,从而提高软件质量。老师给的测试定义:是在未知软件,程序模块,某个版本是否有错误的情况下,从客户的角度出发,依据需求规格说明书等文档,选择科学的方法,设计出正确的业务操作流程,尽可能多的模拟用户对软件的各种操作,尽可能多的发现软件中的缺陷,并且将缺陷记录报告,提交给相关开发人员修复,最终达到提高软件质量的目的。

8.           测试跟调试的区别:测试,发现 软件找那个的缺陷,提高软件质量;调试,定位程序中间已经发现的错误所在位置,并修改这些错误。

9.           软件测试工作开展之前有思想基本准备活动:测试环境的准备(保证干净,纯净的一个测试环境);完成软件的安装和部署;准备测试数据;业务操作流程的熟悉。

10.       什么叫做基线:已经正式通过审核批准的软件阶段性产品,是一个阶段性的开发版本,是一个具有里程碑意义的阶段性版本,此基线版本,可以作为下一步 开发的基础,

11.       什么叫持续集成测试:对每一个即将成为基线的版本都要进行灰盒测试,尽早和不断的进行软件测试

12.       敏捷测试:只有项目组和开发的过程,采用敏捷开发,什么时候采用敏捷测试?开发人员编写的需求规格说明书的阶段,采用敏捷测试,第一从客户的沟通中获得文字客户的需求,第二基于需求 开发静态页面原型,改动成本小,容易,直观体现需求,第三测试人员在这个阶段,对开发需求进行需求评审。

13.       什么是冒烟测试:短时间内针对指定的 刚刚新增的 或者刚刚修改完Bug的模块,进行某个专项测试

14.       什么是回归测试:长时间,针对某个指定的模块,刚刚修改完bug的模块,以及与之相关的模块 是否公用一张数据库表,进行专项的测试活动。

15.       对于输入框 填写需求时,要注意那些收集需求方式?类型  长度和范围  特殊于要对,对于按钮,要特别注意当前模块的变化,以及相关性

16.       对于测试前提:第一是程序版本编号,第二是程序文档,如果没有程序文档,可以尽量使用,已有文档,用户手册,还有跟客户或者开发进行有效的沟通,或者根据常识,或者同类型软件,界面提示信息,第三,是测试数据的准备和还原

17.       浏览器的兼容性分为哪二个部分:首先在不同的浏览器中,页面内容的显示兼容,针对质量特性的 易吸引特性 展示专项 针对非功能特性,测试需求和测试用例的编写,其次是在不用的浏览器中,页面功能操作的兼容,针对质量特性 适合性 易操作 容错性,测试需求和测试用例的编写。

18.       软件测试按照技术划分:1)黑盒;黑盒测试,又称功能测试,或者数据驱动测试 或 给予规格说明书的测试,这种测试,不必了解程序的内部情况代码,而是依靠需求规格说明书中的功能 来设计测试用例 2)白盒;白盒测试,是一种基于代码的测试,是一种测试用例的设计方法,已知软件内部工作过程,通过测试证明内部操作是否符合设计规格要求,他通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,在程序不同的地方设立检查点,检查程序运行状态是否一致。3)灰盒;敏捷的思想,持续集成,多次迭代,比如白盒的静态扫描,和黑盒的动态用例设计

19.       软件测试按照阶段划分:单元测试;集成测试;系统测试,确认测试(软件合格性测试和配置项测试);系统测试,验收测试。

20.       软件测试按照方法划分:静态测试,动态测试

21.       软件测试按照特性划分:GUI界面测试(易用性),兼容测试,帮助文档测试,性能方面,负载测试,压力测试。

22.       软件测试的模型(指导测试实施工作流程)

23.       软件测试模型v模型:细化测试活动,测试最一阶段

24.       软件测试模型w模型:细化测试活动,测试工作前面,尽早测试

25.       软件测试模型螺旋模型:细化测试活动,测试工作前移,尽早测试,每一个模块开发都是一个迭代的过程,客户评估,强调用户的参与 沟通

26.       软件测试模型H模型:弱化文档,灵活,每一个模块开发测试灵活,测试准备(不分先后),测试执行,达到测试就绪点,用例执行时,可以修改。测试计划在软件测试活动开展,也可以修改

27.       黑盒测试 需求收集 和 用例编写 需要关注那些地方?“输入”

防止输入非法数据;从需求的收集和用例的设计;长度或范围 类型和特殊要求“点击”业务功能的实现;从需求收集和用例设计【预期结果】;当前模块 相关性。

28.       黑盒测试:功能模块增删改查

“添加模块”表单的内容,输入元素的value固定(默认) valu随机(长度 类型 要求)点击元素,当前模块 相关性

 “修改模块”先查询 后更改(添加要求)2个步骤

 “删除模块”选择数据和 点击删除,1)是否有删除提示 2)删除参考6个用例

  “查询模块”1)是否能够根据查询条件 准确的找到 待查询的内容 2)长度 少 不关注 3)类型 非数字,数字,时间(bug) 4)特殊要求 特殊字符,5)正交法 用例个数固定

29.       什么是好的测试用例?首先 编写依据 基于需求 基于方法 兼顾效率 体现再现性,然后,此用例能够帮助发现新的bug

30.       测试过程管理工具相比与硬盘保护有什么优点?web页面 表单填写数据库保存,方便进行内容保存 收集,统计,资源共享,此类管理工具很多,QC/TD(名气大),bugfreee,禅道,或者企业自己开发。

31.       Bug的分类有哪些,

1)By design 设计本如此 

2)Duplicat 重复提交的Bug 

3)Not  Repro 无法重现的bug 称为三种无效Bug .

a)Externa,因为外部因素导致的问题(浏览器 操作系统, 第三方)

b)Fixed 问题已修改  

c)Postponed, 延迟处理 后续版本 

d)won’t fix  是个Bug  太过于细小 不值得修改。称为四种有效bug