作者: admin

  • 乱了

        最近很少写东西,日子过得浑浑噩噩,毫无生趣。如果不是还能跟帅哥撒撒娇,我都在怀疑自己是不是有有生命的动物了。

        因为考期临近,人变得异常烦乱。看书似乎没什么条理,只能机械性地做模拟题,正确率高时,自然欣喜一番,反之就万分沮丧。之前还经常接宝宝回来过周末,这两个礼拜也拉倒了。

        宝宝在幼儿园升了中班,很自豪地跟我说自己现在是甜甜班的小朋友了,而且特别喜欢新来的没保护好眼睛的老师,还多了很多朋友。对于她来说,去幼儿园也成了相对快乐的事情。在老师的建议和强制下,小丫头一下子报了四个班儿:蒙氏,英语,美术和舞蹈。前面三个是必须的,那厉害的贝贝老师说,不参加就得转到其他班级。最后的舞蹈是我们决定加选的,女孩子学点儿舞蹈,对形体气质总是有些帮助的,小丫头本身也很想学。至于英语,宝宝似乎没什么兴趣和信心,我答应帮她辅导,才乐呵呵地同意学。唉,简直是欺骗孩子,忙着考试的我,哪里有心情管她啊:(所以说,爷爷奶奶真是值得感谢,帮我分担那么多……

        妹妹升大二了,早准备买电脑给她的,因为当时学校不支持,就决定大二再说。这不,为了买电脑那丫头提前回来几天,我这做姐姐的带着她逛得昏天黑地,最终在帅哥的指点和陪同下买了她相对满意的一款东芝300系列的笔记本,算是了去一桩心事。还有一日帅哥公司有活动,我们姐俩去KTV唱了好几个小时的歌,简直非一般战士了,唱歌绝对是个体力活儿,累得脑袋嗡嗡的。原计划要去吃哈根达斯,实在是没气力了,只能作罢。本该好好复习的,却整天瞎混,简直毁了,闹心毁了。亲爱的妹妹临走时我一点儿没好气儿,让她赶紧滚蛋,之后又自责透顶。幸亏是自己亲妹妹,这要是小姑子,想必要跟我翻脸的吧。

        接下来的几天因为该来的那个死活没动静,折磨得我甚至怀疑自己是不是中奖了,帅哥也受不了我的疑神疑鬼,强烈建议俺买试纸测一下才终于放心了。唉,做女人,容易吗?

        状态不佳,生理和心理都跟着有问题。痘痘困扰了我两三个月,虽然有内分泌的原因,我的美容师也像是吃白饭的!态度倒是挺好,不过怎么能对我的脸一点都不负责任,看着顾客脸上长痘都不管不顾的。大热天的,她们院长顾问之类的领导又赶上休假,临时找不到人解决问题。害得我只好去另外一家美容院办月卡排痘,懒得见白痴美容师,十天半月去一次,找她糊弄两下,当时就看在她态度好的份儿上,不跟她计较吧,等逮到领导再说。但可恨的是那丫头近来动不动就改休息日,明知道我跟美女姐姐搭伴儿做脸的,凭什么给我随便改时间,说了算了还。这一次更过分,自己不打电话,居然让别人通知我,切!前天,终于忍无可忍,找他们刚换回来的院长一通理论,那家伙被我说得只有道歉的份儿,原本,俺不是得理不饶人的主儿,可他们也太过分了,我把脸交给她们是用来学徒的,还是用来糟蹋的?简直浪费我宝贵的时间!难道我是花钱砸大脑袋去了?!幸亏,那院长识相,换了位资深的美容师,赠送了一次氧疗给我,不然,哼,没完,老虎不发威,当我是病猫啊,切!急眼了给老娘退卡。唉,乱了乱了啊,整的自己跟泼妇似的。

        考试赶紧过去吧,再耗俩月,非得疯了不可。家里乱得像猪窝也没心思收拾,朋友约也懒得出去,一个人天天这样呆着,真成屋里憋屈型了。

        帅哥也表现不错,最近基本不跟我找别扭,容忍我撒泼耍赖,动不动还拉我出去逛逛街,看看电影,呵呵。上午一同学电话里还说大家都特别看好帅哥,赞我有福云云,哦,看来我不能一天到晚怨天尤人了。孩子有人管,老公不用操心。除了洗衣做饭打扫卫生,交各种费用,也没什么让我操心的,老老实实看书,临阵磨枪得了。人得知足,别没事儿找事儿的好,自己跟自己过不去,不值当的,哦?

  • 浅论C++在Windows下的GUI自动测试(Unit Test)

    昨天,公司开发组与测试组开会总结上一个release的经验教训,期间就提到一个问题,如何更好的更自动化的测试程序。

    公司正在研究的是IBM的RFT,这个东西不用说,一定是功能强大、极难使用,IBM的软件做的如此有特色,也是不易。问题是作为一个开发人员,我只想能够快速的、可重复、可添加用例的测试自己的代码,难道只能用屏幕定位、鼠标模拟、控件按钮定位这样的“高深”技术?

    最近在开发的主要是一些接口,给另外一个产品使用,没有界面上的任何东西。美国的同事开发了一个测试程序,跑在命令行下,每次我添加一个新的功能或者修改了一些代码,他那边只要跑一遍,就知道对以前的功能有没有影响。

    这个东西不新鲜,就是unit test,几乎每个新兴的开源代码(以java、python、ruby为代表)都会有一个unittest字样的目录,里面就是一些主要的功能测试代码。可是为何我们一直没有很好的利用这个工具呢?

    我想原因也很简单,unit test需要开发人员更好的对代码进行抽象化、模块化。有人一定会反驳说,对于GUI紧密相关的,没法做Unit Test。这是一个问题,但是不是绝对的,也不能成为不进行unit test的理由。关键还是要很好的做到MVC各个模块分离,降低他们之间的耦合度。

    通常对于一个Windows程序员来说,一个GUI界面,会包含几个功能,一是按钮或者控件的响应,比如按下一个按钮,它要变成灰色,直到运行功能完成再恢复原状,或者是一个控件,点击一下会让用户输入,输入完成以后校验,根据校验的结果保存或者提醒用户出现问题。这些都是比较common sense的流程。

    但是这些流程显然不是原子的(atom),它们涉及到了M(model)、V(View)、C(control)的各个方面,对于Windows程序员,这三个方面往往都被放入到CXXXDialog这样的类里面实现,自己还感觉封装的非常好。

    我们就拿用户校验来说明一下如何分解这个MVC过程。

    “一个控件,点击一下让用户输入”,这一部分显然是V和C的,个人感觉,这部分的测试可以由test方面做更深入的检查,开发人员需要保证功能实现完整,简单运行正确。

    “接受用户输入、检查输入数据”,这一部分,显然是比较复杂的逻辑,涉及到Model和Control,View在这一部分可以被忽略掉,输入部分就是数据,输出部分就是检查的结果。很显然,这一部分可以被包装、抽象起来,自己单独做Unit Test。

    “如果出错,反馈用户出错的结果”,这一部分基本上也是以View为主,是需要tester发现问题的部分。

    “如果正确,保存用户的输入”,这块很显然也是可以分离出来单独进行自动测试的。

    从上面分析可以看出来,GUI的测试不是不能进行,而是需要开发人员做更多的工作,需要很好的抽象逻辑计算部分的代码,如果可能,界面展示规则代码也可以抽象处理单独测试。

    这不容易实现,但是值得去做。

    另外,在研究C++的GUI测试,发现了一个很好的帖子:http://bytes.com/forum/thread606579.html

    摘选一些比较精华的部分,中文部分是我的简单翻译:
    Do a google for ‘TFUI’ – its a good technique for your problem.搜索一下“TFUI”,这是一个很好的技术,可以用来解决你的问题。(我找的结果是这里http://c2.c2.com/cgi/wiki?TestFirstUserInterfacesPrinciples)

    Aside from that, the main approach is to treat the GUI library like any other 3rd party library – mainly, don’t try and unit test it, unit test your code that uses it.另外,主要的一点是应该把GUI库当作其他的第三方库来看待,不要试图对他们做单元测试,要测试使用这些库的代码。(简单说,就是不要测View界面部分,而是测试逻辑或者数据部分)

    By this, I mean: ensure all of your logic (business rules, gui presentation rules, data retrival and updates, etc) are completed separated from the gui code. In your gui’s event handlers, don’t do anything except delegate to a plain old C++ Class.我是说:确保所有你的逻辑(商业逻辑,gui展示规则,数据存取更新等等)是完全的与界面代码分离,在GUI事件处理里面,不要做任何事情,除了代理到一个简单的C++类里。

    By separating your code from the gui code, you can easily test your code, without having to even link to the gui library.通过分离代码(功能部分、规则部分)和GUI,就可以很容易测试代码而不需要连接到GUI库。

    In software, abstract is usually the way to solve a problem.在软件中,抽象通常都是解决一个问题的办法。

    Andrew

    另一篇回复,

    ————————-

    Its a great book for working with un tested code, and for seeing how
    to create ‘seams’ between areas like GUI libraries and our code.(这本书应该是《修改代码的艺术》)

    For those interested in unit testing, a good guide that M Features,
    myself and plenty of others use is:

    A unit test does NOT :
    * Use any file IO
    * Connect to a db
    * Present anything on screen
    * communicate across a network.

    单元测试不应该:

    1,使用任何文件输入输出。

    2,连接到数据库。

    3,展示任何东西到屏幕。

    4,通过网络连接通讯。
    The rational for this, is many, but boils down to forcing us to create
    a design that is decoupled from these areas, which nearly always
    results in a good, clean & highly cohesive design. For example, how
    many times have we in the past put logic directly into a dialog
    class? Where as with this style of testing, we force ourselves to
    separate out the UI aspect from the logic part, resulting in us using
    the MVC or MVP or Humble Dialog design patterns, as they allow us to
    unit test the logic without going anywhere near the GUI.

    The second major win is speed of test runs.

    I can run 1200 unit tests in 42.7 seconds currently (and these are
    Java unit tests!) because of following these guidelines. And because
    they run soo fast the Team runs ALL tests ALL of the time.
    Slow tests mean we run them fewer times, the less we run them, the
    longer it is before we find out we broken something. The longer time
    before finding out we broke something, the more costly it is to
    fix…..

    Andrew

  • 奥运感想

    在写这篇文字的时候,闭幕式只有半小时,cctv里提到少林弟子要来,我倒,不知道释永信CEO会不会亲身上阵。

    大连这地儿,还是没添多少可以运动的场所,考研时经常去打打篮球的中学,早就变成了全封闭。奥运,除了看看几个比赛,聊聊花絮,跟我,没有任何关系。

    这大半个月,还是有很多传奇。最值得花絮的,就是艾蒙斯,他打中了多少环并不重要,大家看到的,是他妻子捧住他的脸,那时的温柔。不知道大家是不是跟我一样感慨,有爱,真好。

    奥运,鸟巢里有多少人是它的建筑者,重新回到那里?有多少人,建造了鸟巢之后,被劝回家乡看奥运?我不知道。

    2008年8月以后,大多数少年会选择篮球作为他们的主要运动,中国男足,就是一堆狗屎。

    回到家乡的运动员、教练,为另一个国家效力,当他们与中国队员交手,那震耳欲聋的“中国加油”会让他们有什么感触,很值得联想。

    刘翔,当时为何退赛,是不是有阴谋?足可以拍个电影了。我还是支持刘翔,无论如何,他已经做到他的本分。

    这届奥运会,如果有遗憾,那就是假,唱歌的假唱,体操的年龄让人怀疑。为何不能真实一点,哪怕不够好。

    张斌、胡紫微又出来了,真是春风吹又生啊。

    2008年这个多事之年,会不会因为奥运“冲喜”变得好一点?我也不知道,我只是在一边看着罢了。

  • 密码保护:准备来台自助游

    此内容受密码保护。如需查阅,请在下列字段中输入您的密码。