测试
●软件的生命周期(SDLC,Systems Development Life Cycle,SDLC)软件计划与可行性研究(问题定义、可行性研究);需求分析;软件设计(概要设计、详细设计);编码;软件测试;运行与维护
•生存周期划分
各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。
•生存周期基线
①功能基线(functional baseline)
功能基线是指在系统分析与软件定义阶段结束时,是最初批准的功能配置标识。
②指派基线(allocated baseline)
指派基线是指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。
③ 产品基线(product baseline)
产品基线是指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。
●SDLC的六个阶段
•定义及规划
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
• 需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求是在整个软件开发过程中不断变化和深入的,必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。
•软件设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
• 程序编码
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
• 软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。
测试的方法主要有白盒测试和黑盒测试两种。
在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
• 运行维护
软件维护是软件生命周期中持续时间最长的阶段。软件软件生存周期的维护包括纠错性维护和改进性维护两个方面。
•周期模型
典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。
●缺陷报告(提交bug)
一份有效的缺陷报告要素通常包括:标题、前提、测试环境、操作步骤、实际结果、期望结果、出现的频率、优先级、严重等级、附件(一般是图片形式)。
另外还会有一些附加信息,如测试人员、开发负责人等。
•标题:简明扼要,无歧义
•优先级 Priority(4个等级):软件被修复的紧急程度
•立即解决:缺陷导致系统几乎不能运行使用 或 严重妨碍测试的执行(需立即修改)
•高优先级:缺陷严重,影响到测试了(当天或第二天要及时解决的)
•正常:一般错误
•低优先级:可以在开发有时间的时候处理,如页面文本框对齐显示
•严重等级 Severity(4个等级):缺陷引起的故障对用户使用系统的影响
•致命的:主流程不通,导致系统功能缺失、用户数据被破坏、系统崩溃、死机
•严重的:影响流程的 比较严重的,比如系统主要功能部分未实现
•一般:系统的次要功能没有完全实现,但不影响用户的正常使用
•较小:操作不方便或遇到麻烦,但不影响功能的使用,如字体不美观、按钮大小不合适、文字排列对齐等(属于建议性或者美观方面的)
●测试报告
测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据。
测试报告基于测试中的数据采集以及对最终的测试结果分析。
●测试策略9个模块:
- 测试安排、发布计划
用来罗列测试项目本身重要的里程碑,每个里程碑都需要有明确的结束时间,这个时间可以指导后续的测试。
- 测试范围(按优先级排列)
分为In Scope和Out Of Scope.这一部分需要说明哪些产品模块是在测试范围中的,哪些是本阶段测试不考虑的。
对于在测试范围中的模块,需要给出优先级以便相应测试时间不足的情况;对于不在测试范围中的模块,需要给出原因。
- 测试资源
它分为人力和工具两部分。人力资源主要说明参与测试的人员,当然可以包括很多的角色,如何专业测试人员,客户,产品经理等。工具主要是指可能用到其他软件(可能需要license)。
- 测试环境
测试环境主要包括推荐环境解决方案,操作系统要求,软硬件要求。
- 测试方法
测试方法的罗列主要是为了说明针对测试项目要开展哪些类型的测试,功能测试是必须的,非功能测试是可选的。
测试方法的选择主要根据软件的所要达到的质量特性来决定。
软件的6大质量特性为:功能性、可靠性、易用性、效率性、易用性、可维护性、可移植性
- 用例设计方法
用例设计普遍的方法为等价类划分、边界值、因果图、判定表、场景之类。
- 文档管理
一般包括安装、升级文档,用户指南等。文档不单单是一个文件,它需要经过完整的测试才能发布给客户。
- 风险管理
风险管理模块需要罗列出来现在已知的可能会出现不确定性的因素,这些因素可能来自技术,资源或者其他方面的。
- 发布包验证
这部分有一定的特殊性,并不适用于所有的产品。这部分主要是对测试项目安装包进行验证。
●风险评估
通常可以用可能性、严重性,结合可控性、相关性几个指标来描述风险。
●风险应对
采取各种措施减小风险事件发生的可能性,或者把可能的损失控制在一定的范围内,以避免在风险事件发生时带来的难以承担的损失。
风险应对和控制的四种基本方法是:回避、控制、转移和自留。