软件测试的定义

软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。因为软件是由文档、数据以及程序组成的,所以软件测试的对象也就不仅仅是程序本身,而是包括软件形成过程的文档、数据以及程序。
随着软件工程化越来越被重视以及软件规模的不断扩大,软件分析、设计的作用越来越突出,而在实践中,越来越多的错误是在刚开始的分析与设计阶段就已经存在,所以对于软件需求和设计阶段的测试就显得非常重要,这就是测试概念的扩大化以及软件全生命周期测试的理念。

软件质量

软件质量有下面几个定义:

  1. 1991年,ISO 9126中定义软件质量是软件满足规定的或潜在用户需求特性的总和
  2. 1999年,ISO 14598定义软件质量是软件特性的总和,软件满足规定或潜在用户需求的能力。

一般对质量的理解是一个实体的“属性”,“属性”好就是质量好,但是这不够全面,因为“属性”是内部特性,而内部特性好不代表一定能够完成好用户的任务,所以软件质量也是关于软件特性具备“能力”的体现。
软件质量包括“内部质量”、“外部质量”、“使用质量”三个部分,也就是说,软件满足规定的或潜在的用户需求的能力要这三个方面去衡量。

软件测试与质量保证的区别

质量保证: 质量保证的工作是通过预防、检查和改进来保证软件质量。QA使用“全面质量管理”和“过程改进”的原理开展质量保证工作。所关注的是软件质量的管理与测量。虽然QA活动也有些测试活动,但所关注的主要是软件质量的检查与测量。
软件测试: 测试和质量保证同样都是与软件的开发过程紧密相关,但不同的是其并不关心软件开发过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试活动必须假设软件中存在潜在问题,测试中所有的操作都是为了找出更多的问题,而不仅仅是为了验证每一件事是正确的。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,所以说软件测试是保证其质量的重要一环。

软件测试的目的

在早期,软件定义指出软件测试的目的是寻找错误,并且尽可能找出更多的错误。后面,有人提出了以下几个目的:

  1. 测试是程序的执行过程,目的在于发现错误
  2. 一个好的测试用例在于能够发现至今为止未发现的错误
  3. 一个成功的测试是发现了至今未发现的错误的测试

也有人提出软件测试不仅仅是为了发现缺陷,更重要的是要通过对软件质量的度量以提高软件的质量。
综上所述,软件测试的目的可以概括如下:软件测试是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 同时,测试是以评价一个程序或者系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择和接收软件提供有力依据。
备注: 测试是为了证明软件是否可以使用,即是符合用户的需求的。

软件测试的原则

原则一: 所有的测试都应追溯到用户需求
由于软件设计和开发的目的就是使用户完成预定的任务,并满足用户的需求,而软件测试所揭示的缺陷和错误使软件达不到用户的目标,满足不了用户的需求。
原则二: 应该尽早地和不断地进行软件测试
因为软件生命周期的各个阶段都有可能产生错误,所以不能把软件测试仅仅看作为软件开发活动中的一个独立阶段的工作,而应该将其贯穿于开发的各个阶段中。同时还应尽可能早的开始测试,只要测试在生命周期中进行得足够早,就能够提高被测软件的质量,这就是预防性测试的基本原则。
原则三: 完全测试是不可能的,测试需要终止
在有限的时间和资源条件下,找出所有的软件缺陷是不可能的,主要有三个方面的原因:

  1. 输入量太大
  2. 输出结果太多
  3. 路径组合太多

原则四: 测试不能显示软件潜在的缺陷
也就是说测试只能证明软件中存在缺陷而不能证明软件中没有缺陷。
原则五: 充分注意测试中的集群现象
经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。根据这个规律,应对错误集群的程序段进行重点测试,以提高测试效益。
原则六: 程序员应避免检查自己写的程序
这有两个原因,一个是心理原因,一个是思维定式原因,一个使人不大愿意承认自己的错误以及思维定式导致难以发现自己的错误,因此为达到测试目的,应该避免这种情况出现。
原则七: 尽量避免测试的随意性
应该从工程的角度去理解软件测试,他是有组织、有计划、有步骤的活动

附: 内容来自《软件评测师教程》

