背景介绍:
在前一阵有两名同学出去面试,招聘单位分别给他们两个小项目拿回家做,三天内做出来即可给到7k以上的月薪,我都帮他们做了,详情参看《交通灯管理系统》和《银行业务调度系统》的介绍。
不久,又有一名学员给我打电话,让我帮他做一道类似的题目,不过,这次项目变成了“移动用户资费统计系统”,再细问,知道这次的招聘公司不是软通动力了,而是联想利泰,这两家公司提供的word文档格式都完全一样,我奇怪现在的软件公司怎么都学会用这招来考核求职者了,我真怀疑这些题目出自同一人之手,难道是软通动力的技术经理跳槽到联想利泰啦?他的这招确实够高!够狠的!
我看到“移动用户资费统计系统”的需求文档后,发现这个系统的业务比《交通灯管理系统》和《银行业务调度系统》的业务都要复杂得多,想了好半天,一时间真不知道该从哪里着手,
只能回复那名学员:“这个项目题好像不是一两天就能搞定的事情,我努力做做,别抱太大希望”。如果说“交通灯管理系统”或“银行业务调度系统”做出来就可以拿到7k月薪的工资的话,我认为这个“移动用户资费统计系统”做出来的话,起码应该可以拿到1w以上的月薪。我按照“移动用户资费统计系统”的需求文档认认真真地做了两天,体力透支很大,加之十几年的编程生涯,我一直处于亚健康状态,这个“移动用户资费统计系统”终究成了
压倒骆驼的最后一根稻草,我累得病倒了!等到身体康复后,我不甘心事情只做了一半就放弃了,接着又花了两天的时间,总算把这个项目题给做完了。不过,当初请我帮他做此题的同学自然也没有等到我的结果,他只能重新找其他公司的工作了。
事隔两个多月之后,又有一名学员拿着这道项目面试题来找我,招聘单位同样还是联想利泰,看来这家公司花费了这么长的时间都还没有找到一名真正能做此题目的面试者,他们不达目的不罢休,几个月来没有停止过寻找此题的解答。我估计我把解答交给现在这名学员,待这名学员把项目源码交上去后,这道项目就不会再作为该公司的面试题了,因为他们终于得到了解答,他们就是在要这个结果吗?如果是,我就不得不说,这公司真的太损了!
特别说明: 由于电信和银行实际环境的复杂性和产品一旦上线运行后对错误的容忍度几乎为0,电信和银行的项目在做完后都不能直接上线测试运行,而是要通过编写非常完全和严格的模拟程序来进行测试,确保万无一失后再实际上线运行,所以,为电信和银行项目编写模拟程序和比对检查程序运行的结果就非常重要了。虽然张孝祥老师编写完了《移动用户资费统计系统》的代码,但不能保证最终的运行结果就没有错误,
这需要仔细分析和比对运行结果才能发现问题,由于《移动用户资费统计系统》的业务逻辑实在有点复杂,仅凭张孝祥老师个人之力,实在难以比对出每个细节,人多计谋广,柴多火焰高,所以,张孝祥老师向全社会发出英雄招募令,请热心的朋友参照我们的《比对检验指导书》,对我们提供的多个运行结果记录文件(1,2,3,4,5)
的内容分别进行仔细分析和比对,看看程序运行结果是否有误,这是验证您能否充当一个好的测试工程师的绝佳机会,如果您尚没有工作,并且不拒绝做一名测试工程师,那么,只要您仔细做好了这次的测试分析工作,我们就可以把您推荐到一些大型的软件公司入职软件测试工程师的职位!( 提示,我们提供了程序运行5次的5个运行结果记录文件,这5文件是完全独立的,要对它们分别单独进行比对,它们彼此没有任何关联。)
下面是”移动用户资费统计系统“的需求:
移动用户资费统计系统
原始需求文档下载
模拟实现简易的移动用户资费统计系统逻辑,具体需求如下:
-
移动运营商A设置两种类型的用户:普通用户及VIP用户,现该运营商已有5个VIP用户和15个普通用户,共计20个用户。
-
普通用户资费标准如下(不考虑漫游和长途):
【基准资费】
无月租费用。
通话费:0.6元/ 分钟(仅拨打收费,接听免费)
短信费:0.1元/ 条
数据费:5元/ M
【优惠套餐】
话费套餐:月功能费20元,最多可拨打60分钟电话,超出时间按照0.5元/分钟计费。
短信套餐:月功能费10元,最多可发送200条短信,超出条数按照0.1元/条计费。
数据套餐:月功能费20元,最多可获50M的流量,超出流量按照3元/M 计费。
注:用户可以选择多种套餐,各功能(通话、短信、数据)计费时,如已选择对应套餐,则按套餐标准计费;如未选择对应套餐,则按对应的基准资费计费。
【基准资费】
月租费用:按天收取,2元/ 天
通话费:0.4元/ 分钟(仅拨打收费,接听免费)
短信费:0.1元/ 条
数据费:3元/ M
【优惠套餐】
套餐1 :月基本费用100元(无月租费用),提供如下服务:
①最多可拨打750分钟电话,超出部分按照0.3元/ 分钟计费。
②最多可发送200条短信,超出条数按照0.1元/ 条计费。
③最多可获得100M数据流量,超出流量按照1元/ M计费。
套餐2 :月基本费用200元(无月租费用),提供如下服务:
①最多可拨打2000分钟电话,超出部分按照0.2元/ 分钟计费。
②最多可发送500条短信,超出条数按照0.1元/ 条计费。
③最多可获得300M数据流量,超出流量按照0.5元/ M计费。
注:用户最多只能选择一种套餐,如未选择任何套餐,则按照基准资费计费。
-
各类型用户只能选择提供给本类型用户的套餐。
-
新用户入网。
①对于新入网的普通用户,入网当月赠送如下服务:免费拨打60分钟
电话,免费发送200条短信,免费获得50M流量。超出赠送的部分
按照普通用户基准资费进行计费。
②对于新入网的VIP用户,入网当月赠送如下服务:免费拨打200分
钟电话,免费发送200条短信,免费获得100M数据流量。超出赠送
的部分按照VIP用户基准资费进行计费(注意:需按入网天数计算月
租费用)。
-
每月为用户计算一次账单,用户订制的套餐信息和账单信息采用文件方式进行存储(提示:可使用java中的Properties API进行文件操作)。
-
用户可自由订制或退订所属用户类型的套餐,并从下月起生效。
-
异步随机生成客户操作如下:
①拨打电话,每次拨打时长为1至10分钟不等(随机决定,以分钟为单位)。
②发送短信,每次发送条数为1至10条不等(随机决定)。
③上网获取数据,每次获取数据流量可为50K,100K,200K,500K,1M(随机决定)。
④订制或退订相应套餐。
⑤新用户入网(随机决定用户类型)。
注:随机生成客户操作时间间隔自定,可设置。
-
不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
提示:我们将于2010.08.15专门讲解此项目面试题的破解之道,广大网友们可以通过传智播客的远程网络平台实时收看本讲座,相信您必定能从中能学到很多技巧和设计思想,
网络直播讲座详情请参看http://www.itcast.cn/itcast_static/javajz1.htm。
我们强烈建议对此模拟项目感兴趣和想参加我们讲座的朋友,务必请自己先提前思考和努力尝试做一做此项目题,然后再听取我们的讲解,这样的学习效果会更好!
相关信息:
1. java面试题之一:交通灯管理系统
2. java面试题之二:银行业务调度系统