第一篇:手机版本工程管理系统的测试总结
手机版本工程管理系统的测试总结
这次手机版工程管理系统的测试,对于我来说是一个比较新的项目,这个新不是指项目或业务,而是指一个全新的领域——手机测试。
在执行测试过程中,我不断探索,查阅相关资料,最终总结出一套测试方法,如下:
一、获取安装包
获取安装的途径有很多,最主要的有:WAP下载、PC下载再通过TF卡安装、蓝牙传输
二、安装卸载 程序安装包:icon显示正确,版本号显示是否符合要求,安装后是否显示该软件包大小。
程序安装时:是否可以选择覆盖已有程序或不覆盖已有程序,用户选择后,系统是否操作正确。
程序安装位置:安装到手机或 TF卡
程序安装过程:提示信息正确性,意思明确
卸载结果:卸载成功、卸载干净
三、UI测试
分辨率:测试不同手机分辨率下客户端软件的显示情况(图片、文字内容等)前景色与背景色:查看是否协调统一 按钮:与正在进行的操作无关的按钮应该加于屏蔽 焦点与非焦点:控件的焦点与非焦点状态的边框要有明显的区别。对于控件上的焦点掌握,在不同颜色下的边框有着严格的要求。即在选中与未选中下,UI对于控件不同,这对于UI测试的要求更高。
长操作:长操作(下载,上传,更新,登录等)时,要有明确的动态指示logo或文字(例如:loading…等),表明操作正在进行中。手机访问速度没有PC快,对于手机小屏幕很容易失去耐心,简短的提示就是为了让用户继续停在当前页面,同时友好的UI界面提示也显得很重要。
提示说明:对于非法的输入或操作应有足够的提示说明,提示、警告或错误说明应该清楚、明了、恰当的跳出提示警告画面,但冲击力不能太强。
文字描述的准确性:a.文字描述与对应功能是否一致 ;b.错别字。 文字用语的一致统一:父窗口的选项与子窗口标题统一一致。
产品帮助文档:a.与产品功能和截图配套一致,当重新打包新系统时,及时更新产品帮组文档; b.文档格式; c.帮助中应该提供技术支持方式,一旦用户难于解决可以方便寻求新的帮助方式。
版权和商标:产品的版权和商标的logo和文字申明(一般在启动界面或者软件
产品的“关于”选项里面);涉及公司的形象和品牌,一定要规范标准化。
自定义界面给用户提供自定义界面风格,由用户自己选择颜色和字体。满足不同
用户习惯,同时满足用户对于一些颜色偏差(如色弱用户)。
四、功能测试
测试软件的基本功能测试,如:打开、退出、登录、注销、更新、跳转、返回、搜索、帮助、等等。 登录功能
1、登录系统时,是否进行了用户名和密码正确性的检验。
2、用户名和密码输入内容的限制。用户名和密码只支持小写字母a~z,数字0~9的输入,或者字母及数字组合。
3、勾选记住密码,系统是否能如实操作。
注销功能
1、点击主页面的退出按钮即退出系统登录状态,点击时,系统是否给予确认提示。
2、或者点击手机上的返回键,系统是否给予正确响应。
返回功能
1、点击返回时,系统是否返回到当前操作的上一个操作页面。
五、业务相关测试
测试软件的业务流程。
1、用户具有的数据权限在手机版工程管理系统中是否如实体现。
2、用户在PC机上对工程管理系统的操作,是否及时体现到了手机版本的工程管理系统,如:更改密码,对权限范围内的信息增删改等。
六、性能测试
目前手机所具有的功能比较简单,所以只通过安装了一个流程监控软件来监视其持续操作时,占用的流量情况。
次数相关的性能测试是测试终端重复稳定地进行某项功能的能力,主要是对成功率的测试。重复操作包括很多对象被多次创建和释放,因此可能会发现潜在的内存泄漏等问题。
如果功能众多情况时,需要重新安排优先级进行选取;优先级选取标准: 基本功能优先:主要指模块的主要功能,如:登录、注销、搜索等。
内存使用较大的操作优先:考虑到测试目的主要是检测内存泄漏问题,故应该选择内存使用率较大的项目进行测试,如:对搜索结果进行翻页操作、查看合同清单详情等等。
并发测试:主要是测试终端同时进行多项业务时表现出的处理能力。如:把程序置
于后台运行,同时去对另外一个程序进行操作
负载测试:系统配置不变的条件下,在一定时间内,终端在高负载情况下的性能行
为表现。
内存高负载测试:主要测试在内存在高负荷状态下的性能行为表现。主要是将时间
相关、次数相关、并发业务融合到一起进行测试,查看程序是否正常。
七、交互测试
网络交互:移动(cmnet、cmwap)、联通(uninet、uniwap)、WIFI
手机交互:CALL、SMS、MMS、响铃等
异常交互:断网、断电
八、用户体验性测试
易用性、使用习惯、操作感受
第二篇:手机通讯录管理系统
#include
char name[20];
char tel[12];
char kind;
char email[50];public:
Information(){}
Information(char N[],char T[],char K,char E[])
{
strcpy(name,N);
strcpy(tel,T);
kind=K;
strcpy(email,E);
}
friend void main();};void main(){
cout<<“☆★☆★☆★☆★☆★☆”< cout<<“ 菜单 n”; cout<<“---------------------”< cout<<“1 信息录入n”<<“2 按姓名查找n”<<“3 修改n”<<“6 删除n”<<“0 退出n”; cout<<“请选择: ”; char p;char w; Information *s[16]; ofstream *file[16]; ofstream *file2[30]; int i=0; int j2=0; int j=0; bool flag2=0; do { cin>>p; if((p>='0'&&p<='8')) flag2=1; 按类别查找n“<<”4 插入n“<<”5 else cout<<“指令错误!请重新输入:”< }while(flag2==0); do{ switch(p) { case '1': { char c; char name[20];char tel[12];char kind;char email[50]; do{ bbb: cout<<“请输入姓名”< cin>>name; cout<<“请输入电话号码:”< cin>>tel; eee: cout<<“请输入类别(A办公类B个人类C商务类):”< cin>>kind; if(kind!='A'&&kind!='B'&&kind!='C') { cout<<“类别错误,请重输”; goto eee; } cout<<“请输入电子邮箱:”< cin>>email; file[j]=new ofstream(“d: ongxunlu.txt”,ios::ate); *file[j]<<“姓名”< j++; s[i]=new Information(name,tel,kind,email); for(int y=0;y { if(strcmp(s[y]->tel,s[i]->tel)==0) {cout<<“输入重复电话号码,请重输!”< goto bbb;} } for(int u=0;u { if(strcmp(s[u]->name,s[i]->name)==0) { cout<<“输入重名,请重输!”< goto bbb; }} i++;if(i==15){ cout<<“内存已满,无法录入!”< break; } cout<<“数据录入成功,想继续录入吗(y/n)”< cin>>c; flag2=0; do { if(c!='y'&&c!='n') { cout<<“指令错误!请重新输入!”< cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case '2': { char n[20];int j=0;char c; do{ int flag=0; cout<<“请输入你要查询的人员姓名”< cin>>n; for(int j=0;j { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<“您要查询的是:”<<(*s[j]).name< cout<<“电话号码 ”<<(*s[j]).tel< } } if(flag==0) cout<<“对不起!您要查询的人不存在!”< cout<<“您想继续查询吗?(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令错误!请重新输入!”< cin>>c; } } while(c=='y'); break; } case '3': { char k;int j=0;char c; do{ int flag=0; cout<<“请输入你要查询的类别”< cin>>k; for(int j=0;j { if(k==(*s[j]).kind) { flag=1; cout<<“您要查询的是:”<<(*s[j]).name< cout<<“电话号码 ”<<(*s[j]).tel< } } if(flag==0) cout<<“对不起!您要查询的不存在!”< cout<<“您想继续查询吗?(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令错误!请重新输入!”< cin>>c; } } while(c=='y'); break; } case '4': { char name[20];char tel[12];char kind;char email[50]; char c;int j=0; do { aaa: cout<<“请输入您要插入的人的姓名:”< cin>>name; cout<<“请输入电话号码:”< cin>>tel; cout<<“请输入类别(A办公类B个人类C商务类):”< fff: cin>>kind; if(kind!='A'&&kind!='B'&&kind!='C') {cout<<“类别错误,请重输”; goto fff;} cout<<“请输入电子邮箱:”< cin>>email; file[j]=new ofstream(“d: ongxunlu”,ios::ate); *file[j]<<“姓名”< j++; s[i]=new Information(name,tel,kind,email); for(int y=0;y { if(strcmp(s[y]->tel,s[i]->tel)==0) {cout<<“输入重复电话号码,请重输!”< goto aaa;}} for(int u=0;u { if(strcmp(s[u]->name,s[i]->name)==0) {cout<<“输入重名,请重输!”< goto aaa;}} i++; if(i==15||i==16) {cout<<“内存已满,无法录入!”< cout<<“数据录入成功,想继续录入吗(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令错误!请重新输入!”< cin>>c; } }while(c=='y');qqq: break; } case '5': { char name[20];flag2=0; char c; do { cout<<“请输入您要修改的人的姓名:”< cin>>name; for(int h=0;h { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<“请输入新的电话号码:”< cin>>s[h]->tel; cout<<“请输入新的类别(A办公类B个人类C商务类):”< cin>>s[h]->kind; 箱:“< } } cout<<”请输入新的电子邮cin>>s[h]->email; cout<<“数据修改成功!”; if(flag2==0) { cout<<“您要修改的人本来就不存在!请检查重新输入!”< } cout<<“想继续修改吗(y/n)”< if(c!='y'&&c!='n'){ “< } case '6': { 存在!请检查输入的正确性!”; “< cout<<”指令错误!请重新输入! cin>>c; } }while(c=='y');break;char name[20];bool flag3=0;char c;do{ cout<<“请输入您要删除的人的姓名:”< cin>>name; for(int h=0;h { if(strcmp(name,s[h]->name)==0) { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<“您要求删除的对象本来就不 cout<<”要继续删除吗?(y/n)“< cin>>c; if(c!='y'&&c!='n') { cout<<”指令错误!请重新输入! cin>>c; } }while(c=='y'); break; } case '0': { exit(0);break; }} cout<<“您想继续进行其他操作吗?(y/n)”< bool flag4=0; do { cin>>w; if(w!='y'&&w!='n') cout<<“指令错误!请重新输入!”< else flag4=1; }while(flag4==0); if(w=='y') { cout<<“※※※※※※※※※※n”<<“2 按姓名查找n”<<“3 按类别查找n”<<“4 插入n”<<“5 修改n”<<“6 删除n”<<“0 退出n”; cin>>p;} else exit(0);}while(w=='y');for(int x=0;x delete s[x]; cout<<“delete all members!”< } 手机游戏测试总结 1.在模拟器上图像处理速度较快,不会出现移动的图像变模糊的现象,由于手机的分辨率较低,有可能出现移动物体变模糊不能清晰辨认的情况,这时应该让开发人员适当调慢移动的速度; 2.主界面和帮助界面之间连续若干次切换,可能会出现图像重叠现象,原因是手机的CPU处理速度跟不上刷新速度,而主界面的图片资源一直没有释放,可用测试工具Grinder测出来; 3.是否正确处理来电、断电等突发情况,音效、游戏进度有无做相应处理; 4.模拟网络不通的情况。断开网络连接,测试软件的内存是否有正确释放; 5. 手机测试心得 时间过的真快,一晃自己已经工作一年多了。通过这段时间的学习,对手机测试工作有了一定的认识和理解,自己也从一个尝试学习的软件测试实习生升任为软件测试工程师。总结了一下一年多自己的心得体会。 软件测试是一个提升产品质量的必要条件,也是提高产品质量的最直接最有效的手段。软件测试渐渐成为软件行业最关键和重视的一个环节,所以做软件测试还是很有前途的。要成为一名合格的测试人员在测试过程中首要条件是测试人员要勤奋并富有耐心、善于学习、思考和发现问题,细心能够有条理的总结问题,这样才能有机会成为出色的测试人员。下面是我列出的我比较容易犯的错误: 1.认真细致的依据test case进行测试,不要以为test case比较简单,不能找出问题,test case是手机最基本功能的测试点,只有掌握了手机最基本的功能,从而认真思考各功能点的衔接性,拓展测试思路,才能更全面的找到bug; 2.提交bug时要尽量以最简单的方式重现bug步骤,语句简单易懂。注意错别字; 3.测试人员要及时的关注和跟进开发的进程,每个新版本要着重测试开发修改和增加的功能,因为开发修改或增加一个功能可能会引发许多新问题; 4.不要以为智能机只是比功能机多增加了几个功能模块而已; 5.扩展测试思路,多尝试些不同的操作,软件测试需要以站在真实用户的位置考虑,比如变态测试、无聊测试等; 6.学习与软件测试相关的知识。学习手机操作系统的知识有助于你发现缺陷,定位问题更加准确; 7.进行手机测试时要有明确的测试范围和测试目的,不能漫无目的,看见模块就测试,当产生焦躁的情绪,就很难发现问题了; 8.测试时一般都会有很多问题,需要耐心和严谨,不能因为难度大步骤繁琐或测试环境部署麻烦而偷工减料,导致漏测; 9.测试人员要学会控制情绪; 10.测试人员要善于和开发沟通,需要给出较有力的依据证明这个问题是个BUG,在提交概率性bug时最好是能提供log等; 软件测试最主要的是测试人员的态度和理想,软件测试这个行业的前途是光明的,要使自己热爱测试的工作,在工作中善于总结。 软件测试并不单纯只是为了找BUG,而是为了保证软件的质量问题,不能把BUG数作为衡量一个测试人员的尺度,提交的bug能修复软件最多漏洞的测试人员才是好的最出色的软件测试。 手机测试的经验总结 查看(35)/ 评论(0)/ 评分(0 / 0) 1.在提交高通前务必要检查文档与实际程序的功能表现是否相同,比如说,游戏增加了密技功能,在文档中就要有相应的说明。 2.在模拟器上图像处理速度较快,所以不会出现游戏中移动的图像变模糊的现象,但是由于手机的分辨率相对低,所以一般在模拟器显示正常的速度,到了手机就应该让开发人员适当调慢,否则将会出现移动物体变模糊不能清晰辨认的情况。 3.有些游戏使用了很多的图片资源,当在两个界面之间(例如在主菜单界面和帮助界面之间,主界面菜单是由许多图片组成的,帮助界面是一个html文件的浏览显示),连续按若干次使其在两个界面之间连续切换,会出现图像重叠现象,其原因是手机的CPU处理速度跟不上刷新速度,而且主界面的图片资源一直没有释放,导致图像的残留。一般可模拟Grinder把这些类似的问题测出来。 4.是否正确处理来电。如果没有适当正确的来电处理,有些来电会使游戏画面变乱,有些直接退出,甚至死机。Brew程序员往往会在来电处理后的恢复中忘了对游戏音乐的处理,比如说原先选择了关闭音乐的,来电处理后音乐又自动开始播放了。有时候需要模拟两个或以上的连续的来电以发掘程序深层的逻辑错误,这些错误大多是来电处理后的恢复过程的错误。另外短信,电量不足等一些事件警告的出现也有可能导致程序出错,也要作出相应的处理。 5.注意确保游戏说明和帮助的完整清晰,检查系统提示信息,确保在游戏中出现的文字的正确拼写,没有错别字。要尽量用敬称“您”而不用“你”。 6.标题,菜单等的文字显示要尽量用小字体,尽量缩短文字,能用简短文字说明清楚的就不要用长句,例如“按2,4键可以左右移动图片”就可改成“按2,4键左右移动图片”,或者甚至改成“按2,4键移动图片”。因为不同的手机显示屏幕宽度不一样,在一款手机上显示正确不代表在其他款式都能正确显示,然而用小字体,短句子就能适应大多数手机的屏幕宽度。 7.线程的处理,有些游戏设有多个线程,如果没有处理好线程的调用释放问题的话,就很可能出现线程争用的问题。例如一个宠物游戏,宠物死亡后,会调用一个新的线程循环播放哀吊音乐,有些程序员由于粗心大意忘记了释放这个线程,当重新开始游戏时,就会出现这个线程播放的音乐与游戏过程的背景音乐交替播放的情况。 8.文件处理。当涉及文件读写操作的时候,要特别注意测试文件操作带来的内存问题。比如说,有些游戏需要用文件记录游戏最高分或分值等,要注意测试第一次运行程序时的退出操作(此时没有最高分记录或其他分值记录),程序是否申请了文件指针或文件资源而没有释放。如果是的话,则会导致退出时的内存错误。另外对于Brew,应用程序的文件包中不得包含零字节的文件,每个文件至少有一个字节,同时还要求不能包含无用的文件或文件夹,目的是节省手机上有限的存储资源。9.颜色的搭配,有些背景色跟文字或图片的颜色搭配在模拟器可以较清晰的显示出来,但是到了手机由于其分辨率问题就不那么明显了。颜色搭配要以清晰美观为基础,还要适当考虑游戏的种类,用户心理等问题。 10.用模拟器模拟网络不通的情况。目的是测试软件的网络连接,网络资源请求,缓冲区存储等模块的性能,看看内存是否有正确释放等。可以通过断开网络连接的方法模拟手机网络不通的情况,具体就是把本地连接的状态设成禁用或者直接拔掉网络连接线。 11.数据请求或传输等需时较多的过程要确保有提示界面,最好有动画显示数据在传输过程中,请用户耐心等待。另外要注意在这个过程中对重复按键予以忽略,因为等待时间过长或响应迟钝时,用户趋向于重复按手机按钮。 12.不要忽略了对后台数据正确性的测试。输入特殊字符或异常字符,看后台有没有相应的容错处理(当然这些也可由手机端处理)。多个客户端同时发出请求,测试后台的多线程处理能力,看能同时处理多少用户的同时请求,平均响应时间是多少,是否在可接受范围内。 13.来电,短信,电量不足等一些事件警告的出现也有可能导致程序出错,也要作出相应的处理。有些网络程序由于设置了数据通讯时不处理来电,这时候就要在低电量情况下测试,用电量不足的警告事件来触发程序的suspend和resume处理事件,看是否做了恰当的处理。以上经验同样适合开发人员参考,以便尽量避免类似问题的出现。第三篇:手机游戏测试总结
第四篇:手机测试心得总结
第五篇:手机游戏测试总结