这是第一次测试报告,测试主要集中在对于数据层、逻辑层和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秒以内。