成都名图科技有限公司.gyCo.,Ltd 项目测试操作流程及方法 准备: 日期: 2016-2-16 审核: 日期: 修订记录 日期 修订版本 说明 作者 成都名图科技有限公司.gyCo.,Ltd 事无大小,用心做事 目录 1 概述 3.2.6 用例执行 103.2.7 测试变更 103.2.8 测试报告 113.2.9 验收测试 113.3 软件测试注意事项 114 软件测试分类 134.1 模块测试 134.2 子系统测试 134.3 系统测试 134.4 验收测试 144.5 回归测试 144.7 Beta 测试 145 黑盒测试方法 145.1 等价类划分 155.2 边界值分析法 175.3 因果图 185.4 猜测误差法 185.5 随机数法 196 白盒测试方法 196.1 语句覆盖 206.2. 判定覆盖 206.3. 条件覆盖 216.4. 判定/条件覆盖 216.5 条件组合覆盖 227 标准文档 231 概述 本规范是软件测试的指导性文档,从总体上规范了软件测试过程中的测试理论、测试类型、测试方法、测试标准、测试流程以及参与软件测试过程的软件产品开发单位的职责,以有效保证软件产品的质量。 2 软件测试理论 2.1 什么是软件测试? 无论我们如何强调软件测试的重要性及其对软件可靠性的影响,都不过分。
在开发大型软件系统的漫长过程中,面对极其复杂的问题,人们的主观认识不可能完全符合客观实际,与项目密切相关的各人员之间的沟通与配合也不可能十全十美。因此,在软件生命周期的每个阶段,错误都是不可避免的。我们力求在每个阶段结束前,通过严格的技术评审,尽早发现并纠正错误;但经验表明,评审并不能发现所有的错误,在编码过程中不可避免地会引入新的错误。如果软件中的大部分错误在软件投入生产前没有发现并纠正,这些错误迟早会在生产过程中暴露出来。到那时,不仅纠正这些错误的成本会更高,而且往往会造成非常恶劣的后果。测试的目的就是在软件投入生产前,尽可能多地发现软件中的错误。目前,软件测试仍然是保证软件质量的关键步骤,它是对软件规范、设计和编码的最后评审。软件测试横跨软件生命周期的两个阶段。通常,在每个模块编写完成后,根据需要进行测试(称为单元测试)。 模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一阶段。在此阶段之后,软件系统还应进行各种综合测试,这是软件生命周期中另一个独立的阶段,通常由专门的测试人员承担。大量统计数据表明,软件测试的工作量往往占软件开发总工作量的40%以上。在极端情况下,影响人的生命安全的软件的测试成本可能是软件工程中其他开发步骤总成本的三到五倍。
因此,我们必须高度重视软件测试。千万不要以为写完程序,软件开发就差不多完成了。事实上,还有差不多同样多的开发工作需要完成。就测试而言,它的目标是发现软件中的错误。但是,发现错误并不是我们的最终目的,软件工程的根本目标是开发出完全满足用户需求的高质量软件。 2.2 软件测试的目标 下面的规则也可以看作是测试的目标或定义: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试计划是极有可能发现迄今为止尚未发现的错误的测试计划; (3)成功的测试是发现迄今为止尚未发现的错误的测试。 从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这与有些人通常想象的“测试是为了表明程序是正确的”和“成功的测试是没有发现错误的测试”完全相反。 正确理解测试的目标是非常重要的。测试目标决定了测试计划的设计。如果测试是为了说明程序是正确的,就会设计一些不容易暴露错误的测试计划;相反,如果测试是为了发现程序中的错误,就会努力设计最能暴露错误的测试计划。由于测试的目标是暴露程序中的错误,从心理学的角度看,程序员亲自去测试是不合适的。因此,在全面测试阶段,通常由其他人员组成测试小组来完成测试工作。
另外,还应该认识到测试永远不能证明程序是正确的,即使经过最严格的测试,程序中仍可能潜伏着未被发现的错误,测试只能发现程序中的错误,而不能证明程序中没有错误。 3 软件测试流程 3.1 软件测试流程图 3.2 软件测试流程细节 3.2.1 需求分析 测试人员和开发人员应参与需求评审和设计评审。阅读并审阅《需求说明书》、《系统界面原型》和《软件设计说明书》,与产品经理、项目经理沟通,了解并熟悉系统业务逻辑,根据系统功能复杂度、系统业务复杂度预估开发时间和有效测试执行时间,为项目总体规划、测试计划的制定提供参考和依据。通过文档分析,分解各个功能模块、各个功能点,为测试用例设计提供数据基础。测试人员了解项目需求变化。 重点需求如下: 1.功能测试要求 2.性能测试要求 3.压力测试要求 4.系统容量要求 5.系统安全性要求 6.安装测试要求 7.数据转换要求 8.兼容性要求 9.项目文档 1)产品沟通邮件 2)客户、售前人员、产品沟通记录 3)项目文档 4)业务背景资料 3.2.2 测试计划 根据需求文档和项目计划制定测试计划,测试计划旨在说明每个测试阶段的任务、人员分配、时间安排、测试点、工作规范等,测试计划从策略和方法上说明如何对测试项目进行规划、组织和管理。
测试计划完成后,应在项目组内部进行评审。测试人员会和项目经理一起根据软件需求制定并确认《测试计划》。 3.2.3 测试设计 在设计测试计划时,首先要分解测试内容。对于一个复杂的系统,通常可以分解成若干个独立的子系统。正确地划分这些子系统及其逻辑组件和它们之间的关系,可以降低测试的复杂度,减少重复和遗漏,方便测试用例的设计和开发。 有效地组织测试,从测试的角度将系统分析员的开发分析文档处理成功能点分析文档。重要的是要描述系统分解后每个功能点的验证描述,包括用什么方法测试,用什么数据测试,以及期望的测试结果。然后以功能点分析文档作为设计测试用例的依据。设计测试用例是关系到测试效果乃至软件质量的关键步骤,也是一件非常细致的工作。 根据具体北侧系统的分析和测试需求,逐步细化测试的范围和内容,设计具体的测试流程和数据,并将结果写成可分步执行的“测试用例”文档。每个测试用例须包括以下几个部分:(1)编号及模块(2)测试任务项及功能点(3)输入和使用的数据及操作流程(4)预期的输出结果(5)其他特殊的环境要求、顺序要求、时间要求等输出“测试用例”文档测试用例是为实施测试而提供给被测系统的一组特定的输入数据、操作或各种环境设定和预期结果。
解决测试什么、怎么测试、怎么测量的问题。根据用户需求分析说明和测试计划设计测试用例。发现需求和设计中的问题后,及时与项目经理沟通确认。 1)测试用例设计方法 a)测试用例设计方法有等价类测试、边界值分析、基于决策表的测试、基于因果图的测试、基于状态图的测试、基于场景的测试等。 b)设计测试用例时常用的设计方法是等价类测试和边界值分析。 2)测试用例操作步骤 a)设计编写测试用例时,根据需求文档和开发文档设计测试用例,评审通过后,使用该测试用例对被测系统进行测试。 b)测试过程中,如果用例描述不明确,需求发生了变更,或者用例设计有错误,应及时记录在统一的文档中,并在本轮测试完成后更新基线用例。 3) 测试用例选取标准 a) 测试用例的代表性:能够代表各种合理与不合理、合法与非法、边界与跨边界、极端的输入数据、操作和环境设定; b) 测试结果的可确定性:即测试执行结果的正确性是确定的或者可评估的; c) 测试结果的可重现性:即对于同一个测试用例,系统的执行结果应该是相同的。 3.2.4 测试软/硬件环境建设 根据需求文档提供的内容,与开发部门沟通,确定测试项目所需的软硬件环境,完成测试项目所需软硬件资源的准备,并确保软硬件资源得到满足。
3.2.5 测试数据准备 完成测试项目基础数据的准备,包括数据库连接、用户信息、用户角色权限、单位组织等与测试相关的信息和测试数据。 3.2.6 用例执行 a) 测试进入条件 项目开发团队在完成编码后,提交待测试的软件以及测试所需的各类设计文档和手册(附录1、2)。同时开发人员通过自测,至少确保程序能正常运行;相应功能在正常程序下能正常使用。测试通过冒烟测试,开始正式测试。 b) 项目测试阶段 测试人员根据测试计划和测试用例开展测试活动。测试一般分为两个阶段: (1)测试执行阶段:此阶段测试人员在测试出Bug后,向缺陷管理库JIRA提交缺陷,缺陷的描述至少应包括以下几个方面:标题、模块、重要性、优先级、操作说明; (2)回归问题单:开发人员修改Bug后,测试验证回归。 c) 测试出口标准 功能需求覆盖率100%。 所有用例全部执行,分析缺陷趋势收敛,剩余问题满足公司定义的指标。 测试过程中的缺陷率符合公司的系统测试质量标准。 3.2.7 测试变更 当需求变更或功能变更时,测试人员会评估测试变更所需的时间,并根据变更提出变更风险。 如果变更得到项目组批准,测试人员将按照上述流程进行变更测试。
3.2.8 测试报告 测试完成后,测试人员总结测试结果;测试主管评审测试结果,得出测试结论;测试小组进行测试分析评估,撰写《测试分析报告》。提交《测试分析报告》。归档所有文件。对于测试不合格的待测试软件,测试人员总结并提交测试错误报告给项目开发组。项目开发组确认测试错误报告,有争议的问题可交由上一级技术负责人确认、仲裁;项目开发组对测试错误报告进行逐项修改,修改完成后,待测试软件及错误修改情况提交测试小组进行回归测试。待测试软件测试通过后,项目评估完成。编写《用户手册》(帮助文件)。 3.2.9 验收测试 a) 项目经理与实施人员沟通验收事宜。 b) 实施人员按照《安装维护手册》在客户指定的环境中安装、调试产品,并将合同约定的文档和源程序移交给客户。 c) 实施人员对客户进行系统操作方法培训。 d) 客户试用系统开展业务,测试人员收集客户反馈信息。 e) 测试人员在验收时发现或收集用户反映的缺陷并通知项目经理,同时将缺陷记录在JIRA中并分配给合适的开发人员。 f) 开发人员分析缺陷原因并解决,将缺陷的解决方案及解决状态更新JIRA。修改后的代码交给实施人员部署,等待用户验证,直至交付。
3.3 软件测试注意事项 按照软件开发规范,仔细检查软件界面是否符合要求。(各个子界面同样如此)其中,要注意提示信息、软件开发者信息是否正确。小图标是否符合要求。检查菜单中的各项功能、功能按钮是否可以正确使用。 根据软件开发规范、用户需求和软件详细设计设计测试用例。(主要依据边界值法、等价类划分法)。 对于功能界面,要注意与功能相关的信息是否显示、显示位置是否正确。 对于数据输入界面,要注意文本格式、数字与文本的区别。信息是否能正确保存。 对于数据查询(显示)界面,要注意显示的信息是否正确、完整。是否能正确查询。 对于打印功能,要注意打印的报表是否正确。(包括各类报表信息、数据信息和报表字体等)。