软件测试基础(测试入门)_追逐梦想的顾咏丰_新浪博客

错误是不可避免的,因此为了维护软件的可靠性,软件测试应运而生。理论上,软件测试其实就是一个纠错的过程,它的目的在于从程序中发现bug。现实中,测试人员通过编写测试用例,来发现程序中的bug。

错误是我们日常生活的一部分,人们在思考、行动以及其行动产生的产品中都可能会出错。错误几乎无处不在。

一, 错误与PIE模型

在说软件测试之前,有必要弄清楚 Fault,Error,Failure这3个概念,虽然说没有严格的定义,但是可以自己去根据实际场景去体会,

Software Fault: 指的是代码中的静态缺陷(Static Defect in Program),一般是代码级别的,哪个语句写错了,或者有空指针等等;
Software Error: 指的是错误的中间状态(Illegal Status of Program),比如说分支走错了,程序执行路径不对啊等等;
Software Failure: 指的是错误的程序输出或行为(Incorrect Behavior of Program),比如说与需求不相符,功能没有实现等等;

通过定义可以知道,fault, error, 和 failure 其实指的是程序有错的3个不同层次,首先 fault 是代码级别,程序猿写错了某个语句;其次 error 是状态级别,程序可能执行了这个有bug的代码,产生了错误的中间状态;最后,failure 是表现级别,由于产生了错误的中间状态,程序的输出有问题,或者与需求中不相符合,产生了失效。以下的 PIE 模型给出了这3者的联系,也就是说要产生一个 failure 必须通过 Execution - Infection - Propagation 这3步,缺一不可,具体的例子网上可以找出很多,就不罗列出来了。

软件测试基础(测试入门)

二,软件质量

测试是提高和保证软件质量的常见方法,那么软件质量是怎么定义的,又有哪些度量标准呢?

软件质量是多维的,并且是可度量的。度量标准可以进一步划分为 静态质量特性动态质量特性

  • 静态质量特性包括结构化的,可维护的代码及文档。
  • 动态质量特性包括软件可靠性,完整性,一致性,易用性和性能。

其中,可靠性是“ 软件可靠性是软件在预期的环境下无故障运行的概率”;正确性是“ 如果软件对其输入域中的每个元素都能如期望的那样运行,则称该软件是正确的”;一致性是“ 软件定义与常规管理和假设的遵循程度”,比如说日期中2月不能出现31号,显示的格式不能多样。

三,其他的概念

  • 测试(Testing)与调试(Debugging)。测试是判断一个软件是否如预期那样运行的过程;调试时确定错误的原因,并纠正错误的过程。
  • 一个标准的测试用例包含有3部分,分别是:测试输入,预期输出。
  • 验证(Verification)与测试(Testing)。验证是证明软件是没有错误的;而测试旨在与暴露程序中的错误。
  • 缺陷管理(Defects Management)。开发组织常常在开发过程中对发现的,解决的bug进行记录,入Bugzilla,FogBugz 等等。
  • 控制流图(Control Flow Graph)。CFG帮助测试人员从控制流的角度来理解程序的行为。他将程序看做是一个个基本块(Block)构成,每个基本块都有唯一的入口点和出口点。将不同的基本块看做是图中的节点,将快之间的控制流看做是图中的边,如下图所示,
软件测试基础(测试入门)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值