软件测试和软件开发一样,都遵循软件工程的原理;测试和开发是密切相关的;测试活动是贯穿于软件项目开发的全过程的,和开发活动交互开展。
软件需求完成后,需要进行需求的评审,此时测试人员可以参与需求的评审,当需求确定后,测试人员可以开始进行系统测试方案以及计划的制订。
软件项目总体设计方案完成后,测试人员可以开始进行集成测试方案以及计划的制订。
详细设计完成后,测试方可以开始进行模块测试方案以及计划的制订。
单元测试和编码一般是同步的,由开发人员自己完成的。
整个模块开发完成后,测试人员开始进行模块测试,当然在这之前,所有的模块测试用例已经准备完毕。
模块测试后是集成测试和系统测试。
软件运行维护期间则要对运行期间发现的问题进行回归测试。
这些模型将测试活动进行了抽象,明确了测试与开发之间的关系,是测试管理的重要参考依据。常见的软件测试模型有:V模型、W模型、H模型、X模型(不成熟)。
发展自软件开发的瀑布模型,说明了基本的开发过程和测试行为;明确地标识了测试过程中存在的不同级别以及测试阶段和开发过程各阶段的关系;但其有局限性,包括测试对象只有程序代码以及测试作为编码后的活动,没有体现”尽早测试”的原则。
其从V模型演化而来,在V模型中增加与软件各开发阶段同步进行的测试。其强调测试伴随着整个软件开发周期,测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。其局限性包括W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代以及变更调整。
测试活动独立,贯穿于整个产品周期,与研发流程并发。循环:测试点准备就绪就可以开始执行测试。测试可以尽早进行,可以对被测对象分层次、反复测试。
模型要能指导实际工作,H模型本身并无太多的可执行的指导意义。
测试过程定义了企业在产品开发过程中在设计、开发与实现、维护、退出等阶段与测试相关活动的内容、流程以及规范。
测试过程指导项目如何开展各项测试活动,以及各项活动的输入与输出;约定活动中所涉及的角色与职责,规范各个活动的内容和规程,以及所使用到的统一的模板、表单、指导书和检查单。
定义测试过程的目的是给本公司在产品开发过程中测试相关的活动提供指导,确保产品可以真正满足用户的要求。
软件项目中测试和开发是相互配合同步推进的,为软件项目的复杂性被测对象往往不断发生变化,实际项目中测试与开发的关系更加复杂,虽然复杂,测试工作的开展是有自己的过程要遵循的。
虽然在一个项目的研发过程中,有很多种不同的测试类型,不同的测试阶段,但是对单次测试来说,存在一个一般性的过程。
1.需求分析阶段:收集相关资料,学习业务(测试对象),分析测试需求点。
2.测试计划阶段:测试主管组织编写《测试计划》,该文档指明测试范围、方法、资源以及相应测试活动人员时间进度安排。测试计划需要进行评审,测试计划一旦开始执行,就要定期监控计划的执行情况。
3.测试设计及开发:测试设计一般由对需求熟悉的资深的测试工程师设计,为每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。测试开发主要完成对测试用例编写、测试数据准备、测试环境准备。测试设计和测试用例完成后需要进行评审。
4.测试执行及报告:执行测试用例,及时提交有质量的Bug和测试阶段报告反馈测试情况。
5.软件评估报告及批准:根据测试结果给出对软件的整体评估,以及是否通过测试的建议。一般决策部门会根据这份评估报告决定产品是否可以发布。
6.测试总结及资产归档:结项阶段对整个过程进行回顾总结,将项目相关资源进行整理归档。
创建软件测试流程注意事项:从实际情况出发,优化流程,解决问题;重点考虑四个问题:哪些测试要做、谁做、什么时间做、如何做
对当前存在的问题进行收集、诊断分析;根据实际情况建立新的流程;流程发布和试运行;促进流程的执行,收集问题;流程更新和发布。
测试执行是按照测试计划去执行测试活动;测试过程执行是严格按照测试的过程去开展测试活动。需要注意的是,测试过程创建后并不是一成不变的,要根据实际实践情况不断改进和完善,进行修订后要及时进行过程发布。一般在测试过程执行中要设置一定的机制,去保证测试人员有按照测试过程开展测试活动,一般有两种方法:QA人员对项目的监督和指导与组织级审计。
测试流程在每一轮执行完毕之后,根据执行情况对流程进行更新和完善。用好的实践去更新完善流程。
测试过程中涉及的文档等资产包括:测试计划文档、测试方案文档、测试用例、测试报告、测试缺陷库以及其他包括:
新开发或引入的测试工具、测试工作会议记录测试计划、测试方案、测试用例的评审报告、测试总结、测试原始数据以及度量数据、测试日志:每天测试日程记录、周期性测试报告、任务报告:任务完成情况报告。
描述为完成软件特性的测试而采用的测试方法的细节。其主要内容:概述、被测对象、应测试的特性、不被测试的特性、测试模型、测试需求、测试设计。
测试用例表描述测试用例:测试项目、用例编号、用例级别:测试用例重要程度、用例可用性、输入值、预期输出、实测结果、特殊环境需求[可选]、特殊测试步骤[可选]。
描述测试结果的文档,其主要内容:概述、测试时间、地点、人员、测试环境、测试结果统计分析、测试评估、测试总结与改进、测试缺陷列表。
描述测试缺陷,其主要内容:缺陷简述、缺陷描述、缺陷级别、缺陷分析与对策。