|
假期替一家小软件公司写程序,这是一个基于j2ee架构的web应用程序,它实现的功能是从数据库中取数据,然后是在浏览器显示出来(简单的描述,)。
所以的实现是在第三方的中间件上实现的(如下图)。
---------------
- 应用程序 -
---------------
- 第三方中间件 -
- (例如WATool) -
---------------
- weblogic - jdbc驱动程序 -
---------------
- jdk -
---------------
我做的工作是,在一期工程的基础上,对有些页面显示和功能进行修改。我做其中的几个模块,现在改完了,老板就叫我们按照需求说明书,随便写几个测试用例,自己测试一下就算完事。我算是第一次切身体会到“国内测试不受重视”(以前我在网上经常听到有人提到这个事,我还有点不信),我是一个在校学生,对软件测试也只能算是一个刚入门的人(准备以后做测试方面的工作),当时我就对老板说出了我的想法,说了测试的重要性儿子;说测试一个“破坏性”的过程,而开发是一个“创造”性的过程,二者是一对矛盾题,我们暂且不说用一个专门的测试组来做测试,应该是同一个开发组内的人可以交换来测试;另外,还和老板说了测试用例是精心设计出来了,而不是随随便便挑几个数据测试一下就ok了;跟老板猛侃了一顿,看出来老板也知道测试很重要,只是现在赶工程进度,也就随便测测交交差就ok了,另外,他总说我的想法太过“书本化了”,不切合实际,总叫我拿一个实用方案。我将我的想法整理了一下(算是对工作的总结),希望各位能提出宝贵的意见。
这里测试的重点是比较二期需求说明和一期需求说明的不同点,做以下测试工作:
一、文档测试
A、概要设计文档中是否体现需求的变动。
B、详细设计文档中是否体现需求的变动。(可根据实际情况写详细一点)
B.1 该改的名字是否更改;
B.2 改删的功能是否删除;
B.3 新增的功能是否增加;
B.4 需要修改的功能是否修改
C、编码的修改是否符合要求。(可通过VSS比较原来的代码和修改后的代码)
C.1 能否正确实现所修改的功能
C.2 修改的部分是否影响其它模块的正常运行
C.3 代码的书写是否和一期一致(变量的命名、程序的注释是否清晰、
缩进是否符合要求……)
二、功能测试(白盒测试+黑盒测试)
这里主要是对客户端测试,看是否满足客户的需求。具体做一下工作:
A、画面之间的逻辑关系是否正确(可根据实际的工程扩充一下)
B、各画面的显示内容是否正确(像字体的颜色、大小、版本好……)
C、涉及到业务处理修改时,要分析相应模块的程序结构,利用路径覆盖
(也可利用其它的)技术设计测试用例。
*疑问:(刚开始看面向对象测试,对面向对象测试还不太明白),这里根据程序的结构(流图)设计测试用例不难,难就难在测试环境的搭建。在传统的测试中,对一个模块(可理解为一个函数)测试,只要写一个驱动模块(调用被测模块的上层模块)和一些桩模块(被测模块需要调用的子模块),这实现中比较好实现。但是现在是利用的面向对象的开发方法,一个模块的实现是包含在一个类中(对应几个函数),要执行这个功能必须要实例化一个对象,而实例化一个对象必须要调用与之相关的对象(有点像桩模块,不过没它们和理解),这些对象的实例化又和其它对象相关……。从这个角度看,模拟(制造)各种测试场景就变得十分困难。(好麻烦,测试一个模块几乎把整个程序运行起来了,不知道大家在实际工作有什么易于实现的方法(也就是对类的一个函数测试))。
D、从一期中选择比较典型的测试用例做回归测试,检查原有功能是否能正常运行。(郁闷,老板说居然没提供)
E、对数据库的测试(功能测试中的)
E.1 我现在的想法是从程序运行时的log文件提取出程序执行时的SQL语句,将SQL语句放到数据库中执行,将设计库执行的结果(预期结果)和画面上的结果(实际结果)比较,不知道大家对这个有什么看法。
E.2 对于需要用户输入数据的(需要保存到数据库中),采用边界值分析技术设计相应的测试用例。
*疑问:如何测试程序调用数据库时的正确与否?也就是说,如何设计测试用例?如何模拟调用数据库时的各种可能故障?
(这是属于功能测试的范围吗?)
有一个奇怪的想法,能不能在数据库中提供一些非法的数据(假使我们的数据库允许这样做),看看被测程序在调用这些数据时
有什么反映(其实这种情况在网络环境下应该时可能发生的)(测试目的?可行性?)
F、写测试报告(给老板交差的),呵呵,不知道大家有什么好的建议,看了一期的测试报告,里面“测试项目”一栏就是把详细说明
罗列一下,也没写测试数据,“测试结果”都是一些什么“见画面”、“见原程序的sql语句”的句子,感觉不像在测试。
三、测试的建议
A、测试和开发分开
B、尽量模拟程序实际运行时的环境(我们测试时机器既当服务器,也当客户端,这能满足功能测试吗?)
C、多交流
……………… |
|