软件测试总结

什么是软件测试?

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

软件测试的目的(意义)是什么?

软件测试是为了确认软件做了所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试是保证整个软件开发过程是高质量的。
 

1、黑盒测试与白盒测试

黑盒测试:指的是把被测的软件(对象)看做是一个黑盒子,我们不关心里面的结构是什么样子的,只关心软件(对象)的输入数据和输出结果。根据已知产品的功能设计规格和用户手册。测试验证每个功能是否都实现,每个实现了的功能是否都符合要求,以及产品的性能是否满足用户的需求。

  • 等价类划分:

等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。因此,可以合理的假定: 测试某等价类的代表值就是等效于对于这一类其它值的测试。

  • 边界值分析:

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。​​​​​​​
采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。

  • 决策表驱动:在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。

决策表通常由以下4部分组成:
* 条件桩—列出问题的所有条件
* 条件项—针对条件桩给出的条件列出所有可能的取值
* 动作桩—列出问题规定的可能采取的操作
* 动作项—指出在条件项的各组取值情况下应采取的动作

白盒测试:白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。

在软件公司里,往往采用黑盒和白盒技术相结合的方法,对软件的整体功能和性能进行黑盒测试,对软件的源代码采用白盒测试主要是检查程序的内部结构、逻辑、循环和路径。
常用测试用例设计方法有:

  • 基本路径测试方法
  • 逻辑覆盖法(逻辑驱动测试)
  • 程序插桩

2、静态测试与动态测试

静态测试:指的是不实际运行被测软件,而只是静态的检查程序代码,界面或文档中可能存在的错误的过程。
动态测试:实际运行被测试程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准是看是否运行程序

2、单元测试、集成测试、系统测试的区别

单元测试:是对软件设计的最小单元——模块进行正确性校验的测试工作,主要测试在语法,格式和逻辑上的错误。

  • 模块接口测试
  • 局部数据结构测试
  • 路径测试
  • 错误处理测试
  • 边界测试

集成测试:也叫组装测试,联合测试。是单元测试的逻辑扩展,它的最简单的形式是将两个已经测试过的单元组合成一个组件,并测试它们之间的接口。

系统测试:是指将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件,外设,某些支撑软件的系统等其它系统元素组合在一起所进行的测试,目的在于通过与系统的需求定义做比较,发现软件与系统定义不符合或矛盾的地方。

3、回归测试

回归测试是指软件系统被修改或扩充后,重新进行的测试。回归测试是为了保证对软件修改以后,没有引入新的错误而重复进行的测试。

4、α测试与β 测试

α测试:软件开发公司组织内部人员,模拟各类用户行为,对即将面世的软件产品进行测试,试图发现并修改错误。是在软件开发公司内模拟软件系统的运行环境下的一种验收测试

β 测试:软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场。软件开发公司组织各方面的典型用户,在日常工作中实际使用β版本。并要求用户报告异常情况,提出批评意见

α 测试达到一定的可靠程度时才能进行β测试,它处在整个测试的最后阶段


5、测试生命周期

  • 测试计划
  • 测试设计
  • 测试开发
  • 测试执行
  • 测试评估

6、测试评估

  • 测试覆盖测试
  • 软件故障评估
  • 测试有效性评估

7、软件过程成熟度

  1. 初始度
  2. 可重复级
  3. 定义明确
  4. 定量管理级
  5. 优化级

8、软件测试的步骤(具体)

1.制定测试计划,设计测试方案,建立测试系统,搭建测试环境
2.准备测试材料,测试工具。
3.执行测试。
4.验证预期结果,测试不通过,反馈给编码人员修改,代码修改重新提交后,返回2继续。
5.记录缺陷
6.评估测试需求的覆盖率
7.分析缺陷
8.测试总结

9、软件缺陷的生命周期。

发现——打开:软件缺陷被发现并提交给开发人员。
打开——修复:开发人员再现,修复缺陷,然后提交给测试人员去验证。
修复——关闭:测试人员验证修复过的软件,关闭已不存在的缺陷。

10、什么是测试用例?设计一个测试用例应当从哪几方面考虑?测试用例的作用?

测试用例:是测试执行的最小实体,是为特定的目的而设计的一组测试输入,执行条件和预期结果。
设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。

测试用例的作用主要体现在以下几个方面:
有效性:在测试时,不可能进行穷举测试,从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试,可有效地节省时间和资源、提高测试效率。
避免测试的盲目性:在开始实施测试之前设计好测试用例,可以避免测试的盲目性,并使得软件测试的实施重点突出、目的明确。
可维护性:在软件版本更新后只需修正少部分的测试用例便可开展测试工作,降低工作强度,缩短项目周期。
可复用性:功能模块的通用化和复用化使软件易于开发,而良好的测试用例具有重复使用的性能,使得测试过程事半功倍,并随着测试用例的不断精化,使得测试效率也不断提高。
可评估性:测试用例的通过率是检验程序代码质量的标准,也就是说工程序代码质量的量化标准应该用测试用例的通过率和测试出软件缺陷的数目来进行评估。
可管理性:测试用例是测试人员在测试过程中的重要参考依据,也可以作为检验测试进度、测试工作量以及测试人员工作效率的参考因素,可便于对测试工作进行有效的管理。

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

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

12、软件测试和调试的区别?

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


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值