51Testing软件测试论坛

标题: 面试题目,不会的,想请教下大家! [打印本页]

作者: 晓蕾LUCKY    时间: 2008-12-11 09:20
标题: 面试题目,不会的,想请教下大家!
1、简单的SQL题目:删除表中的第一条记录

   偶写的是delete top 1 from 表名 可在SQLSERVER2000上运行了一下,结果不对,请教下大家

2、设计测试用例:

  研发部:普通员工薪水3000元,部门经理4500元

  技术支持部:普通员工薪水2500元,部门经理4000元

为了提高 工作效率,保障员工健康,公司制订以下政策:

1、每周工作40小时内,公司按正常发放薪金

2、每周工作大于40小时而小于45小时,40小时内牛刀割鸡正常薪金发放,大于部分为正常薪金的15倍

3、每周工作大于45小时,40小时部分薪金正常发放,40(不包括)--45(包括)部分为正常薪金的1.5倍,大于40部分为正常薪金的0.5倍

该公司的员工编号在10001-20000之间为技术支持部,20001-40000部分为研发部,其中编号末两位为0则为部门经理,其它则为普通员工

这个题目,我写的有点乱,请教下大家~
作者: archonwang    时间: 2008-12-11 10:35
第一个问题,感觉是有一定规律的。这个第一条怎么定义的,按时间还是按默认的id编码,没说清楚。但是楼主的写法肯定不对。
delete * from table where(CONDITIONS)

第二个问题,关键在于分析各种条件,然后进行组合。这个问题比较大,可以考虑使用矩阵来设计用例。
作者: 晓蕾LUCKY    时间: 2008-12-12 00:15
标题: 我写的第二个题的测试用例,大家帮忙看下,对否?谢!
工作时间为零工作时间<40 工作时间=40小时40<工作时间<45
42小时)
工作时间=45小时工作时间>45小时(47
10001025002500
2687.52500/40**1.5*2+2500
2968.752500/40*1.5*5+25003031.252500/40*0.5*2+2968.75
1010010200、……10900
11000、10300……19000
1110010400……11900
040004000430047504850
200012001003000300032253562.53637.5
20000
2010020200……20900
2100022000……29000
2210022200……22900
3010030200……30900
3100032000……39000
3110031200……31900
3210032200……32900
3310033200……33900
40000
04500 45004837.55062.55175

作者: www.itest100.cn    时间: 2008-12-12 10:11
估计是笔试题吧,面试有问这样的问题的么?
作者: 亚瑟王    时间: 2008-12-12 12:40
3、每周工作大于45小时,40小时部分薪金正常发放,40(不包括)--45(包括)部分为正常薪金的1.5倍,大于40部分为正常薪金的0.5倍这句话没看明白,

大于40,小于45已经是1.5倍;后面大于40怎么又变成0.5倍了


楼主解释一下

[ 本帖最后由 亚瑟王 于 2008-12-12 14:52 编辑 ]
作者: 晓蕾LUCKY    时间: 2008-12-14 10:41
标题: RE
原帖由 亚瑟王 于 2008-12-12 12:40 发表
3、每周工作大于45小时,40小时部分薪金正常发放,40(不包括)--45(包括)部分为正常薪金的1.5倍,大于40部分为正常薪金的0.5倍这句话没看明白,

大于40,小于45已经是1.5倍;后面大于40怎么又变成0.5倍了


...


是笔试题,我是这样理解的:比如工号10001 工作了47小时。40内的为正常薪金,40-45小时内的为正常薪金的1.5倍,还有两小时为正常薪金的0.5倍。所以计算公式为:2500/40*0.5*2+2500/40*1.5*5+2500=3031.25  这样理解对否?大家说下~
作者: 晓蕾LUCKY    时间: 2008-12-14 10:45
标题: RE
原帖由 archonwang 于 2008-12-11 10:35 发表
第一个问题,感觉是有一定规律的。这个第一条怎么定义的,按时间还是按默认的id编码,没说清楚。但是楼主的写法肯定不对。
delete * from table where(CONDITIONS)

第二个问题,关键在于分析各种条件,然后进行 ...


写法对啊,这题考的是delete的语法,第一题的答案:删除表中的第一条记录
还可以这样
delete from 表名 where ( 主键列  = (select top 1 主键列 from 表名)) 还有另一种解法,你可以到我空间里看下~
作者: cherryXiu    时间: 2008-12-14 21:29
标题: answer
第一题:假如有一张users表,要求删除一个名叫cherry的用户行,你可以这样写查询语句。。
delete *  from users where name='cherry'   
你的查询语句,存在语法错误。。
作者: lagefeifei    时间: 2008-12-15 15:17
我认为群主更应该写的是这个。而不是计算的公式。

[attach]47628[/attach]
作者: didi93    时间: 2008-12-15 17:38
我怎么都看不懂啊!
作者: define_NULL    时间: 2008-12-30 13:53
呵呵,我觉得这个题在考用边界值的方法来设计test case。
好像很多时候都不是考你那题做的对不对,而是在考察你的方法,或者说是思路。
作者: 晓蕾LUCKY    时间: 2009-1-5 13:06
标题: RE
lagefeifei 谢谢了,我刚看到。恩,你写的很对,我学习了
作者: zhangxinnow    时间: 2009-1-6 14:02
1,top不能用于delete的条件,再查一下资料。
2,每一种组合找一个典型例子设计即可。
作者: Neoess    时间: 2009-1-21 15:05
9#的很有条理。
作者: liuyinju    时间: 2009-2-2 16:23
delete form 表 where 主键 =(select top 1 主键  from 表)

第一个这样对吗?
作者: alexchen    时间: 2009-2-8 21:46
9楼的思路很好
作者: fei.ge    时间: 2009-2-11 11:21
1、sql语句: delete * from table where ()
作者: spring    时间: 2009-2-11 11:50
标题: 考的应该是测试用例的设计方法
考的应该是测试用例的设计方法
如:判定表
条件/动作        <=40        >40 <=45 x为超时值        >45 y为超时值
研普        3000        X*1.5                           X*1.5+y*0.5
研经        4500        X*1.5                           X*1.5+y*0.5
技普        2500        X*1.5                          X*1.5+y*0.5
技术        4000        X*1.5                          X*1.5+y*0.5
作者: zwhpl    时间: 2009-2-12 13:54
标题: 判定标法的测试
对于第二道题,其实是可以根据测试用例方法中的判定表法来判断,
作者: navy2008    时间: 2009-3-25 16:44
对,这道题考察的是判定表和边界值分析法
作者: 梦在这里    时间: 2009-3-25 17:46
第一道题应该有id字段吧,如果有id字段的话,
delete from 表名 order by  id  limit 1  
这样就可以删除第一条记录了,
作者: muyinfei    时间: 2009-3-25 21:19
既然说明了员工编号和部门的对应关系那么这个也需要有测试用例吧?
作者: lingjie219    时间: 2009-5-7 15:23
标题: 回复 1# 的帖子
第一题:delete from epi_updown_day_log where rownum='1'




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2