软件测试流程一般按照以下几个阶段进行:

1.需求分析阶段阅读需求,理解需求,主要是对业务的学习,分析需求点,并参与需求评审会议。

   如何进行需求分析呢?

    (1).确认需求(业务功能、辅助功能、数据约束、易用性需求、编辑约束、参数需求、权限需求、性能约束)

        1、业务功能:与用户实际业务直接相关的功能或者细节

        2、辅助功能:辅助完成业务功能的一些功能或者细节,例如:设置过滤条件

        3、数据约束:功能的细节,主要是用于控制在执行功能时,数据的显示范围,数据之间的关系等

        4、易用性需求:功能的细节,产品中必须提供,便于功能操作使用的一些细节,例如:快捷键等

        5、编辑约束:功能的细节,在功能执行时,对输入数据项目的一些约束条件,例如:只能输入数字等

        6、参数需求:功能的细节,在功能执行时,需要根据参数设置不同,进行不同处理的细节

        7、权限需求:功能的细节,在功能执行的过程,根据不同的权限进行不同的处理,不包括直接限制某个功能的权限

        8、性能约束:功能的细节,执行功能时,必须满足的性能需求

    (2).场景分析

        1、考虑场景的调用者:考虑每一个场景提供的服务是供哪些外部模块或者系统调用的,找出所有调用者。调用前提,约束都要考虑。每一个调用都可以考虑成一个大的业务流程(一般和外部有交互的业务出错率比较大,需要重点关注)

        2、考虑系统内部各个场景之间:形成内部业务流程,需要分析每个场景之间的约束关系,执行条件,组织出各种业务流程图

    (3).挖掘隐形需求

        这需要测试工程师的经验积累:1)常用的或者规定的业务流程 2)各个业务流程分支的遍历 3)明确规定不可使用的业务流程 4)没有明确规定但是应该不可使用的业务流程 5)其他异常或者不符合规定的操作

 

2.制定测试计划:主要任务是编写测试计划,参考软件需求规格说明书、项目总体计划,内容包括测试范围(来自需求文档)、进度的安排,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定,一般有测试负责人编写,当然我们也会参与相关的评审工作。

 

3.测试用例设计,评审与编写:测试用例是测试工作最核心的模块,在执行测试之前,首先必须完成测试用例的编写。测试用例是指导执行测试 ,帮助证明软件功能或者发现软件缺陷的一种说明。用例设计好之后需要进行评审,避免出现设计遗漏,确认细节规则和测试结果的准确性。

   如何进行测试用例的设计呢?

     编写测试用例之前我们需要对项目的需求有清晰的了解,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心里有数,我们不仅要了解常见的测试用例编写方法,同时需要了解被测软件的设计、功能规格说明、用户试用场景和程序的结构。

    1、测试需求分析:按照项目需求规格说明书。对需求进行分析,通过自己的分析,理解,整理成为测试需求,清楚分析出被测试对象有哪些功能,明确测试用例与需求的关系。

    2、业务流程分析:需求分析完成后,明确各个功能的业务处理流程,不同的功能点作为业务的组合。复杂的测试用例设计前 ,可以先画出软件的业务流程,明确主流程、条件备选流程、数据的流向、关键的判断条件。

    3、测试用例设计:功能测试用例,应尽量考虑边界、异常的情况,以便发现更多的隐藏问题。设计用例的常见方法有:1)等价类 2)边界值 3)因果图 4) 判定表 5) 状态迁移 6) 正交实验 7) 场景法 8) 错误推断

    4、编写完成之后自我检查与项目内部评审:1)用例本身描述是否清晰,语言准确,是否存在二义性 ;2)用例内容是否完整,步骤和输入与预期结果是否清晰;3)用例中的数据是否恰当,准确;4)用例执行的效率;5)用例是否完全覆盖需求;

    5、测试用例的更新完善:用例编写好之后要不断完善,在需求更改或者功能新增时,对应用例必须进行修改更新;在测试过程中发现用例设计考虑不周,需要对用例进行修改完善。

 

4.测试阶段:首先搭建测试环境,准备测试数据,进行冒烟测试,冒烟测试通过后,按照测试用例进入正式测试,有效的测试执行可以将测试用例发挥最大的价值。测试用例规范执行有助于更好的发现代码中存在的缺陷。在用例执行过程中,包含了功能测试阶段,缺陷跟踪阶段,回归测试阶段,系统测试阶段,验收测试阶段等。按照已经评审过的测试用例依次执行,执行过程中及时记录问题,将问题及时提交到缺陷管理系统,跟踪缺陷。等修复后进行回归测试,确认修复后关闭缺陷。

 

5.测试评估阶段:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug. 出测试报告,可以上线,否则终止上线。测试报告是把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件存在的质量问题提供依据,同时为软件验收和交付打下基础。测试报告是测试阶段最后的文档产出物。一般包含1)目的 2)测试背景 3)环境与配置 4)测试概要 5)测试结果-BUG趋势图,BUG严重程度,BUG引入原因,BUG状态分布 6)测试结论 7)经验教训