软件报废的情况:
1. 无用户群体
2. 软件版本达不到用户需求
软件:指一系列按照某种特定规则组织在一起,实现用户需求的计算机数据和指令的集合。
国家软件标准:与计算机系统操作有关的计算机程序、规程、规则,以及肯能有的文件、文档及数据。
简单而言,软件既是源代码、文档、配置数据的集合体。
软件生命周期:
① 市场需求调研
② 可行性分析
③ 产品项目立项
④ 需求调研开发(测试在此阶段加入)
⑤ 设计开发测试
⑥ 发布运行维护
产品:由软件公司主动挖掘市场需求,从而开发出解决大众需求的软件系统。
项目:
研发模型与软件测试
概要设计说明说(HLD,high level design)
详细设计说明说(LLD,low level design)
瀑布模型:将软件生命周期划分为计划、需求分析、设计、编码、测试与运行维护6个基本活动阶段,规定了他们自上而下,相互衔接的固定次序。
软件开发的各项活动严格按照线性方式进行。瀑布模型间的耦合度较高,不利于需求频繁变更或需求灵活的项目开发。
原型模型:更关注用户需求的正确性,在确认用户需求的过程中不断修改调整原型,克服瀑布模型的缺点,减少由于需求调研不充分、需求表达不明确带来的开发风险,提高产品研发成功率。在需求分析阶段添加原型设计。
螺旋模型:它将瀑布模型和原型模型结合,强调了其他模型所忽略的风险分析,特别适合于大型复杂的软件项目。缺点:不适合小项目,成本相对较高,需要专业的风险分析专家参与。
RUP模型:有两个轴,时间轴(动态的)和工作流轴(静态的)。(了解就好)
时间轴(4个阶段):起始阶段、细化阶段、构建阶段、发布阶段。每个阶段都是用了迭代的概念。
工作流轴(6个核心工作流和4个核心支撑工作流):
6个:业务建模工作流、需求工作流、分析设计工作流、实现工作流、测试工作流和部署工作流。
4个:环境、项目管理、配置管理、变更管理。
优点:
① 针对大型复杂的系统,逐步完善,降低了实施复杂度。
② 用户可在开发早期提出变更进行修复,从而有效控制变更风险及代价(往往都是局部变更)
③ 可在早期增强用户的信心。
缺点:
① 要有专业的架构师,在功能与功能之间联系太过紧密,模块与模块间的耦合度较高时,不使用RUP模型
② 已经确定了的功能将不允许变更,但由设计引起的内在联系的变更是无法控制的。
敏捷模型:以人为核心,迭代,循序渐进的开发方法。
敏捷建模(agile modeling AM)的价值观包括了XP(Extreme Programming,极限编程)的5个价值观:沟通、简单、反馈、勇气、谦逊。
软件测试定义
测试,即检测、试验,利用一定的手段,检测被测对象特性表现是否与预期需求一致。
软件测试的目的:
① 发现被测对象与用户需求之间的关系,即缺陷。
② 通过测试活动发现并解决缺陷,增加人们对软件质量的信心。
③ 通过测试活动了解被测对象的质量状况,为决策提供数据依据。
④ 通过测试活动积累经验,预防缺陷出现,降低产品失败风险。
软件测试原则:
① 测试证明软件存在缺陷
② 不可能执行穷尽测试
③ 测试应尽早启动、尽早介入
④ 缺陷存在群集现象
⑤ 杀虫剂悖论
⑥ 不同的测试活动依赖不同的测试环境
⑦ 不存在缺陷的谬论
开发需求与测试需求有什么不同:针对不同的人员。
软件测试级别:
需求测试:检查SRS中是否存在描述不准确、定义模糊、需求用例不正确、语言存在二义性等问题;完整性,正确性,一致性,可行性,无二义性,健壮性,必要性,可测试性,可修改行。
组件/单元测试:程序代码中的函数或者类成为单元,或者实现某个独立需求的功能模块,称为组件/单元。组件可能由多个单元组成。
集成测试:对组件/单元之间及组件/单元之间与第三方接口之间进行测试,其目的是验证接口是否与设计相符,是否与需求相符。
分为三种集成:组件/单元间集成,模块间集成,子系统间集成。
自顶向下,自底向上,三明治三种策略,大爆炸式集成策略已渐渐被淘汰。
系统测试:通过集成测试的软件,部署到某种较为发杂的计算机用户环境进行测试。目的在于通过与系统的需求定义做比较,发现软件与系统的需求定义不符合或与之矛盾的地方。
验收测试:以用户为主的测试。
Alpha测试:由用户在开发环境下进行的测试,也可以在开发机构内部的用户模拟实际操作环境中进行测试。开发人员在场。
Beta测试:由软件的多个用户在一个或多个用户的实际操作环境下进行的测试。开发人员不用在场。
UAT测试:用户接受度测试。
软件测试类型
功能测试:验证软件在指定条件下使用时,提供满足明确需求和隐含功能需求的能力情况。
主要检查被测对象是否存在以下几种错误
①是否有不正确、遗漏或多余的功能
②是否满足用户需求和系统设计的隐藏需求
③是否对输入做出正确的响应,输出结果能否正确显示。
性能测试:模拟系统运行业务压力和场景组合,验证系统性能是否满足预先定义的性能需求。一般有3个特点
主要目的是验证系统是否具有宣称具有的能力
需了解测试系统典型场景,并具有确定的性能目标
要求在真实的运行环境下执行
负载测试:在超过被测对象标准性能负荷指标下,验证系统的负载承受能力,并要求在超负荷时,被测对象依然能够正常实现业务功能。
主要的目的是找到系统处理能力极限和性能临界点,便于设定阈值
在超过被测对象性能负荷情况下实施
一般用来了解系统性能容量,或者配合性能调优来使用
压力测试:测试被测对象在超过性能指标的饱和状态下,系统处理业务的能力情况,以及系统是否会出现错误
主要目的是检查被测对象在峰值情况下应用的表现
为什么要执行测试用例:
测出更多的缺陷,更完整的测试功能点,理清思路,避免遗漏,理清思路,避免遗漏
浙公网安备 33010602011771号