软件测试基础--笔记1

1.1 软件

概念:软件= 程序(提供功能) + 数据(处理信息) + 文档(需求、操作、配置等)

特性:

  *  逻辑实体(抽象性)

  *  没有明显的制造过程

  *  不会磨损、老化,但会退化(修改优化引入bug)

  *  对硬件和环境有依赖

  *  手工,生产效率低

  *  复杂

  *  成本高

种类:

  *  系统软件

  *  应用软件

  *  工具软件

1.2 软件危机

概念:软件可靠性得不到保证,几乎不存在没有错误的软件。

原因:需求不明确、缺乏正确的引导理论、开发规模大、复杂度越来越高

现象:

  *  开发成本和进度估计不准确

  *  用户对软件不满意

  *  软件质量不可靠

  *  不可维护,或维护难度大

  *  缺乏文档资料

  *  成本高

消除:有成熟的理论作指导,各类人员协同配合,吸取经验和教训,研究更好的技术和方法

1.3 软件工程

概念:用 系统化、规范化、数量化 等 工程原则和方法进行 软件开发和维护 的学科

三要素:方法、工具、过程

  --  方法:“如何做”,如项目计划与估算、需求分析、系统架构设计、算法设计、编码、测试和维护等

  --  工具:自动或半自动化环境支撑

  --  过程:将 方法和工具 综合起来以达到 合理、及时地 进行软件开发

基本原理:

  *  分阶段计划的严格管理:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验收计划、运行维护计划

  *  坚持阶段评审

  *  严格的产品控制:修改难免,须有严格的管理制度和措施

  *  现代程序设计技术(结构化、面向对象)

  *  结果审查

  *  开发人员少而精

  *  不断改进工程实践:学习新技术和方法,总结经验、改进方法等

软件工程的技术复审和管理复审:

  技术复审:从技术角度确保质量、降低软件成本(今早发现问题)

  管理复审:从管理角度对成本、进度、经费等进行复审,确保项目正常地开展

软件生命周期

概念:经历孕育、诞生、成长、成熟、衰亡等阶段

包括:可行性分析与开发项目计划、需求分析、设计、编码、测试、维护等阶段

阶段划分意义:

  *  各阶段任务相互独立,降低困难程度

  *  各阶段严格管控,保证软件质量,提高可维护性

模型:

  *  瀑布模型:上一阶段完成并得到认可后才开始进行下一阶段,以文档驱动

  *  迭代模型:将整体目标划分成一些更易于完成和达到的阶段性小目标

  *  快速原型模型:短时间内为满足客户迫切的需求,实现部分功能,根据反馈确定真正的需求

  *  增量模型:瀑布模型与快速原型模型的结合

  *  螺旋模型:在每个阶段增加了风险分析的快速原型模型

敏捷开发:

目标:尽可能早地、持续地交付有价值的软件(变、早、快)

强调:

  *  个人及互动胜于过程和工具

  *  可用的软件胜于详尽的文档

  *  客户协作胜于合同谈判

  *  响应变化胜于恪守计划

原则:

  *  尽早、持续交付有价值的软件

  *  不拒绝需求变更

  *  经常交付

  *  业务人员和开发人员最好天天在一起工作

  *  激励机制(提供所需环境和支持、信任)

  *  面对面交谈

  *  可工作软件是首要度量标准

  *  提倡可持续的开发速度

  *  关注优秀的技能和好的设计,增强敏捷能力

  *  尽量简化所要做的工作

  *  好的架构、需求和设计

  *  复盘(项目、个人)

敏捷方法:XP、Scrum、Crystal Methods、FDD、ASD、DSDM、轻量级RUP

1.4 软件开发主流技术

主流软件开发技术:B/S与C/S结构、软件构件、中间件、软件重用等

软件体系结构大体分为:主机终端模式(逐渐被淘汰)、文件服务器模式(仅适用小规模局域网)、C/S模式和B/S模式

三层C/S结构:服务器--中间件--客户机,核心利用中间件将应用层分为表示层、业务逻辑层和数据存储层

  --  客户端:管理用户接口、从用户接受数据、处理应用逻辑、产生数据库请求、向服务器发送数据库请求以及从服务器接受结果并进行处理

  --  服务器:

      按硬件性能分:大型、小型、工作站服务器和PC机服务器

      功能:从客户机接收数据请求、处理数据请求、格式化结果并传送给客户机、执行完整性检查、提供并行访问控制、事务处理失败后执行事务恢复、优化查询和更新处理

  --  中间件:保证网络中各部件(软件和硬件)之间透明地连接,即隐藏网络部件的异构性。网络透明性、服务器透明性、语言透明性

B/S结构:浏览器/服务器,好处:运行维护简单、能实现不同人员,从不同地点,以不同接入方式访问和操作共同的数据;缺点:对企业外网环境依赖性太强

1.5 项目管理和配置管理

软件项目管理:包括软件度量、项目估算、进度控制(资源分配、风险管理、监管与控制)、人员组织、配置管理、项目计划等

本质:对时间、质量和成本的管理

软件配置管理(SCM):对产品标识、存储和控制,以维护其完整性、可追溯性及正确性

  --  包括:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计等,以版本控制为核心和关键

猜你喜欢

转载自www.cnblogs.com/testing2019/p/10669665.html