软件测试从零到精通–深入了解软件测试基础
- 1、软件与软件分类
-
- ① 软件划分
- ② 分类划分
- 2、软件测试的起源
- 3、缺陷名称的由来
- 4、软件测试的目的
-
- 4.1、提高软件的质量
- 4.2、保证软件的安全
- 4.3、降低软件开发成本
- 4.4、降低因软件缺陷带来的商业风险
- 4.5、为用户接受软件提供有力的依据
- 4.6、树立用户对软件的信心
- 5、软件测试的定义
-
- 5.1、 正向思维的定义
- 5.2、 反向思维的定义
- 5.3、 IEEE定义的软件测试
- 5.4、广义的软件测试定义
- 6、测试与调试的区别
-
- 6.1、在主体、目标、方法、思路路上的有所不同
- 7、软件测试的对象
1、软件与软件分类
① 软件划分
- 程序、 数据、文档
② 分类划分
- 按层次划分、按组织划分、按结构划分
2、软件测试的起源
-
起源上世纪70年代中期
– 《软件数据选择的原来》
– 《软件测试的艺术》 (本书建议:有一定软件测试基础的人员阅读) -
20世纪80年代早起,软件行业开始逐渐关注软件产品质量,并建立软件质量保证部门QA公司(Quality Assurance)质量保证 或 SQA(Scottish Qualifications Authority)策略质量保证。
3、缺陷名称的由来
缺陷软件通用名称:Bug、Defect
Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。
“Bug”的创始人格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。
4、软件测试的目的
4.1、提高软件的质量
软件测试的首要目的就是提高软件的质量,也就是让用户对产品有更好的体验,保证软件的高质量。
4.2、保证软件的安全
软件测试的第二大目的就是保证软件的安全,有一些软件是经过数据加密的,比如各大银行系统的APP。涉及到资金的支出和存入,对软件的安全性要求是特别高的。现在很火的区块链,其实它的本质就是保障安全,通过Hash算法等一系列的安全算法来保障资金流动的安全。
4.3、降低软件开发成本
软件测试的另外一个目的就是降低软件的开发成本。比如迪士尼的一款狮子王的软件,预期本应是好评如潮,也能通过这款软件获益不匪。但因为在很多系统上都无法使用,所以造成了大量的用户投诉和下线、卸载等。对成本造成了非常大的损失。如果当时那款软件能够在不同的系统上进行测试,肯定会大大降低成本。
4.4、降低因软件缺陷带来的商业风险
除了降低开发成本,还可以降低因软件缺陷带来的商业风险。如果软件的缺陷过多,也会降低合作企业的信任度,从而造成商业上的一些损失和风险。进行测试则会降低商业风险。
4.5、为用户接受软件提供有力的依据
测试是在用户使用软件之前提早介入,进行软件质量的保障。只有经过了软件测试这一环节,才能把软件交付到用户手中。公司的人员才对软件的信心更高,不至于把软件交付出去之后,时常担心用户的投诉或产品有致命的风险。
4.6、树立用户对软件的信心
显然,用户拿到经过测试的软件和没经过测试的软件,对质量的信心是不一样的。所以测试可以树立用户对软件的信心。
5、软件测试的定义
5.1、 正向思维的定义
评估一个程序与系统的特性的能力,确定它是否达到期望的结果,软件测试就是为此为目的的任何行为。
5.2、 反向思维的定义
- 由《软件测试的艺术》提出
- 测试是为了发现错误而执行一个程序或系统的过程。
- 测试是为了证明程序的错误,而不是证明程序无错误。
- 一个好的测试用例在于它能发现以前未发现的错误。
- 一个成功的测试是发现了以前未发现的错误的测试。
5.3、 IEEE定义的软件测试
对软件形成过程中的所有工作产品进行测试,而不是仅仅对程序的运行进行测试。
- 在规定条件下运行系统或构件的过程:观察和记录结果,并对系统或构件的某些方面给出评价
- 分析软件项目的而过程:检测现有状况之间的不同,并评价软件项目的特性。
5.4、广义的软件测试定义
广义的软件测试是:由确认、验证、测试3个方面组成的
-
确认(Validation):评估将要开发的软件产品是否正确无误、可行和有价值。确认意味着确保—个待开发软件是正确无误的,是对软件开发构想的检测,确保产品实现的功能满足了用户所有的需求。
-
验证(Verification):检测软件开发的每个阶段、每个步骤的结果是否正确无误,是否与软件开发各阶段的要求或期望的结果相一致。验证意味着确保软件会正确无误地与规格说明书保持一致性,开发过程是沿着正确的方向进行的。
-
测试:与狭义的测试概念统一。
6、测试与调试的区别
6.1、在主体、目标、方法、思路路上的有所不同
测试 | 调试 | |
---|---|---|
主体 | 测试工程师 | 开发工程师 |
目标 | 找缺陷(BUG) | 将错误的缺陷修改正确 |
方法 | 等价类、边界值、因果图等 | 程序代码和逻辑方法 |
思路 | 反向思维 | 正向思维 |
- 测试是从已知条件开始,使用预先定义的过程,并且有预知结果。调试是从未知的条件开始,结束的过程可能不可预计。
- 测试可以计划可以预先制定测试例和过程,工作进度可以度量描述。调试的过程或持续时间无法使用度量描述。
- 测试的对象包括软件开发过程的文档、代码、数据、等。调试的对象一般来说只有代码本身。
7、软件测试的对象
软件测试是不等同于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计以及程序编码等各个阶段所得到的文档,包括需求规格说明书、概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象。
- 软件需求
- 软件概要设计
- 软件源代码
- 软件详细设计
- 可运行程序
- 软件运行环境
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!