Testing - 测试基础 - 概念
测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计、实施、维护的的整个生命周期过程。
仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底。
不同的测试岗位从事不同的工作内容,但殊途同归,根本上都是要求具备快速解决问题的能力。
- 调试:在已知错误的情况下,对软件程序代码做出的一系列检查,校正的过程。
- 测试:在未知错误的情况下,检查程序代码是否有问题的过程。
软件测试从软件质量保证的角度来检查程序代码是否有误,而调试是为了解决当前已知的错误,调试活动无法替代软件测试活动。
软件测试
测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计、实施、维护的的整个生命周期过程
软件测试是对软件形成过程的文档、检查软件数据和执行程序代码的测试,而不仅是对程序进行的测试。
软件全生命周期测试:软件错误不仅是程序错误,也包含分析和设计的错误。
软件质量
软件满足规定用户或潜在用户需求的能力,要从软件在内部,外部和使用过程中的表现来衡量,包含内部质量、外部质量、和使用质量。
软件测试与软件质量的区别
- 软件测试人员的一项重要任务是提高软件质量,但不等于说软件测试人员就是软件质量保证人员,因为测试只是质量保证工作中的一个环节。
软件质量保证和软件测试是软件质量工程中两个不同层面的工作。 - 质量保证(QA):质量保证的重要工作通过预防,检查与改进来保证软件质量(所关注的是软件质量的检查与测量,着眼于软件开发的过程,步骤和产物)。
QA采用“全面质量管理”和“过程改进”的原理展开质量保证工作。 - 软件测试:测试过程虽然与开发过程紧密相关但,关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。
对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。
软件测试的目的
是想以最少的人力,物力和时间找出软件中潜在的各种错误和缺陷,过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
基于不同的立场,存在着两种完全不同的测试目的:
- 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
- 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
换言之,测试的目的是:
想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。
实施测试收集到的测试结果数据为可靠性分析提供了依据。
测试不能表明软件中不存在错误,它只能说明软件中存在错误
Glenford J.Myers就软件测试目的提出以下观点:
- 测试是程序的执行过程,目的在于发现错误。
- 一个好的测试用例在于能发现至今未发现的错误。
- 一个成功的测试是发现至今未发现的错误的测试。
软件测试的原则
- 所有的软件测试都应追溯到用户需求。
- 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
- 完全测试是不可能的,测试需要终止。根据测试错误的概率以及软件可靠性要求,确定最佳停止测试时间。
- 测试无法显示软件潜在的缺陷。也就是说测试只能证明软件存在错误而不能证明软件没有错误。
- 充分注意测试的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或者检错率成正比。
- 程序应避免检查自己的程序。
- 尽量避免测试的随意性。
测试需要终止的原因:输入量太大;输出结果太多;路径结合太多。根据测试错误的概率以及软件可靠性要求,确定最佳停止测试时间。
软件测试的对象
根据软件定义,软件包括程序,数据和文档,所以软件测试并不仅仅是程序测试,软件测试应该贯穿整个软件生命周期中。
需求分析,概要设计,详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序。
为了把握各个环节的正确性,人们需要进行各种验证和确认工作 :
- 验证(verification): 是保证软件正确实现特定功能的一系统活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标。
- 确认(validation): 是保证软件满足用户需求的一系列的活动和过程,目的是在软件开发完成后保证软件,用户需求相符合。
Testing - 测试基础 - 概念的更多相关文章
- Testing - 测试基础 - 自动
自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块. 自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目 ...
- Testing - 测试基础 - 探索
定义 探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作. 其特征有:即兴发挥,快速 ...
- Testing - 测试基础 - 方法
选择和使用测试方法和工具 按照测试需求用途(或测试技巧)选择 在软件开发生命周期和软件测试流程中适当地选择 按照测试人员实际技能选择 选择可提供的和可执行的 测试方法 类别及技巧 目标 使用方法 举例 ...
- Testing - 测试基础 - 阶段
估算 测试对软件工作量的估算的准确性 测试评估软件系统的状况的准确性 关注点: 不准确的估算 不适当的开发过程 不真实的状态报告 如何知道对工作量的估算是正确的 估算工作量的工具很容易出错 对软件工作 ...
- Testing - 测试基础 - 分类
对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 白盒测试:又称结构测试.逻辑驱动测试或基于程序代码内部构成的测试. 灰盒测试:包含性能测试.自动化测试. ...
- Testing - 测试基础 - 流程
测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...
- Testing - 测试基础 - 用例
测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...
- Testing - 测试基础 - 理解
理解 目的 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出. 对产品质量做出总体评估. 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题). 重心 ...
- Testing - 测试基础 - 模型
珠玉在前,不再赘言. 软件测试模型 软件测试模型汇总
随机推荐
- jpa更新数据出错
在更新表的一条记录时出错,错误为“java.sql.SQLException: Field 'is_del' doesn't have a default value”,表有一个属性isDel为Boo ...
- 跟visual studio 集成的git插件
目前有三个,git extension,微软的 visual studio tools for git extension,还有git source control provider 经测试,最好用的 ...
- SqlServer2012 数据库的同步问题汇总
1.当订阅由发布服务器集中管理时正常,而把这些订阅分由订阅服务器管理,在发布服务器初始化订阅时,这些订阅就会出现无法访问某地址的问题,即使添加Everyone的完全控制权限也无用. 2.SqlServ ...
- Javascript图表插件HighCharts用法案例
最近还在忙着基于ABP的项目,但本篇博客和ABP无关,喜欢ABP框架的朋友请点击传送门. 这不,最近项目基本功能做的差不多了,现在在做一个数据统计的功能,需要绘制区域图(或折线图)和饼图.一开始,楼主 ...
- java 多线程(wait/notify/notifyall)
package com.example; public class App { /* wait\notify\notifyAll 都属于object的内置方法 * wait: 持有该对象的线程把该对象 ...
- 人人都是 DBA(XIV)存储过程信息收集脚本汇编
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...
- 【C语言学习】《C Primer Plus》第8章 字符输入/输出和输入确认
学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型 ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- Qt 设置应用程序图标
Qt4设置应用程序图标 将一个ico图标放在资源文件夹下; 然后建立txt,输入 IDI_ICON1 DISCARABLE "myico.ico"; 保存文件,将其后缀改为.rc; ...
- C++ const && define
本文记录了C++中的const关键字的内容,分为3个部分,const和define的区别,const的作用,const的使用. const和define的区别 const的作用 const用于定义常量 ...