软件测试的定义、目的及原则相关推荐

  1. 软件测试工作的目的和原则是什么?

    ​ 软件测试就是一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程,也就是一种实际输出与预期输出之间的审核或者比较过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软 ...

  2. 软件测试的定义、目的、原则、对象、测试与调试的区别

    1. 软件测试的定义   软件测试是指有特定的目的.有方法的,并且需要提交缺陷-跟踪解决的一个过程.其目的在于检验软件是否满足或弄清预期结果与实际结果之间的差别.即为了发现程序中的错误而使用热工或自动 ...

  3. 004-什么是软件测试?软件测试的目的与原则

    软件测试的定义: 使用人工或自动手段,来运行或测试某个系统的过程.其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 软件测试的目的: 测试是程序的执行过程,目的在于发现错误 一个 ...

  4. 软件测试02:软件测试的定义和目的

    软件测试02:软件测试的定义和目的 正向思维的定义 出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或者能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为. 反向思维的定 ...

  5. 【软件测试】软件测试的定义、软件测试的目的

        软件测试的定义: 软件测试已有了行业标准(IEEE/ANSI ),1983年IEEE提出的软件工程术语中给软件测试下的定义是:"使用人工或自动的手段来运行或测定某个软件系统的过程,其 ...

  6. 【软件工程】软件测试目标定义 黑盒测试、白盒测试

    记录 软件工程北大-软件测试技术课件 文章目录 著名的软件错误案例研究 1.迪斯尼的狮子王 2.美国航天局火星基地登陆,1999 3.爱国者导弹防御系统,1991 4.千年虫,大约1974 软件测试的 ...

  7. 软件测试的定义与分类

    一.软件的分类 二.什么是软件测试 三.软件测试的目的 四.软件测试的分类 五.环境分类 六.常见笔试面试题 一.软件的分类 1.软件 = 程序 + 文档 程序 是按实现设计的功能和性能要求执行的指令 ...

  8. 软件测试的定义是什么?

    1软件测试的定义 1979,Myers,<软件测试艺术> 测试是为发现错误而执行程序的过程. 理解: 测试是为了证明程序有错,而不是证明程序无错误. 一个成功的测试是发现了至今未发现的错误 ...

  9. 软件测试的定义、分类、方法、生命周期

    1.软件测试的定义: 关于软件测试的定义,首先要明确测试的定义:以检验产品是否满足需求为目标.而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品).比较标准的软件测试的定义是:在规定的条件下 ...

最新文章

  1. ​谷歌大神Jeff Dean领衔,万字展望5大AI趋势
  2. Python源码剖析[16] —— Pyc文件解析
  3. 7-1 内存分区分配--首次适应算法 (100 分)
  4. 命令行编译和运行java
  5. Office编程(二)C#读取Excel并存入数据库,通过XML自定义表名,是否重建并插入数据...
  6. java 元类_[译]什么是元类metaclass?
  7. 图像等比例缩放的函数封装(PHP)
  8. 理解Java虚拟机体系结构
  9. 一入前端深似海,从此红尘是路人系列第四弹之未来前端路该何去何从
  10. 测试手机是否可以安装MRP软件和MRP游戏
  11. springboot毕业实习信息管理系统的设计与实现
  12. C语言——数组定义及使用
  13. Win10的系统重装
  14. 加密解密工具 之 恩尼格玛密码机密码
  15. 【性能测试】Jmeter性能测试实战
  16. express 4.x API 及简单示例
  17. vue ui网页创建项目失败
  18. Diskeeper 2007 Professional Premier Edition 11.0 Build 686.1t
  19. 使用eNSP进入视图设置密码和IP
  20. 汉字转换拼音或拼音首字母(两个函数)--记录一下

热门文章

  1. PAT甲级 1091 Acute Stroke
  2. 二维六角晶格体系极化率RPA的计算结果总结
  3. js滚动div滚动条到底部
  4. 苹果照片传输到电脑怎么传?批量传输的技巧!
  5. 心智模式:仁者见仁、智者见智
  6. 基于word2vec+lstm的英文数据情感分析 详细数据代码
  7. 遗传算法加入约束条件matlab,使用matlab遗传算法工具箱如何加入目标函数中变量的约束条件啊,可否在M文件中加?...
  8. 【海外协议分析】instagram 逆向
  9. UEFI Runtime Drivers
  10. 深入浅出PaddlePaddle函数——paddle.shape