软件测试过程分解

发表于:2011-4-28 10:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李征宇    来源:51Testing软件测试网采编

分享:

  拿到一个软件进行测试,需要一系列的动作、计划、文档,来完成测试任务。当然测试不是一个很简单的过程,不是说随便测测就可以满足用户或者开发团队的需要。测试有一定的过程,需要采用各种测试技术、方法。下面我们就说明这个过程。

  测试需求阶段:

  我们首先要对软件有个大体的了解:这个软件是什么行业的、涉及什么领域、采用什么技术、规模有多大、实现了什么功能等。这些问题可以通过口头的询问,也可以通过详细读取项目的用户需求说明书与用户手册来得到。

  进行了这些大体的了解,我们需要根据实际的情况、限制制定测试的范围。这里我们可以先按照系统功能实现的各种角度进行业务功能模块风险等级的划分。评判标准如下:

  1. 功能类型〔A高级-数据计算/验证;B中级-数据修改;C低级-数据显示〕

  2. 业务影响〔A高级-合法性;B中级-错误信息;C低级-无〕

  3. 使用频度〔A高级-非常频繁/大量;B中级-经常;C低级-极少〕

  4. 受影响客户的数量〔A高级-大量/重要;B中级-组/群;C低级-很少

  总之,对于核心流程、业务功能点,它的风险等级总是比较高的,这就决定在进行测试的时候他是优先级高的。然后我们就可以通过客观原因的限制最终指定我们的测试的范围。这些客观原因包括:时间、资源、人员限制、成本等。当然,还有些特殊的需求会影响我们的测试范围,比如:用户或开发组要求着重测试一个不是很重要的模块等。但是一般情况下,我们都是优先所有资源对优先级高的模块进行测试,然后再测试优先级别低的模块。当然测试的充分程度也是我们需要考虑的问题,我们不可能进行完全测试,但是我们究竟要测的有多细使我们事先应该有考虑的,即使不写在文档上,也要贯彻到测试组长与测试工程师的头脑中。

  在划定测试的范围后,我们就需要选择测试的测试的实现方法,我们是在真实系统测试还是搭建测试环境?我们要搭建环境是需要仿真呢还是只要程序能运行不影响测试就行了。这也跟实际的情况有关。当然能够在真实环境进行测试是最好的了,比较真实。但是有时候往往不行,比如银行系统等。所以需要搭建环境的情况会很多。一般主要测试软件的可用性,环境不用很苛求。但是如果需要硬件很多或者测试其性能、可靠性等,就需要比较接近真实的环境了。

  然后我们就可以根据用户手册形成我们的需求文档了。测试需求和测试案例很像,只是颗粒度粗细的问题,而且测试需求没有数据,测试案例就要提供数据了。

  形成基本稳定的需求文档后,测试介入需求评审,以便了解需求的相关内容以及测试工作的可行性分析(软件可测试性)。项目经理制定项目计划,测试部门测试经理/测试团队负责人制定测试计划,项目组测试人员阅读相关测试需求文档,如果存在疑问或者发现需求缺陷及时与需求人员沟通,如果是需求缺陷,可以将相关问题可以记录到bug管理工具以便进行跟踪。

  设计阶段:

  在设计阶段,研发部门进行软件的概要设计、详细设计以及必要的单元测试工作;测试部门进行功能、性能测试用例的设计(用例不仅仅包括用例本身,还包括测试数据),测试所需软、硬件资源申请、准备。

  但是在实际上测试案例的编写是这一阶段的主要内容。首先我们要通过各种测试方法来使我们的案例的编写更加可行与有效。对于庞大的系统,我们往往无从入手。在这种情况下我们要先找到突破口。比如:象erp这种软件,流程性比较强,显然一个一个模块测试是不明智的,他的模块之间需要有数据流的流动才能运转,这是可以采用场景法确定数据流的大致情况。有些软件有明确的但是复杂的各种输入(原因),他们会导出许多复杂的输出,这个时候应用因果图方法理清因、果之间的关系。但是光用这两个方法显然是不够的,针对每一个输入,有无数种情况,我们要用等价类的方法把无限测试变为有限测试。当然边界值、错误测试都是很有用也必要的测试案例的补充。对于数字类型、日期类型等域的测试要格外注意。整个测试过程中应该检查错别字与提示的格式风格是否统一。对于一个软件,如果没有很明确的流程,也不需要使用因果图、场景法等方法。但是它依然需要等价类、边界值与错误输入等技术。对于这类软件我们可以分模块来进行功能的“扫菜单”方式组织案例的编写。

  在这个测试中,查询是一个比较特殊的地方。因为如果做到完全测试,那是肯定不可能的。所以我们要分析比较常用的查询条件与查询符号的组合,并问询用户或相关人员经常使用的查询条件,来进行部分测试。

  实际上设计案例也是测试内容的一部分,通过各种方法和经验可以找到可能的测试步骤,设计流程与数据。设计案例也是整个测试最关键的部分,在进行测试案例的设计的时候,要贯彻我们在前期进行需求、设计的决定。而且这个测试案例库可以被复用,在测试过程中也可以不断进行补充。在设计案例的时候,还要注意各个模块之间的联系,比如有些软件模块中,进行了参数设置后,导致添加、修改模块界面中相应下拉菜单的内容消失。这就是一个模块的操作影响了另一个模块。

  当然在设计案例的时候易用性也要作为功能测试的一个重要部分,尤其是对于有些行业,如政府机关、金融等,易用性都很重要。还要根据行业的不同突出一些测试用例,如安全性、可靠性等。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • zzl2915002
    2011-4-29 09:30:24

    在设计阶段怎么没有编写集成测试计划呢,系统测试计划呢,

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号