通过本章的学习,您将学习到:
软件的定义
软件测试的历史
软件测试的定义
软件测试的对象
软件测试的意义
一、软件的定义
在了解软件测试之前,我们先做一个简单的调查,请选择你认为是软件的内容:
我们通过上面的热身活动发现,软件是相对于硬件而言的,硬件是“硬”的,是可以触摸得到的,而软件是没有实体的,看不见摸不着的。并且,软件必须依附于硬件设备才能够实现其功能。
软件实际上是一些列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分成为硬件,由计算机的外壳和各零件及电路所组成。计算机软件需要有硬件才能运作,反之亦然。为此,我们可以用以下公式表达软件:
根据软件的使用领域,我们可以可以把软件按以下分类:
系统软件:负责管理计算机系统各种独立的硬件。
应用软件:为某种特定用途而开发的软件 。
恶意软件:危害和破坏计算机的软件。
二、软件测试的历史
自从第一位程序猿(Ada Lovelace,应叫程序媛)在1860年编写出第一段机械式计算机软件后,软件测试也进入了历史舞台,也正是因为当时软件测试的技术不成熟,才导致这第一段程序最终以失败告终。
但是在接下来的100年时间里,计算机世界始终不温不火,直至1950年才有第一台电子计算机的诞生。
自第一台电子计算机的诞生,终于拉开了信息时代的序幕,迎来大科技时代。
纵观软件测试在此后发展的几十年里,我们可以归纳为5个阶段。
调试阶段
1957年之前,计算机刚诞生不久,只有极少数的科学家才会编程,主要以复杂的数学计算为主,需求和程序并不复杂。
证明阶段
1957年~1978年,随着计算机应用的数量、复杂性的提高,随之而来的风险也日益增加,此时的测试主要为了证明软件是满足需求的。
破坏阶段
1959年 ~ 1982年,软件测试巨作《软件测试的艺术》问世,提出了软件测试的经典定义:测试是为了发现错误而执行的程序的过程。此时,软件测试从不仅仅要证明软件该做什么,也要保证软件不该做什么。
评估阶段
1982年 ~ 198年,业界提出了软件生命周期中使用分析、评审、测试来评估产品的理论。软件测试正成为一门独立、专业、具有影响力的工程学。
预防阶段
1988年 ~ 至今,测试是贯穿于整个软件生命周期,没有100%完美的软件,也没有零缺陷的产品,尽早介入,尽早发现缺陷,提前暴露风险。
从软件测试的发展历程来看,人们从的单一、片面的软件测试,到后来形成一套系统学科理论的软件测试质量理论,无不透露着软件测试的发展心酸,也彰显着软件测试无可比拟的历史地位。
三、软件测试的定义
经典定义
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程。
IEEE定义
使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别
注:电气和电子工程师协会(IEEE,全称是Instituteof Electrical and Electronics Engineers)是一个国际性的电子技术与信息科学工程师的协会,是目前全球最大的非营利性专业技术学会。IEEE致力于电气、电子、计算机工程和与科学有关的领域的开发和研究,在太空、计算机、电信、生物医学、电力及消费性电子产品等领域已制定了900多个行业标准,现已发展成为具有较大影响力的国际学术组织。
维基百科
描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
四、软件测试的对象
从软件的定义可以得到,既然要完成软件测试,那么其包含元素: 应用程序、程序相关文档、数据都是我们的被测对象。
从软件的历史变迁来看,现在的测试以预防为主,并贯穿于软件的整个生命周期。此时,测试对象的范围将会更加广泛,任何与软件质量相关的活动或事物都将成为我们的被测对象:需求分析与设计、研发流程、测试标准,团队协作管理 等。
五、软件测试的意义
试想,如果没有软件测试或软件测试做得不够好,我们的世界曾经发生过什么?
软件的质量缺陷无处不在,不管是最高精尖的航空行业,还是我们日常逛街打车的软件,我们都曾耳闻甚至经历过。
软件的质量刻不容缓,软件的质量需要你我参与。