看完前面两章,你应该对软件和这个东西是怎么弄出来的有点了解了.

下面可以进入真正要说的内容.

第一个问题会是:什么是软件测试?(注意软件二字,测试并不是软件行业独有的)

其实答案在第一章里已经说过了: 测试是软件生命周期的一部分.

稍微站高一点,从软件工程的角度来说,测试只是软件开发过程里的一个阶段.

而在你老板的眼里,测试就是找bug,或者说软件有没有什么问题?

不管怎样,我们来看看按照常规流程来看看这个阶段该做些什么.一般我们做一件事的步骤,大致都是这样的:计划,设计,执行,校准(我看到过有人介绍测试流程的时候加了个实现进来,不知道是什么意思).也就是PDCA,在ISO里经常提到这个东西.

注意:上面所说的将测试和一般我们做一件事来进行比较,其实这个还可以延伸到很多地方(包括后面).软件开发活动被称为软件工程,其本身吸取了人们日常生活的很多经验和总结.如强调实践,强调前一阶段对后一阶段的指导作用等.

我一向很反感概念性的东西,但是测试涉及到的名词也不少。其中几个重要的,我在这简单的提一下,方便刚入门的朋友学习(下面都是自己的一些理解,可能不是很严谨,大家凑合着看):

一 测试方法:

白盒:代码级的。
黑盒:敲敲点点。
大家知道,软件开发就是用一些语言(C/C++,C#,VB,JAVA,Delphi等)写一些代码,然后通过特定的编译器将这些代码编译为可执行程序或DLL。白盒和黑盒的区别就在于你的测试对象,是代码还是已经编译过的程序。

二 测试类型:

功能:软件是否做了它该做的事?
性能:它做事的能力怎么样?
现在大部分企业的需求都会把功能清清楚楚的列出来,所以这个不说了。对性能来说一般人会想到很多用户同时使用时的速度(并发时响应时间),特别是现在web大行其道。其实性能包括的东西比较多,单用户也有性能问题,性能还包括软件在长时间运行时的情况(有一些内存泄露的问题在这时会暴露出来)。

三 测试阶段

单元:目前来说大部分企业都是使用的面向对象的设计/编程思想,类是面向对象的核心。而单元测试的对象就是类的方法(单元=方法)。(这个概念也可以扩展,比如单元=模块或单元=过程)。
集成:稍微有点规模的软件开发过程中,系统分为不同的模块,完成之后需要整合。每个模块之间很有可能有通过接口互相调用的情况,而这个就是集成测试的对象。集成测试有自顶向下和自底向上两种。但是大部分小型企业都没有把这一块单独提出来。比如现在流行版本控制(如VSS等),各模块的协同工作性融合在Daily Build(日构建)或系统测试中检查。
系统:对已经集成好的软件系统进行彻底的测试。大家做的最多的一种测试。一般对照需求和测试用例,整体性能等也都在这里做。
验收:软件在投入使用之前的最后测试。规定是需要用户到场。现在好象做这个的企业也不多,除了很大的。
回归:对软件进行修改之后进行的测试。做IT最怕的就是需求变动,而这个又不能避免。几万甚至几十万行代码下来,如果修改了其中几句,谁能保证以前正确的地方不出错?回归测试是极其让人厌烦却又必不可少。好在我们现在有一些工具可以帮忙。
大家可以找关于V模型的文章看看测试阶段和整个软件开发的关系,这样理解起来会更深刻。

更多的概念参考软件测试中的基本词汇软件测试的14种类型
上面所讲的计划,设计,执行,校准对测试方法或测试类型或测试阶段都是适用的。
下一章会讲测试中涉及到的其它概念。

系列文章的目录见这里
posted on 2006-11-15 11:25  有些伤感  阅读(824)  评论(0编辑  收藏  举报