bug的由来:
1947年,计算机还是由机械式继电器和真空管驱动的、有房间大的机器。体现当时技术水平的Mark Ⅱ,是由哈佛大学制造的庞然大物。当技术人员正在进行整机运行时,它突然停止了工作。他们爬上去找原因,发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,显然是因为飞蛾受到光和热的吸引,飞到了触点上,被高压电击而死。于是,计算机的缺陷发生了。
软件危机
**危机背景:**落后的软件生产方式无法满足日趋复杂大型软件系统的开发需求(20世纪60年代)
**危机表现:**项目延期、经费超支、产品无法维护
**危机原因:**缺乏规范化工程约束→缺陷的不断积累与放大效应
**危机解决:**软件工程(1968年)
软件工程(IEEE定义):
将系统化的严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件
软件测试的重要性
软件测试在软件生存期非常重要,工作量和开销要占将近一半,是保证软件质量的主要手段,对于查找软件缺陷、保证产品质量,提高企业效益拥有不可替代的作用
错误案例:
软件测试的意义:
软件测试是保证软件质量的重要手段。软件测试深入软件开发过程的每个阶段,在有限的开发条件下,最大程度地保证最终软件产品符合用户需要。
软件测试的发展:
**早期:**测试相当于“调试”;由开发人员完成;投入少,介入晚
**1950年:**测试被视为一种发现软件缺陷的活动,开始与调试区别开,测试始终后于开发,缺乏有效的测试方法
**1970年:**软件工程思想开始深入人心
–1972年,Bill Hetzel组织了第一次软件测试会议
–1973年,Bill Hetzel给出软件测试第一个定义:
“测试就是建立一种信心,认为程序能够按预期设想运行”
1980年:
–软件趋向大型化、高复杂化,软件质量越来越重要
–开发从混乱无序过渡到结构化开发
–测试基础理论和实用技术开始形成
–测试被作为软件质量保证的重要手段
–1983年,IEEE给出软件测试的定义:
“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”
1990年——至今:
–测试理论和技术进一步完善
–测试工具发展迅速,大大提高测试的自动化程度
–商业化软件测试工具和开源软件测试工具
–Web测试,面向对象测试等