一. 软件工程
1. 软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
2. 软件工程:方法+工具+过程
方法:项目计划与估算,需求分析,数据结构,编码与测试等
工具:软件工具,软件支持环境,计算机辅助软件工程(CASE)等
过程:方法使用的顺序,需交付的文档,变更管理,里程碑管理等
二. 软件测试基本概念
1. 软件测试定义与目标
定义:是对软件需求分析、设计、编码的最终复查的一系列过程,是软件质量保障的关键步骤。
目标:系统的找出软件中潜在的各种错误和缺陷并更够证明软件的功能和性能与需求说明相符。
2. 软件测试流程
- 测试计划和控制
- 测试需求分析和用例设计
- 实现和执行测试用例
- 评估出口准则和报告
- 测试结束活动
- 显示软件缺陷的存在
-
穷尽测试是不可能的
-
不存在存现的谬论
-
测试活动依赖测试背景
-
杀虫剂悖论
-
缺陷集成性(80/20法则)
-
测试尽早介入
三. 软件生命周期模型的比较
优点
缺陷
瀑布模型
各模块分阶段性,提供了检查点,适合早期面向过程的结构化分析。
1.由于文档驱动,错误的传递,会采取发散扩大的方式。
2.由于逆转性很差,所以返工会造成重大损失。3.项目各阶段反馈少。迭代模型
将软件系统的开发划分为独立模块,当需求发生变化时更易修改,降低风险。
在项目早期开发可能有所变化 ,需有一个高素质的项目管理者和一个高技术水平的开发团队。