首页 理论教育软件测试中的关键问题

软件测试中的关键问题

【摘要】:软件测试主要涉及以下5个方面的问题:1.测试执行者在软件产品的开发过程中,通常存在软件开发者和软件测试者两种角色。一般来说,开发机构负责对软件产品进行单元测试,而系统测试则由专门的测试机构或独立的测试人员进行。

软件测试主要涉及以下5个方面的问题:

1.测试执行者

在软件产品的开发过程中,通常存在软件开发者和软件测试者两种角色。软件开发人员通过写代码而形成产品。其工作主要包括分析、设计、编码、调试或者文档编制。软件测试人员是通过测试来检测软件产品中存在的错误和缺陷。其工作主要包括编写测试用例、构造测试、执行测试及评估测试结果。一般来说,开发机构负责对软件产品进行单元测试,而系统测试则由专门的测试机构或独立的测试人员进行。

2.测试内容

尽管软件测试的主要内容是对程序源代码的测试,但是表现在程序中的故障,并不一定都是编码所引起的,很可能是详细设计、概要设计阶段,甚至是需求分析阶段的问题所引起的。冈此,需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档,包括需求规格说明分析、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。

3.测试时间

在现实中,软件模块开发结束之后就可以进行测试,也可以推迟至各模块装配到单个执行程序中再进行测试。实践表明,测试开始的时间越早,测试执行得越频繁,所带来的整个软件开发成本的下降就会越多。冈此,测试的一个极端是每天都进行测试,一旦软件的每个模块开发出来之后就对它们测试,这样尽管会延缓早期开发的进度,但是却能够大大减少将所有模块装配到项目中以后出现问题的可能性。(www.chuimin.cn)

4.测试方法

软件规范说明一个软件要做什么,而程序实现则规定了软件应该怎样做。对软件进行测试就是根据软件的功能规范说明和程序实现,利用各种测试方法,生成有效的测试用例,对软件进行测试。

软件测试的方法和技术多种多样,根据不同的角度,将这些方法可以分为不同的类别。比如:根据测试对象是否被执行的角度,可以划分为静态测试和动态测试;根据软件的开发过程,可以分为单元测试、集成测试、确认测试、验收测试和系统测试;根据是否关心软件的内部结构和具体实现过程可以划分为黑盒测试和白盒测试;根据测试测试的策略,可以将测试分为功能性测试、结构性测试、集成与系统测试、面向对象的测试等。

5.测试标准

从现实和经济的角度来看,对软件进行完全测试不太现实,所以决定什么时候停止测试是一件非常困难的事情。测试完成的传统标准是分配的测试时间用完了,或完成了所有的测试又没有检测出故障,但这两个完成标准都没有什么实用价值。在实践中,实用的完成标准应该基于以下几个凶素:①成功地采用了具体的测试用例设计方法;②每一类测试的覆盖率;③故障检测率低于指定的限度,基于故障检测数量的标准必须注明故障严重性程度;④检测出故障的具体数量或消耗的具体时间。