SE_team

清华大学现代软件工程学生小组 指导老师:邹欣 组长:杜圆 组员:石礼昕,张远,郭华阳,高亦陶,贾志豪,李蔚

导航

iLifer第一次测试报告

Posted on 2011-05-08 10:50  SE_team  阅读(11657)  评论(0编辑  收藏  举报

这是第一次测试报告,测试主要集中在对于数据层、逻辑层和Sync的测试,包含少量对于UI的测试。

测试环境:

win7 32bit,Net Framework4,墙内无代理无线上网(AP是ADSL拨号),区域语言:英语美国,yyyy-mm-dd,网速:巨慢无比,实测21.43 Kbps

测试方法:

      主要是用tester和testcase生成器测试。现在它们已经写好,大家自己改代码的时候也可以用来看写的对不对,在svn ilfer的test文件夹下是tester和testcase generator的代码(不排除generator有bug.......),同时我在testcase文件夹下写了一些windows批处理文件用于简便测试。

      tester命令行参数:

Format Tester.exe [options]
Options:
      -o <filename>: Set the operation file, default is "Op.txt".
      -f <filename>: Set the data file (standard output file), default is "Output.xml".
      -m <modename>: Set the test mode name
      -d <filename>: Judge the data control part, <filename> is the output file, "null" for no output
      -l <filename>: Judge the logic control part, <filename> is the output file, "null" for no output
      -g <filename>: Set the log output file name, "null" for standard output
      -e <filename>: Set the error output file name, "null" for standard output
      -s <filename>: Set the sympton output file name, "null" for standard output
      -c <filename>: Use internal test case generator with configuration file "filename"
      -r <filename>: Generate report into file "filename"
      -t <times>: Set the repeat time to integer "times"
      -i <filename>: Set the input file name to "filename"

          如果不设-c的话可以手写testcase,否则可以设-c GenConfig.xml,GenConfig.xml是test generator的configuration文件,如下例所示:

<root>
<task opMode = "SYNC" maxDepth = "3" maxSons = "30" maxVersion = “5” maxGenID = "1024" maxStrLength = "20"
       removedPossibility = "0.5" donePossibility = "0.5" notInPossibility = "0.5" lowestDateTime = "1990-01-01 00:00:00"
       uppestDateTime = "2010-12-31 00:00:00" GetInt = "uniform" GetDateTime = "uniform" GetEnum = "uniform"
       GetString = "uniform" GetSubset = "uniform" GetBool = "uniform" GetSonNum = "geometric" GetVersionNum = "geometric"
       GetInList = "exponential">
</task>
<appointment opMode = "SYNC" maxDepth = "3" maxSons = "0" maxVersion = “5” maxGenID = "1024" maxStrLength = "20"
       removedPossibility = "0.5" donePossibility = "0.5" notInPossibility = "0.5" lowestDateTime = "1990-01-01 00:00:00"
       uppestDateTime = "2010-12-31 00:00:00" GetInt = "uniform" GetDateTime = "uniform" GetEnum = "uniform"
       GetString = "uniform" GetSubset = "uniform" GetBool = "uniform" GetSonNum = "geometric" GetVersionNum = "geometric"
       GetInList = "exponential">
</task>
</root>

大多数设定都可以望名生意,大家如果想生成某种特定的testcase或者想手写testcase可以ping我。

另外,对于UI的测试现在是手测,主要是看能不能完成某个特定的功能。

测试结果摘要:

-- DataControl部分:

    结果:全部通过testcase。

-- LogicControl部分:

    结果:全部通过testcase,除了

    1. task的FinishTime一直没有设定

        修改建议:在SetDone里面设置FinishTime,或者将FinishTime域删除

    2. 将一个完成的父任务的子任务取消完成时父任务未取消

        修改建议:没实现?(LogicControl.cs 402行)

    3. (和Sync相关)如果Google Calendar中有通过网页添加的没有标签的日程,在sync from server时报错

        修改建议:LogicControl.cs 705行,indexoutofrange异常,原因是此时ip.Tag = -1.

    4.  当任务和日程比较多(如>400时),一个操作的时间可能会比较大(>1s)。这有可能指用1年以上拥有400多个日程的用户需要等待1s来编辑一个任务,运行起来可能会有点卡

    修改建议:数据库分开保存最近的任务日程和一段时间的任务

-- Sync部分:

    只能通过小的testcase,大的testcase跑不过........我还没找出来是哪个地方的问题,要不我们找时间看一下?    

    不过Sync对于15分钟的场景测试应该足够了。

-- UI部分:

    感觉还不错,偶尔觉得新面板弹出的有点慢。(新的task或appointment的编辑窗口有些慢)

    曾有bug:因为日期数据格式问题造成的无法添加新任务问题,已被远神解决。

数据层测试结果:

      第一个测试:子任务测试,最多6层子任务:(从左向右依次是:test编号,节点个数,最终结点个数,操作个数,是否通过)

******************************************************************************************
        NO     NODENUM  FINALNODES       OPNUM      PASSED
            00         1051         1051        3445        True
           01         0927         0927        3038        True
           02         1088         1088        3623        True
           03         1043         1043        3462        True
           04         1001         1001        3328        True

      第二个测试:无子任务测试:

 ******************************************************************************************
        NO     NODENUM  FINALNODES       OPNUM      PASSED
           00         0591         0344        1689        True
           01         0581         0350        1634        True
           02         0633         0364        1785        True
           03         0601         0340        1709        True
           04         0593         0336        1672        True

逻辑层测试结果:

     第一个测试:子任务测试

******************************************************************************************
        NO     NODENUM  FINALNODES       OPNUM      PASSED
            00         1056         1056        4417        True
           01         0858         0858        3566        True
           02         1021         1021        4284        True
           03         0784         0784        3214        True
           04         0912         0912        3757        True

      第二个测试:无子任务测试

******************************************************************************************
        NO     NODENUM  FINALNODES       OPNUM      PASSED
           00         0599         0320        1682        True
           01         0600         0336        1720        True
           02         0577         0304        1654        True
           03         0585         0311        1650        True
           04         0636         0362        1851        True

SYNC测试结果:

      SYNC对于大的数据集有问题

******************************************************************************************
        NO     NODENUM  FINALNODES       OPNUM      PASSED
            00         0052         0052        0334        False

时间测试结果:

     在我的笔记本上测,一年前的大众配置(2G内存 Intel 酷睿2),跑logic层的指令测时间:

    横坐标是节点个数,纵坐标是操作时间(ms)。测了4个最常用的操作:添加、删除、完成、更新,可见除了更新操作以外,其他操作基本上都是线性增加的。而且这个额外的操作时间主要来自逻辑层,而不是数据层,因为数据层主要是常数时间,如下所示数据层时间

  对于SYNC而言,在我的巨慢网速下测试如下所示,整体来说sync to要比sync from慢一些,不过几乎都在5秒以内。