- 软件测试概述
- 1.1 软件,危机,和工程
- 1.1.1 基本概念,由于软件变复杂等,软件测试得到重视,简单介绍先
- 计算机系统分为软件和硬件
- 软件是什么,包含什么
- 程序,数据,相关文档,三位一体的集合
- 程序:按功能和性能要求而设计的命令指令集合
- 数据:数据是指程序可以正常操作处理信息及数据结构
- 文档是程序设计开发以及维护有关的图文材料
- 程序,数据,相关文档,三位一体的集合
- 软件危机:落后的软件生产方式无法满足迅速增长的软件需求
- 软件生产不能满足日益增长的软件需求,生产率远低于硬件生产率和计算机应用增长率
- 软件生产率随软件的规模与复杂性的提高而下降
- 软件的开发进度和成本失控,人们错误的预估开发的难度,成本,进度,延期
- 软件实现的功能与实际需求不相符
- 软件难以维护,软件的可扩展性和可维护性都比较差
- 软件的文档配置,各种使用说明,维护手册,测试报告,测试用例不够完善
- 1.1.2 软件工程的目标以及一般开发过程
- 软件工程的目标
- 狭义:
- 目标是按期交付,满足预算,用户满意,无缺陷,易于扩展的软件
- 广义:
- 提高软件质量与生产率,最终实现软件的工业化生产
- 狭义:
- 软件工程强调使用生存周期方法学,将整体的大任务,按时间分解成不同阶段进行完成
- 周期包括:需求,开发,测试,使用和维护,退出使用
- 问题的定义,确定工程需求
- 可行性研究,从经济社会技术多方面论证实现的可能性。大致确定开发时间,资金,人力
- 技术可行性
- 操作可行性
- 经济可行性
- 需求分析
- 确定功能需求,性能需求,运行环境约束,编制说明书
- 功能需求,完成所有功能
- 性能需求,适应性,安全性,可靠性,可维护性,错误处理
- 可行性研究,从经济社会技术多方面论证实现的可能性。大致确定开发时间,资金,人力
- 软件开发,由抽象到具象,说明书到系统结构,算法,数据结构,可运行在计算机上
- 软件测试,严密测试,单元测试,集成测试,系统测试,验收测试,白盒黑盒,测试计
- 软件使用和维护,交付对应环境,需求变更,功能扩展
- 软件工程的目标
- 1.1.3 软件开发模型
- 软件开发模型
- 瀑布模型,螺旋模型,增量模型,快速原型模型,敏捷过程模型
- 瀑布模型
- 计划阶段
- 给出软件的功能,性能等方面的要求与设想,研究可行性,开发资源的整合,人力物力的预估,进度预估,开发的任务以及计划
- 需求分析阶段
- 进一步细化计划里面的需求,对软件的功能进一步详细描述,产品与开发向协调实现的难易度,并给予详细的描述,写出需求详细的使用说明书等
- 设计阶段
- 把需求转变成软件的主体框架,设计核心的内容,架构阶段,分成不同的模块来实现,每个模块具体实现什么,然后再细分进行设计
- 编码阶段
- 编码阶段即开发阶段,对需求进行代码编写和开发
- 测试阶段
- 对软件进行全面而细致的测试,找出软件中的bug,并且及时修复,保证需求中的功能可用
- 运行与维护接阶段
- 部署到对应的环境,持续修复维护,使其能够持续发挥作用
- 总结
- 过程总是重复而且重叠的,无法完全线性的完成
- 计划阶段
- 螺旋过程模型
- 经历多次的需求分析,设计,实现,测试,这组顺序活动,好处1.规避风险,好处;2.提交给甲方获得反馈;好处3.避免一次集成大量的代码,不断重复,螺旋上升
- 好处,经历一个周期之后,就知道团队的开发效率,可以预估下一个周期花费的人力物力和时间了
- 坏处,这种开发模型,在迭代管理,文档管理,接口管理中比较麻烦,比较费时
- 增量过程模型
- 迭代速度加快,每次迭代在前一次的基础上更新了少量功能。
- 连续的小幅度的推荐项目
- 快速原型过程模型
- 快速进行系统分析,在设计,开发,用户的紧密结合下,迅速开发出一套基础的原型的产品,然后进行扩展,不断的修改,更新
- 敏捷过程模型
- 具有动态性,容易适应环境
- 是一种迭代增量的开发模型,是一种以人为核心,迭代,循环渐进的开发模式
- 软件被分成多个子项目,各个子项目的成果也经过测试,具备集成和可运行的特征
- 换言之,就是把一个大项目,分为多个互相联系,但是也可以独立运行的小项目,并分别完成,在此过程中软件一直处于可使用的状态。
- 用来替代瀑布开发模型,瀑布开发模型缺点是后期无法修改,可预期性比较差,自由度比较低
- 相对来说,敏捷方法能在较短的时间内,交付比较简单的可用功能,强调的是小和快和交付,并在之后的周期逐步完善,注重交付
- 软件开发模型
- 1.1.1 基本概念,由于软件变复杂等,软件测试得到重视,简单介绍先
- 1.1 软件,危机,和工程
读《软件测试》之知识点
最新推荐文章于 2022-04-11 20:45:07 发布