软件测试理论
需求分析: 需求分析应该说是软件测试的一个重要环节,测试开发人员对这一环节的理解程度如何直接影响到接下来的测试任务的开展。 一般而言,需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等。 总得说来,做测试需求分析的依据有软件需求文档、软件规格书以及开发人员的设计文档等,相信管在软件开发过程中都有这些文档。
测试计划: 测试计划一般有负责人来编写,测试计划的依据主要是项目开发计划和测试需求分析结果而制定。测试计划一般包括以下一些方面: 2.1 测试背景: a. 软件项目介绍; b. 项目涉及人员(如软硬件项目负责人等)介绍以及相应联系方式等。 2.2 测试依据: a. 软件需求文档; b. 软件规格书; c. 软件设计文档; d. 其他,如参考产品等。 2.3 测试资源: a. 测试设备需求; b. 测试人员需求; c. 测试环境需求; d. 其他。 2.4 测试策略: a. 采取测试方法; b. 搭建哪些测试环境; c. 采取哪些测试工具以测试管理工具; d. 对测试人员进行培训等。 2.5 测试日程: a. 测试需求分析; b. 测试用例编写; c. 测试实施,根据项目计划,测试分成哪些测试阶段(如单元测试、集成测试、系统测试阶段,α、β测试阶段等),每个阶段的工作重点以及投入资源等。
测试设计: 3.1 测试设计主要包括测试用例编写和测试场景设计两方面。 3.2 测试场景设计主要也就是测试环境问题了。
测试环境的搭建: 4.1 不同软件产品对测试环境有着不同的要求。如C/S及B/S架构相关的软件产品,那么对不同操作系统,如Windows系列、unix、linux甚至苹果OS等;而对于一些嵌入式软件,如手机软件,如果我们想测试一下有关功能模块的耗电情况,手机待机时间等,那么我们可能就需要搭建相应的电流测试环境了。当然测试中对于如手机网络等环境都有所要求。 4.2 测试环境很重要,符合要求的测试环境能够帮助我们准确的测出软件问题,并且做出正确的判断。
测试执行: 5.1 测试执行又可以分为以下阶段: 单元测试→集成测试→系统测试→出厂测试,其中每个阶段还有回归测试等。 5.2 从测试的角度而言,测试执行包括一个量和度的问题。也就是测试范围和测试程度的问题。 比如一个版本需要测试哪些方面?每个方面要测试到什么程度? 5.3 从管理的角度而言,在有限的时间内,在人员有限甚至短缺的情况下,要考虑如何分工,如何合理地利用资源来开展测试。当然还要考虑以下问题: a. 当测试人员测试的执行不到位、敷衍了事时该如何解决? b. 测试效率问题,怎样提高测试效率? c. 根据版本的不同特点是只做验证测试还是采取冒烟测试亦或是系统全面测试? d. 当测试过程中遇到一些偶然性随机问题该怎样处理? e. 当版本中出现很多新问题时该怎样对待?测试停止标准? f. ……
测试记录: 6.1 缺陷记录总的说来包括两方面:由谁提交和缺陷描述。 6.2 一般而言,缺陷都是谁测试谁提交,可能为了保证所提交缺陷的质量,还会在提交前进行缺陷评估,以确保所提交的缺陷的准确性。 6.3 在缺陷的描述上,至少要包括以下一些方面内容: 序号 标题 预置条件 操作步骤 预期结果 实际结果 注释 严重程度 概率 版本 测试者 测试日期 以上是描述一个bug时通常所要描述的内容,当然在实际提交bug时可以根据实际情况进行补充,如附上图片、log文件等。 6.4 另外,一个版本软件测试完毕,还要根据测试情况出份测试报告,这也是所要经过的一个环节。
缺陷管理: 缺陷管理方面,都采取缺陷管理工具来进行管理,常见缺陷管理工具有Test Director、Bugfree等。
软件评估: 8.1 评估指软件经过一轮又一轮测试后,确认软件无重大问题或者问题很少的情况下,对准备发给客户的软件进行评估,以确定是否能够发行给客户或投放市场。 8.2 软件评估小组一般由项目负责人、营销人员、部门经理等组成,也可能是由客户指定的第三方人员组成。
测试总结: 9.1 每个版本有每个版本的测试总结; 9.2 每个阶段有每个阶段的测试总结; 9.3 一般要对整个项目做个回顾总结,看有哪些做的不足的地方,有哪些经验可以对今后的测试工作做借鉴使用,等等。
测试维护: 由于测试的不完全性,当软件正式release后,客户在使用过程中,难免遇到一些问题,有的甚至是严重性的问题,这就需要修改有关问题,修改后需要再次对软件进行测试、评估、发行。