测试理论

一、 测试方法类型及阶段

1. 测试方法

根据不同的需求,测试方法有不同的分类。诸如简单的黑盒,白盒,灰盒测试;手工,自动化测试;静态测试,动态测试。
黑盒:又称为功能测试,是通过使用软件或者软件的某个功能来严格的测试。测试人员不必了解整个程序代码是怎么样设计的。只是通过输入数据查看输出结果从而了解软件是如何工作的,进而查看软件的运行状态是否存在异常。评估标准是覆盖率100%。优点是简单但是缺点是显示内容容易遗漏。
白盒:通过对程序源代码进行测试。即通过代码句法发现内部代码在算法,溢出,路径条件等等中的缺点或者错误。评估标准是逻辑覆盖率,优点是能够准确定位缺陷,缺点是难度大,工作量大。
灰盒:多适用于集成测试阶段,不仅关注输出,输入的正确性,同时也关注程序内的情况。常常通过一些辩证性的现象,时间,标志来判断内部运行情况。
静态:不运行程序没通过分析或检查源代码来检查程序的正确性。通过对需求和源程序的比较,找出不匹配的参数,循环,递归。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。有三种类型:SRS(软件需求规格说明书),HLD(概要设计说明书)对整个系统的模块功能的设计,LLD(详细设计说明书)对具体功能实现的设计.
动态:即通过运行程序,检查输出结果与输入参数的不同,分析BUG。

2. 测试阶段

  1. 单元测试(模块测试):某个特点条件下某个特点函数的运行结果,一般由开发自己完成。
  2. 集成测试:把已经测试过的单元组合成一个组件,测试他们之间的接口。从而达到检查模块之间是否完成预期交互目的。常用的方法是:功能性测试,非功。(主要测试接口,方法的声明,返回值)
  3. 系统测试:即将硬件,软件,操作人员看做一个整体,进行测试。比较常见的有:恢复测试,安全测试,压力测试,易用性测试等。
    a) 恢复测试:指软件运行失败后,验证其恢复过程是否执行,特定情况下具备容错率,并且在规定时间内能恢复。
    b) 安全测试:保证系统内部的保护机制,方式非法入侵。
    c) 压力测试:在异常访问情况下,高访问量,高频来执行
    d) 交付测试:该测试过程主要参与者应该是目标对象。包括:安装测试,可用性测试,alpha测试,beta测试等。
    i. Alpha测试:指用户在开发环境下进行类似黑盒的测试,目的是从用户角度评价产品的功能,可用性,可靠性,性能。其中尤其注重产品界面和特色。
    ii. Beta测试(内测):由用户在实际情况下使用团建一段时间,然后把问题缺陷反馈给测试人员。目的是保证上线前能够部分全面的修正实际应用中的不足。
  1. 测试模型
    瀑布模型:原始需求可行性分析需求分析概要设计详细设计编写代码测试。优点是流程简单,缺点是测试和开发介入晚,造成人员浪费,修改缺陷成本高,项目风险大。
    双V模型:单元测试(UT)集成测试(IT)系统测试(ST)优点是测试和开发并行工作,测试介入时间早,能够尽早发现缺陷,测试更全面。缺点是需要做需求分析,对测试人员要求高,而且三个阶段测试都要做,时间成本高。

二、用例编写方法

1. 等价类

定义:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
有效等价类:有效等价类指输入完全满足程序输入的规格说明,有效、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。
无效等价类:无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。使用无效等价类,可以鉴别程序异常情况的处理。

2. 边界值

定义:边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
  使用边界值分析方法设计测试用例,首先应确定边界情况.着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

图1:等价类边界值表

3. 状态迁移图

定义:系统处于某种状态,可以向其他几种状态进行转移。(多功能间的转换)
优点:可以覆盖所有有效状态
缺点:无法覆盖无效状态
例:播发器中播放,暂停,前进,后退几种状态的转换
步骤: 画出业务矩阵图画状态迁移图(广度优先,深度优先)
在这里插入图片描述

4. 判定表法 (决策表法)

定义:判定表法是分析和表达多逻辑条件下执行不同操作的情况的工具。
组成:条件桩,动作桩
条件桩:列出了问题的所有条件
动作桩:根据不同的输入条件组合得到的输出结果
判断条件的组合:n个条件 2的n次方
在这里插入图片描述

5. 正交实验法

定义:在有多个输入框的情况下,且每个输入框都有固定选项,而他们之间没有任何关系。彼此之间有很多种组合,但是时间条件不允许把所有组合都测试一遍。因此将其两两组合进行测试,因为数据表明很多BUG出现时因为一个功能2个输入之间组合构成的。
优点:最少的用例覆盖。 缺点:不能覆盖全组合
组成:因子,状态因子状态图。
因子:输入参数-----状态:因子下的固定选项。
通过allpairs工具生成步骤
在这里插入图片描述

6. 因果图

定义:一种用图解的方式进行输入和输入之间,输入和输出之间,输出和输出之间的关系, 来进行测试用例的设计。因果图最终生成的就是判定表。
优点:既能分析输入和输入之间,输入和输出之间,输出和输出之间的关系
缺点:因果关系复杂,很难画出因果图,即便画出了因果图,还是转成判定表
符号:

7. 流程分析法

定义:从开始节点到结束节点,每一个流程就是一条测试用例。
使用范围:多个输入,多个操作,并且跨越多个界面。
优点:考虑输入项的同时也考虑到了输出结果,还涉及处理过程。
缺点:流程图过于复杂。

8. 输入域覆盖法

定义:由输出结果倒推输入参数。
例:输出126邮箱的用户名和邮箱地址,在数据库中核对二者是否一致。

9. 异常分析法

定义:人为让系统出现故障,检查系统恢复能力。
方法:断电,断网,来电,强制关闭

10. 错误猜测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值