51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3171|回复: 2
打印 上一主题 下一主题

[求助] 菜鸟请教单元测试某个

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-17 00:37:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人比较菜,刚刚接触测试领域,在实际学习过程中,产生了许多疑问,希望大侠们能为我答疑解惑。不胜感激、
1.

在进行单元测试的时候,比如我使用Nunit进行测试,测试一个类,对这个类的5个方法进行测试,当我对方法 X 进行测试的时候,我的测试代码可以调用 那个类的方法Y吗?如果可以调用的话,那如果方法X和Y本身就是都错的,最后有可能导致测试通过的。
而如果不能够调用方法Y的话,难道要求测试的时候,自己再编码实现方法Y的功能吗? 如果那样的话,也太麻烦了吧?

2.

另外 比如我有个登录函数 有三个参数  (username,password, type)

分别表示用户名 密码 用户类型,这个函数是一个网站的登录部分调用,而且网站界面上已经通过单选按钮 保证了用户类型为 “广告管理员”或者“活动管理员”  二者中的一个,那么我在进行测试的时候 是否还要进行测试 如果type  这个参数为其他非法值的情况呢?

3.


还有比如网站填写一些表单的 一些文本框,要求不能为空,而且在客户端通过javascript 已经进行了检验验证,那么服务器端的代码部分还有必要进行检验 文本框输入的数据是否为空呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-3-17 10:38:48 | 只看该作者
1. 除非函数Y未实现、被隔离、不可控,否则应该调用Y的实际代码。单元测试的目标是当前函数X,并假设Y是正确的。如果Y不可信,应首先测试Y。如果Y未实现、被隔离、不可控,通常需要打桩,但打桩会导致失真使测试无法进行,所以工具最好有底层模拟之类的功能。
2. 3其实是一个问题。单元测试是针对代码单元的独立测试,应该实现代码单元的功能覆盖,不考虑它所处的环境,即应该对被测试代码的各种输入(正常、边界、非法)都进行测试。外部的环境是可能变化的,例如,问题2,将来登录界面可能修改,问题3. javascript在某些用户的电脑上可能执行不了等等,底层代码的功能正确性不应该依赖于上层代码。

[ 本帖最后由 VisualUnit 于 2009-3-17 13:12 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-3-17 15:12:42 | 只看该作者
LS都回答完了……
补充一下,一切前端的检验都是不可靠的,用户可以禁止JS或者是直接模拟一个HTTP请求来达到一些目的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 14:50 , Processed in 0.067235 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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