晓蕾LUCKY 发表于 2008-12-11 09:20:17

面试题目,不会的,想请教下大家!

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:20

第一个问题,感觉是有一定规律的。这个第一条怎么定义的,按时间还是按默认的id编码,没说清楚。但是楼主的写法肯定不对。
delete * from table where(CONDITIONS)

第二个问题,关键在于分析各种条件,然后进行组合。这个问题比较大,可以考虑使用矩阵来设计用例。

晓蕾LUCKY 发表于 2008-12-12 00:15:33

我写的第二个题的测试用例,大家帮忙看下,对否?谢!

工作时间为零工作时间<40 工作时间=40小时40<工作时间<45
(42小时) 工作时间=45小时工作时间>45小时(47) 100010250025002687.5(2500/40**1.5*2+2500)
2968.75(2500/40*1.5*5+2500)3031.25(2500/40*0.5*2+2968.75)10100、10200、……10900
11000、10300……19000
11100、10400……1190004000400043004750485020001、2001003000300032253562.53637.520000
20100、20200……20900
21000、22000……29000
22100、22200……22900
30100、30200……30900
31000、32000……39000
31100、31200……31900
32100、32200……32900
33100、33200……33900
4000004500 45004837.55062.55175

www.itest100.cn 发表于 2008-12-12 10:11:27

估计是笔试题吧,面试有问这样的问题的么?

亚瑟王 发表于 2008-12-12 12:40:18

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:31

RE

原帖由 亚瑟王 于 2008-12-12 12:40 发表 http://bbs.51testing.com/images/common/back.gif
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:35

RE

原帖由 archonwang 于 2008-12-11 10:35 发表 http://bbs.51testing.com/images/common/back.gif
第一个问题,感觉是有一定规律的。这个第一条怎么定义的,按时间还是按默认的id编码,没说清楚。但是楼主的写法肯定不对。
delete * from table where(CONDITIONS)

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

写法对啊,这题考的是delete的语法,第一题的答案:删除表中的第一条记录
还可以这样
delete from 表名 where ( 主键列= (select top 1 主键列 from 表名)) 还有另一种解法,你可以到我空间里看下~

cherryXiu 发表于 2008-12-14 21:29:30

answer

第一题:假如有一张users表,要求删除一个名叫cherry的用户行,你可以这样写查询语句。。
delete *from users where name='cherry'   
你的查询语句,存在语法错误。。

lagefeifei 发表于 2008-12-15 15:17:48

我认为群主更应该写的是这个。而不是计算的公式。

didi93 发表于 2008-12-15 17:38:35

我怎么都看不懂啊!

define_NULL 发表于 2008-12-30 13:53:57

呵呵,我觉得这个题在考用边界值的方法来设计test case。
好像很多时候都不是考你那题做的对不对,而是在考察你的方法,或者说是思路。

晓蕾LUCKY 发表于 2009-1-5 13:06:54

RE

lagefeifei 谢谢了,我刚看到。恩,你写的很对,我学习了:victory:

zhangxinnow 发表于 2009-1-6 14:02:30

1,top不能用于delete的条件,再查一下资料。
2,每一种组合找一个典型例子设计即可。

Neoess 发表于 2009-1-21 15:05:14

9#的很有条理。

liuyinju 发表于 2009-2-2 16:23:28

delete form 表 where 主键 =(select top 1 主键from 表)

第一个这样对吗?:)

alexchen 发表于 2009-2-8 21:46:28

9楼的思路很好

fei.ge 发表于 2009-2-11 11:21:26

1、sql语句: delete * from table where ()

spring 发表于 2009-2-11 11:50:18

考的应该是测试用例的设计方法

考的应该是测试用例的设计方法
如:判定表
条件/动作        <=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:32

判定标法的测试

对于第二道题,其实是可以根据测试用例方法中的判定表法来判断,

navy2008 发表于 2009-3-25 16:44:18

对,这道题考察的是判定表和边界值分析法
页: [1] 2
查看完整版本: 面试题目,不会的,想请教下大家!