软件测试从零到精通笔记(01)深入了解软件测试基础

软件测试从零到精通–深入了解软件测试基础

  • 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、软件测试的对象

软件测试是不等同于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计以及程序编码等各个阶段所得到的文档,包括需求规格说明书、概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象。

  • 软件需求
  • 软件概要设计
  • 软件源代码
  • 软件详细设计
  • 可运行程序
  • 软件运行环境

来源:一禅(OneZen)

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月2日
下一篇 2022年1月2日

相关推荐