手机软件测试经验总结
手机软件测试总结
沙晶晶
一个合格的手机软件测试工程师要掌握的东西是很多很多的。在我个人理解中,一个合格的高级手机软件测试工程师应该具有最基本的两点知识:软件测试理论知识和一定的开发技能。
1.软件测试理论知识
这个不用多说,软件测试工程师必须要掌握的,软件测试如何融入整个开发的流程,什么时候介入,什么时候结束,如何搭建测试环境,如何设计测试用例(包括设计测试用例的方法,如:等价类划分,边界值法等),如何使用测试工具,还有测试领域专用的一些术语等等。
2.开发技能
合格的高级软件测试工程师,编程技能不可缺少。在手机测试中,比如自动化测试,完全可以开发工具来实现自动化测试。所以掌握一门扎实的编程语言,C或者C++还是非常重要的,能够自己开发测试工具,也是一个高级手机软件测试工程师应该具备的素质。我认为我们不应该只是单纯的发现bug,而应该从更深层次的去探究这个bug的原因,甚至可以定位bug。
另外从技能上讲,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这些是除去工作时间外必须去加强充电的部分。有这些做后盾,做起事来也会事半功倍。
另外手机测试中应该注意的问题
首先是正确性测试,正确性测试又可称为功能性测试,我们首先就是要测试所有功能是否都已实现、正确、是否满足需求规格说明。
正确性测试还要考虑到用户界面,软件产品始终是关注软件使用者客户的体验,手机屏幕小,界面有限,所以手机软件的用户界面更需有一定的规范和标准:正确性、一致性、直观性、实用性、灵活性、舒适性便是最基本的标准。
正确性一般比较明显,比较容易发现,例如某个窗口没有被完全显示,文字没有对齐,文字拼写错误,密码输入时没有以*的形式自动屏蔽等。
一致性包括软件自身的一致性以及手机操作系统或与其它软件的一致性,具体表现在使用的术语,字体是否一致,界面的各参数风格是否前后一致等。特别也要注意中英文版本下界面风格是否一致,是否有中英文混合的情况。
直观性要求软件功能特性易懂、清晰,用户界面布局合理,对操作的响应是否在用户的预期中,如用户做了非法操作后,界面是否有错误的提示信息,提示信息是否完整,是否明确,是否能让用户立即明白问题所在。
实用性不是指软件本身是否实用,而仅仅是指具体的某个特性是否实用,是否有助于用户执行该软件的功能,手机软件是安装在手机上的第三方软件,手机不同于PC机,功能没有PC机强大,在手机上实现的功能也不同于在PC机上的功能,所以功能不应复杂,无用的功能只会增加程序的复杂度,产生不必要的软件缺陷。但是个人觉得有些必要的功能还是一定要有的,如:随时可以退出应用程序这个功能还是很必要的,用户进入多层之后,若想退出应用程序,但是又要一层一层返回到最上一层才能退出时,也是一件很烦很头疼的事。
灵活性,按我个人现在的理解,具体表现在,如果多种状态之间的切换,例如界面的不停切换,操作步骤的复杂,增加了编程的难度,可能也会降低软件的可靠性,这时软件的灵活性将会大打折扣。特别是在我们测试触屏手机的时候,界面的切换经常会导致一些界面卡住,乱码,黑屏,死机的情况,所以我们在测带有触屏手机时,一定要注意到灵活性。
舒适性主要强调界面美观,色彩运用恰当,按钮的立体感以及增加动感动画等。例如颜色的搭配,有些背景色跟文字或图片的颜色搭配在模拟器可以较清晰的显示出来,但是到了手机由于其分辨率问题就不那么明显了。颜色搭配要以清晰美观为基础,还要适当考虑用户心理等问题。
除了测试软件的正确功能,及其更需要考虑一些异常的情况,异常的情况也分多种考虑,如下:
1、容错性测试
容错性测试是一种对抗性的测试过程。在这种测试中,把应用程序或系统置于异常条件下,例如输入特殊字符或异常字符,具体可以通过输入超过边界值的字符(这也相当于用例设计方法中的边界值分析法)看后台有没有相应的容错处理。手机客户端界面会给出什么样的提示信息。另外还要测试多个客户端同时发出请求,测试后台的多线程处理能力,看能同时处理多少用户的同时请求,平均响应时间是多少,是否在可接受范围内。
2、测试应用程序中的一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰。
例如:运用程序运行时,切换程序到外部,做一些与运用程序相关的操作,再切换到应用程序中,查看刚刚的操作是否对正在执行的运用程序有影响。另外来电,短信,电量不足等一些事件警告的出现也有可能导致程序出错,也要作出相应的处理。有些网络程序由于设置了数据通讯时不处理来电,这时候最好能在低电量情况下测试,看是否做了恰当的处理。我们需要测试一下这些干扰的冲突事件会不会导致应用程序core,手机死机、花屏等严重的问题出现。
3、我们一定要考虑到对手机存储空间满后的压力测试。
手机的内存空间资源是有限,不像PC机有着巨大的存储空间,我们很容易做到手机存储空间已满,所以我们一定要考虑剩余空间不足或存储空间为零的情况下,应用软件的运行是否正常?我们要在手机没有存储空间或达到最大的承载极限时,对手机软件可编辑修改的模块进行编辑修改,保存之后,并对手机软件进行任何操作测试,如果程序员不做相应的处理或者处理不好的话,很容易造成配置文件读写错误或无法写入,从而导致手机软件系统出现core掉或者手机出现死机、无法退出的情况。虽然手机本身在磁盘空间已满的情况下也会出现不少问题,我们的应用程序也无法避免,但是我们一定要确保我们的程序不会出现core,程序无法退出,手机死机等这些严重情况出现。
4、极限发散性测试
我个人经常喜欢说成是暴力测试或压力测试,我的做法是通过各种操作步骤或途径、异常或非法执行,站在不正常的用户角度,如快速按按钮或快速划屏、对某个功能做大量的重复性的操作等(如在登录过程中,不停的做登录和取消操作,不停地按几十下几百下),不把程序搞崩溃誓不罢休的暴力发散性测试,往往开发会狡辩与理论这是不正常的变态的测试,如果用户做此操作出现了问题由用户自己负责,确实世界上没有十全十美的东西,任何东西都会有瑕疵,软件也不例外,不可能做到零缺陷,我们不求做到最好,我们只求做到更好,试想用户的操作是多种多样的,谁能确保用户不会做到那些异常的非法的操作,我们不仅要确保正常功能实现的准确无误,一定还要做到异常非法的功能也要处理的准确无误,那样才能降低软件的缺陷率。通过我多次实践,发现不少严重致命的bug往往是由此操作导致,个人认为这与开发人员在异常情况下考虑不充分有一定的关系。
5、边界值测试
程序员会容易漏掉对边界值的处理,通过我多个版本的测试经历发现,每个版本都会出现这种边界值数组越界导致程序core掉的致命bug,曾经测试过手机界面显示N个缩略图片的功能,显示几百张图片功能无误,但是超过某个数字即几千张之后,应用程序会立即出现一些致命的错误;同时在删除列表界面的第一个或者末尾一个图片时,也出现了严重问题。所以我们不仅仅只考虑到能编辑的文本框下边界值的测试,还要考虑到其他一切尽可能输入的情况。
6、性能测试
我们不仅要测试软件功能的正确性,还要测试软件的性能,软件的运行速度,是否有延时,软件的运行时间,长期的运行是否会增加对存储空间的额外占用情况等。在软件运行时,要懂得不定时的查看资源的利用率,查看cpu的占用情况,内存泄露会造
成程序随机的莫名其妙core、卡屏、手机死机的情况,而往往由内存泄露导致的问
题,重启手机之后,问题不容易重现,并且再次内存泄露时,出现的现象也会不同,对我们测试重现问题来说是一个比较头疼的事,所以不定时的查看内存情况,查看内存是否泄露,出现的不易重现的严重问题是否与内存泄露有关,其实也是一种定位问题的方法。
7、数据请求或传输等需时较多的过程要确保有提示界面,最好有动画显示数据在传输过程中,请用户耐心等待。另外要注意在这个过程中对重复按键予以忽略,因为等待时间过长或响应迟钝时,用户趋向于重复按手机按钮。曾经测试过删除某个文件,文件比较大,删除很慢,界面没有任何反应,无法判断是否在删除文件,迫不及待的重新乱按手机其他键,导致系统出现错误。
扩展阅读:手机软件测试的经验总结
手机软件测试的经验总结
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处理事件,看是否做了恰当
的处理。
以上经验同样适合开发人员参考,以便尽量避免类似问题的出现。
友情提示:本文中关于《手机软件测试经验总结》给出的范例仅供您参考拓展思维使用,手机软件测试经验总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《手机软件测试经验总结》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/559193.html
- 下一篇:软件测试实习报告范文