软件测试面试系列:如何简要描述数据库技术在项目中的应用?

目前数据库技术在软件测试工程师的面试中越来越常见了,90%以上的企业和公司将数据库知识的掌握程度作为很关键的一项技术考察点。请见下图:

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

在这样的前提下,数据库的学习和应用就显得非常的很重要,然后在面试的过程中就必然会被问到:数据库技术在测试中是如何应用的?遇到这样的问题该怎么回答呢?下面凯哥带你飞一下,哦,不是,是分析一下:

有如下一个凯哥曾经用过的的一个企业OA系统的案例:该系统中有签到、签退模块,还有一个奖惩模块。所有角色和员工,登录系统进入考勤管理页面,只有两个按钮签到和签退。

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

点击签到按钮,签退按钮只能操作当天签到的信息。然后弹出签到确认框,签到日期、姓名、签到时间为根据当前用户自动获取到,签到地点手动填写,然后点击确认。

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

 

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

签到按钮失效了,签退已经可以使用,签退日期、签退时间为根据当前用户自动获取到,签到地点需要手动填写,点击确认。

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

员工签到时,在进入页面的时候“日期”自动默认为当前日期,只有当前日期可以签到。如果使用“上一天”和“下一天”的按钮,则签到、签退按钮就会失效。

而且公司为了奖励员工积极上班不请假、不迟到、不早退,特地设置了全勤奖,比如月度全勤奖、季度全勤奖等。如下图所示:

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

需求和系统功能我们了解了,那对这个功能怎么进行测试呢?如果只是论签到签退,大家可能会说,你都写的很明白了,还要怎么说啊?但是签到签退只是第一步啊,一个月的考勤可是要用来统计核算发工资、发绩效奖励啊!再远一点,一个季度呢,一年呢?我们总不可能跟领导说,这个功能,我要好好的操作,一个月、一季度甚至一年后才能出来结果吧?领导可能直接就让你走人了……

我们要怎么办呢?那就是使用数据库造数据。行话叫造数据,专业术语叫往系统里面添加数据。先我说说我是怎么干的:

首先找开发要了系统的数据库设计文档,要了具体的用户的考勤信息是在哪一张表中记录的,都有什么字段,什么约束,什么数据类型,什么数据要求……开发直接甩给我了表结构的图,就是如下所示的这张图了:

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

有了这个东西,就好说了,我又问开发要了数据库操作权限,他们当时还问我:“你也会SQL语句?”

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

我当时就急眼(东北话:生气)了……这是瞧不起谁呢!不过懒得理他们,我就怼了一句:不想跟天天写bug的人说话!(狠不狠吧)

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

言归正传啊,有了这个内容之后呢,我就手动加了一条签到、签退记录后,去查看数据库里面这个表中数据的显示规则了:

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

然后就可以开始写SQL语句了,按照表结构、约束、字段属性进行SQL语句的编写(此处就不写具体的SQL语句了)然后就去执行,当时我挺狠的,直接就用循环写了400个数据进去,一年的都有了……

所以,大家记住咯,数据库和SQL语句的应用,我们不能仅仅停留在说说的程度,要真正的用在项目中。SQL语句的增、删、改、查是四个功能操作,不要只说一个查询就说应用了,那样不足以取信面试官。

类似的还有,很多互联网项目中的会员签到领奖励,中断从头再来:

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

这样的案例有很多,我们不可能真的等到一个签到轮次完事儿了然后证明系统有问题或者没有问题。所以技术手段的应用是很重要的。

至于说SQL语句在修改、删除功能方面的应用,大家可以试试一个用户正在登陆着,你就改掉了数据库中该用户的密码、甚至删掉了这个用户,系统会有什么样的反应?

 

软件测试面试系列:如何简要描述数据库技术在项目中的应用?

 

当然遇到了系统问题的时候,开发找你,你可别说是我教的,都是你们自己想的,我只是提了一下而已!