软件测试:实践者方法
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1.2 软件测试过程活动

3.1.2.1 测试策划

测试策划包括组织级策划和项目级策划。组织级策划由组织的质量方针和质量目标定义,纳入组织级过程。项目级策划则是基于确定的测试项目,从测试目的、质量目标、技术体制、软件架构、操作使用、运行环境、使用场景等进行多维度、多层次、多视角的正向和逆向分析,制定测试策略,确定测试要素、测试级别、测试类型、测试方法、通过准则、测试环境、资源配置、质量保证、配置管理、风险控制、计划管理等目标、内容和要求,指导最佳测试实践。

1.测试策略

测试策略是基于测试过程模型,依据特定的约束条件,确定关键过程和主要风险,制定测试目标,确定测试流程,组建测试团队,对测试生命周期过程的期望值及风险进行管理,实现开发方、测试方、顾客和用户等利益相关方的一致性目标。

2.风险分析

软件测试为软件系统验收交付、鉴定定型、上线运行、市场投放、司法鉴定、著作权登记等提供支撑,为用户建立信心。风险分析是在测试策划过程中,分析并识别软件测试过程中的资源、技术、环境、数据等风险,确定风险等级,制定基于风险的测试策略并实施风险防控措施,规避风险。

3.测试需求分析

基于系统规格、需求规格、设计文档、用户文档,依据相关标准规范、产品规范及相应规则、惯例、约定,分析确定测试需求,建立软件需求与测试需求的映射关系,以及正向和逆向的追踪关系,确定测试充分性要求及准则,确保测试需求覆盖软件需求。

4.测试大纲编制

软件测试大纲用于确定并描述软件的测试目的、测试范围、测试策略、测试级别、测试类型、测试方法、测试环境、计划进度、安全保密、知识产权保护、配置管理、质量管理、风险管理等内容。GB/T 9386—2008规定了软件测试大纲的格式及主要内容,为测试大纲编制构建了一致的对话平台。

3.1.2.2 测试设计

1.测试用例

测试用例是对某一特定测试项设计的一组测试输入、执行条件及预期结果,用于验证软件是否满足确定的需求。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。测试用例设计将在相应章节详细讨论,此处不赘述。但需要强调的是,测试用例及测试资产重用对于测试效率提升和测试质量保证具有重要意义。

2.测试代码开发

测试设计过程中,需要开发必要的测试代码,尤其是单元测试和集成测试。设计驱动模块(主程序),负责接收测试数据,并将其传送至被测模块,完成顶层模块及不能独立运行模块的测试。设计桩模块,为被测模块设计模拟其下级模块功能的替身模块,代替被测模块接口,接收或传递被测模块数据,解决被测模块的调用和返回问题。一般情况下,只要设计一个伪模块(只有入口和出口而无其他语句的模块)即可。对于逻辑驱动测试,为考察程序的执行路径,往往需要在程序中插入显示或打印语句,通过程序输出的数据流分析程序执行路径。

3.测试数据准备

为验证软件运行的正确性,测试执行前需要准备一组已经验证的数据,尤其是验收测试过程中,需要准备相关试验、使用、校核及环境等真实数据。对性能测试所需要的大批量测试数据,可以设计数据发生器,自动生成测试数据。另外,还需要一些为使被测软件正常运行所需的初始化数据和软件用户的典型数据。

4.测试脚本编制

基于测试设计、测试方法、测试资源、测试风险等约束,确定测试用例执行顺序,包括操作流程、测试输入、测试输出及期望结果,执行测试时,需要录制和编辑测试脚本。测试脚本是一组由测试工具执行、具有正规语法的测试操作指令和/或数据,以实现测试用例、导航、测试设置及测试结果比较。通常,测试脚本以文本形式保存或输出。

3.1.2.3 测试执行

在确定的环境中,执行测试用例,驱动测试,录取、分析并判断测试结果。若采用手工测试,则需要根据实际测试流程,逐一执行每个测试项,记录每一步的测试结果,当测试过程出现异常时,可以硬拷贝出错的显示画面,打印测试输出,如曲线、表格等。

当测试环境发生异常时,同步记录测试环境的异常情况,采取措施,对测试过程的正常或异常终止情况进行核对,根据核对结果,对未达到测试终止条件的测试用例,停止测试,分析原因,再行对是否继续进行测试做出决策。如果采用自动化测试工具,则由测试工具回放测试脚本进行测试,自动记录、比对和分析测试结果,生成测试结果统计图表和缺陷报告。

3.1.2.4 测试总结

基于测试过程监测数据,分析评价测试工作是否按照测试策划的流程,组织完成测试大纲规定的测试内容,是否达到测试目标;对测试大纲、测试说明的变化及受控情况,因测试异常终止未实施的测试情况,无法解决的测试问题,测试安排或测试执行能力匹配性等进行分析说明,对测试的规范性、符合性、完备性及测试质量进行评价,如果存在偏差,则需要对测试的充分性、有效性进行分析,实施并评价改进措施。列出被测软件的功能实现情况、性能达标情况、质量度量指标及问题报告单,分析被测软件与需求规格的符合性,对软件缺陷的严重性等级和缺陷处理的优先级进行划分,分析软件缺陷的严重性及分布情况,编制测试报告,对被测软件是否通过测试给出明确结论。