什么是软件测试?
从事软件测试的你,知道什么是软件测试吗?
IEEE提出的软件工程标准术语,软件测试定义如下:
“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。没有必要一定要背一个概念出来,搞清软件测试的含义即可。
• 软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一
• 进行软件测试可以人工方式也可以借助于工具
• 进行软件测试可以运行软件也可以不运行软件
• 软件测试的目的不仅仅是为了发现错误
软件发展的历史
人物
•商人Businesspeople
•上班族Office workers
•流程 process
•步骤 steps
•趋势 trend
•团队 team
程序设计阶段 50年代-60年代中期
• 硬件:价格贵、容量小、可靠性差
• 软件:专用、规模小
• 测试:没有系统意义上的软件测试,更多的是一种调试方式,错误主要集中在元器件的不稳定上
程序系统阶段 60年代中期- 70年代中期
• 硬件:速度容量可靠性明显提高、价格下降
• 软件:出现软件作坊、软件产品开始出现
• 测试:测试的重点逐渐转入到高级语言编写的系统中来,
测试理论和方法在这一阶段的发展还是比较缓慢
软件发展的历史
软件工程阶段 80年代之后
• 硬件:向超高速大容量网络化发展
• 软件:开发技术有很大进步但未完全摆脱软件危机
• 测试:许多测试理论和测试方法相继诞生,软件测试逐渐形成了一套体系
70年代中期,随着软件复杂度的增加,爆发了众所周知的软件危机。主要表现如下:
• 由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定;
• 开发早期需求分析不够明确,造成开发后期矛盾集中暴露;
• 不遵循开发规范,开发文档不完整,软件难以维护;
• 缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。
软件危机的后果和根源
软件危机的后果
• 软件质量不高,很难稳定
• 软件项目延期,进度无法控制
• 成本增加,无法控制预算
软件危机的根源
• 根据摩尔定律,硬件发展很快,相应对软件系统的期望越来越高
• 软件系统复杂性提高、需多人合作
• 软件开发是人的智力活动,无法用已有的产业工程方法来组织管理
解决软件危机的主要方法
研究软件生命周期中的各个阶段,按照工程化的原则和方法来组织软件开发工作,是摆脱软件危机的主要出路。
• 研究新的软件设计技术
• 把软件测试从软件开发工作中分离出来
软件生命周期的各个阶段