q 掌握QA、QC的概念q 掌握软件测试过程q 了解软件测试各阶段的目的和主要内容软件质量管理分为q质量控制(QC)q质量保证(QA)质量控制(QC)q目的:为了找出缺陷并且解决缺陷 q包括的事务:q测试(Testing)q跟踪(Tracking)q监督(Monitoring)测试测试跟踪跟踪监督监督质量保证(QA)q目的:预防缺陷和错误的发生q包括的事务:q制定质量计划q进行审查q走查(Walkthrough)q阅读性审查(Reading)q设立审查机制(Inspection)软件QA和QC所进行的事务 里程碑q 定义:一个阶段完成的指针,并且标志着下一个阶段的开始 q 软件测试里程碑示例:里程碑 说明预 Alpha测试 为Alpha测试所做的准备工作,在这个时间点上会进行产品审查以确定产品是否可以达到Alpha标准 Alpha测试 当项目的核心功能已经完成,产品的其他功能大致上都可使用时,在项目开发公司内部所作的测试该过程往往在系统测试后进行 预Beta测试 为Beta所做的准备工作,进行一些项目审查,确定产品是否达到可进行Beta测试的标准 Beta测试 Beta阶段的产品不能有重大的软件缺陷存在,所有的功能都已完成,这包括了核心功能和需求功能。
产品已经可以提供给用户进行测试软件测试过程q结构测试(Construction Testing)q准备QA的人力资源与人员培训q准备所需的软硬件设施q编写测试计划q设计测试用例q完成测试环境的配置,如测试工具的配置等q系统测试(System Testing)软件测试在开发各阶段中的工作-分析设计阶段 q需求说明书审查 q概要设计说明书审查 q详细设计说明书审查 q软件编码规范审查 需求说明书审查(1/2)q 需求说明书框架I引言A.系统参考文献 B.整体描述 C.软件项目约束II信息描述A.信息内容表示 B.信息流表示 i.数据流 ii.控制流III功能描述A.功能划分 B.功能描述 i.处理说明 ii.限制/局限 iii.性能需求iv.设计约束 v.支撑图 C.控制描述 i.控制规格说明 ii.设计约束IV行为描述A.系统状态 B.事件和响应V检验标准A.性能范围 B.测试种类 C.期望的软件响应 D.特殊的考虑VI参考书目VII附录需求说明书审查(2/2)q 需求说明审查内容编号审查项审查结果Y/TBD/N/NA清晰性1系统目标是否已定义2是否对关键术语和缩略语进行定义和描述3所使用的术语是否和用户使用的一致4需求的描述是否清晰、不含糊5是否对整套系统进行功能概述概要设计说明书审查(1/2)q 设计说明书框架 I工作范围 A系统目标 B运行环境 C主要软件需求 D设计约束/限制II体系结构设计A数据流与控制流 B导出的程序结构 C功能与程序交叉索引III数据设计 A数据对象与形成的数据结构 B文件和数据库结构 i文件的逻辑结构 ii文件逻辑记录描述 iii访问方式 C全局数据 D文件/数据与程序交叉索引IV接口设计 A界面设计说明 B界面设计规则 C外部接口设计 i外部数据接口 ii外部数据或设备接口 D内部接口设计规则V每个模块的过程设计A算法描述 B接口描述 C设计语言描述 D使用的模块 E内部程序逻辑描述 F注释/约束/限制VI运行设计A运行模块组合 B运行控制规则 C运行时间安排 VII出错处理设计A出错处理信息 B出错处理对策 i设置后备 ii性能降级 iii恢复和再启动 VIII安全保密设计IX测试部分A测试方针 B集成策略 C特殊考虑X特殊注解XI附录概要设计说明书审查(2/2)q 概要设计说明书审查的内容编号审查项审查结果Y/TBD/N/NA清晰性1是否所设计的架构、数据流、控制流和接口,都被清楚的表达了2是否所有的假设、约束、策略及依赖都被记录了3是否定义了总体设计目标完整性4是否所有以前的TBD(待确定条目)都已经被解决了详细设计说明书审查内容编号审查项审查结果Y/TBD/N/NA清晰性1所有模块或过程的目的是否已经被文档化2包括了数据流、控制流和接口的模块设计是否已清晰的说明完整性3是否已定义和初始化所有的变量4是否已描述了模块的所有功能软件编码规范审查(1/2)q源程序文档化 q命名规范 q注释q标准书写格式 q数据说明 q变量说明的次序应当规范化q声明语句中变量安排有序化q使用注释说明复杂的数据结构软件编码规范审查(2/2)q 语句结构 q 界面设计q 对所有的输出数据都要进行检验,识别错误的输出,以保证每个数据的有效性q 对所有的输入数据都要进行验证,识别错误的输入,以保证每个数据的有效性q 检查输入项的各种重要组合的合理性,必要时报告输入的状态信息q 输入的步骤和操作尽可能简单,并保持简单的输入格式q 输入数据时,应允许使用自由格式输入q 要提供输入缺省值 软件测试在开发各阶段中的工作-开发阶段q单元测试 q集成测试q确认测试q系统测试q验收测试单元测试的工作q 单元测试又称模块测试,是针对软件设计的最小单位-程序模块,进行正确性检测的测试工作q 目的在于发现各模块内部可能存在的各种差错q 单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平等的独立进行单元测试 模块模块出错处理出错处理模块接口模块接口局部数据结构局部数据结构边界条件边界条件独立路径独立路径全局变量定义是否统一调用参数是否匹配 数据定义、使用循环边界输入边界关键路径重要路径非正常输入异常系统自身的异常单元测试的步骤集成测试(1/3)q在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装 q组装时需要考虑的问题:q把各个模块连接起来的时候,跨模块接口的数据是否会丢失q一个模块的功能是否会对另一个模块产生影响q各个子功能组合起来,能否达到预期的父功能q单个模块的误差累积起来,是否会放大,形成不能接受的错误集成测试(2/3)q模块组装方式 q一次性组装方式q增值组装方式q集成测试的组织和实施 q采用何种系统组装方法来进行集成测试q集成测试过程中连接各个模块的顺序q模块代码编制和测试进度是否与集成测试的顺序一致q测试过程中是否需要专门的硬件设备集成测试(3/3)q集成测试完成的标志:q成功的执行了测试计划中规定的所有集成测试q修正了所发现的错误q测试结果通过了专门小组的评审其它q确认测试:验证软件的功能和性能及其它特性是否与用户的要求一致 q有效性测试q软件配置复查 q系统测试:将通过集成测试的软件,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际或者模拟运行环境下,对软件系统进行一系列测试 q验收测试:以用户为主的测试 本章总结q质量控制q质量保证q软件开发的过程q软件测试在开发各阶段的工作。