51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6200|回复: 5
打印 上一主题 下一主题

[讨论] 讨论一下如何进行Web应用程序的功能测试?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-8-7 08:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假期替一家小软件公司写程序,这是一个基于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、多交流
    ………………
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-8-7 09:29:57 | 只看该作者

你的帖子内容很丰富

不过发得不是地方,请发到新手上路,或者技术杂谈栏目

[ Last edited by bobli on 2004-8-7 at 09:33 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-8-7 20:57:20 | 只看该作者
不好意思,看了这个版人气比较旺,就发在这儿了,呵呵,下次不了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-8-7 20:58:07 | 只看该作者
to:dengsimin
感觉功能测试不需要测试吧,我也是刚入门,也不太明白
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-1-21 13:31:36 | 只看该作者
功能测试是很重要的
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2016-10-27 09:19
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
    发表于 2010-8-5 10:36:13 | 只看该作者
    从04年跨越到10年,这很牛啊!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 04:37 , Processed in 0.089856 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表