软件测试的概述及方法
摘要
从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。
随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。
本文从测试的基本概念入手,深入剖析软件测试相关理论。
关键字:软件测试、白盒测试、黑盒测试、类测试
目录
1 软件测试的发展史 (3)
2 软件测试的相关背景 (4)
3 软件测试的概述 (8)
3.1 软件测试的定义 (8)
3.2 软件测试的描述 (8)
3.3 软件测试的目的 (9)
3.4 软件测试的原则 (10)
4 软件测试的内容 (11)
4.1 验证 (11)
4.2 确认 (11)
5 软件测试的分类 (12)
5.1 常用分类 (12)
5.2 黑盒测试 (12)
5.3 白盒测试 (12)
5.4 静态测试 (15)
5.5 动态测试 (15)
6 软件测试中的类测试 (16)
6.1 测试中的关键 (16)
6.2 类测试技术 (16)
1 软件测试的发展史
软件测试方法之所以没能完全标准化和统一化,主要原因是因为软件产业产品到软件测试有各式各样的软件。
但是目前仍有很多各样软件测试方法都基本可用的常用概念和方法。
我们这里介绍的思路和方法就是可用于多数应用软件的测试。
有六个有关软件测试方法的基本概念是很重要的:白箱测试,黑箱测试,灰箱测试,有效用例和无效用例,边界条件以及等价类测试。
20世纪60年代(软件工程建立前),为表明程序正确而进行测试。
. 1972 年在北卡罗来纳大学举行了首届软件测试正式会议。
. 1975年John Good Enough 和Susan Gerhart 在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。
1979年,Glenford Myers 的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。
20世纪80年代早期,“质量”的号角开始吹响。
软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。
制定了各类标准。
. 1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。
20 世纪90 年代,测试工具盛行起来。
. 1996年提出的测试能力成熟度TCMM (Testing Capability Maturity Model )、测试支持度TSM(Testability Support Model )、测试成熟度TMM (Testing Maturity Model )。
. 到了2002年,Rick和Stefan 在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命过程。
2 软件测试的相关背景
相关背景:前段时间,就是在我没有认真了解测试行业之前,可能由于测试在中国的重视程度的问题,我也一直认为测试应该是不重要的,甚至认为有必要有专门的测试职业吗?认为软件主要是开发人员的事,软件的成果也是由开发人员决定的,当我在参加工作
后, 真正从学校的学习环境中走上实际运用开发的时候,事实上真的不是那么一回事。
软件无处不在,然而,软件是人编的——所以不完美。
在现今数字年代,计算机bug不但困扰着每个程序员,更会无可避免影响我们的生活,小到每个人的衣食住行,大到国家经济,世界局势。
随着我们的生活方式渐渐的数字化、互联网化,数字世界的找虫和杀虫就变得越来越重要。
臭名昭著的软件测试案例:
1、万“虫”之母,史上留名
1947年9月9日下午3点
45分,Grace Murray Hopper
在她的记录本上记下了史
上第一个计算机Bug——在
Harvard Mark II计算机里找
到的一只飞蛾,她把飞蛾贴
在日记本上,并写道”First
actual case of bug being
found”。
这个发现奠定了
Bug这个词在计算机世界的
地位,变成无数苦逼程序员的噩梦。
从那以后,Bug这个词在计算机世界表示计算机程序中的错误
或者疏漏,它们会使程序计算出莫名其妙的结果,甚至引起程序的崩溃。
Grace Murray Hopper是历史上最早一批程序员,而且还是个女程序员,服役于美国海军,官至准将。
这是流传最广的关于计算机Bug的故事,可是历史的真相是,Bug这个词早在发明家托马斯·爱迪生的年代就被广泛用于指机器的故障,这在爱迪生本人的1870年左右的笔记里面也能看得到。
而电气电子工程师学会IEEE也将Bug这一词的引入归功于爱迪生。
2、千年虫,炒作的狂欢
在上个世纪,
软件业者从来没想
过他们的代码和产
品会跨入新千年。
因此,很多软件业
者为了节省内存省
略掉代表年份的前
两位数字”19”,或
者默认前两位
为”19”。
而当日历越来越接近1999年12月31日时,人们越来越担心在千禧年的新年夜大家的电脑系统都会崩溃,因为系统日期会更新为1900年1月1日而不是2000年1月1日,这样可能意味着无数的灾难事件,甚至是世界末日。
到今天,我们可以调侃这个滑稽的故事,因为核导弹并没有自动发射,飞机也没有失控从天上掉下来,银行也没有把国家和用户的大笔存款弄丢。
千年虫Bug是真实的,全球花了上亿的美金用来升级系统。
而且,也发生了一些小的事故:在西班牙,停车场计费表坏了;法国气象局公布了19100年1月1日的天气预报;在澳洲,公共汽车验票系统崩溃。
就这样而已。
最后盘点的结果是软件公司赚了大钱,八卦小报销量大增,很多程序员的千禧年夜party泡汤了,几个中国文盲老太太被人骗了养老金,不可谓不严重。
3、宰赫兰导弹事件,毫秒的误差。