admin管理员组

文章数量:1542757

手机软件测试其实分很多种。比如说:
集成版上的IT测试,
对日的事业者测试,
ST(系统)测试,
协议测试(一般针对3G手机的多媒体画质和视频电话),
底层的基站相关的测试,
各种外联设备(电压,电流,模拟器)相关的测试
FT(FT大多数翻译成场测)


**

软件测试理论知识

**
软件测试如何融入整个开发的流程,
什么时候介入,什么时候结束,
如何搭建测试环境,
如何设计测试用例(包括设计测试用例的方法,如:等价类划分,边界值法等),
如何使用测试工具,
还有测试领域专用的一些术语等等。


1.正确性测试。(功能性测试)

测试所有功能是否都已实现、正确、是否满足需求规格说明。

正确性测试还要考虑到用户界面,软件产品始终是关注软件使用者- - -客户的体验,手机屏幕小,界面有限,所以手机软件的用户界面更需有一定的规范和标准:

正确性、一致性、直观性、实用性、灵活性、舒适性

正确性一般比较明显, 比较容易发现,例如某个窗口没有被完全显示,文字没有对齐,文字拼写错误,密码输入时没有以*的形式自动屏蔽等。

初始设置无异常后,会对手机的简单功能进行测试,包括电话、短信/彩信、上网、媒体文件相关、相机、Email、流媒体相关、手机自带软件(如闹钟、计算器、日历等等)、上传下载、手机设置等基本功能进行测试,保证基本功能可用;

一致性包括软件自身的一致性以及手机操作系统或与其它软件的一致性,具体表现在使用的术语,字体是否一致, 界面的各参数风格是否前后一致等。特别也要注意中英文版本下界面风格是否一致,是否有中英文混合的情况。

直观性要求软件功能特性易懂、清晰,用户界面布局合理,对操作的响应是否在用户的预期中,如用户做了非法操作后,界面是否有错误的提示信息,提示信息是否完整,是否明确,是否能让用户立即明白问题所在。

实用性不是指软件本身是否实用,而仅仅是指具体的某个特性是否实用,是否有助于用户执行该软件的功能,手机软件是安装在手机上的第三方软件,手机不同于PC机,功能没有PC机强大,在手机上实现的功能也不同于在PC机_上的功能,所以功能不应复杂,无用的功能只会增加程序的复杂度,产生不必要的软件缺陷。但是个人觉得有些必要的功能还是一定要有的, 如:随时可以退出应用程序这个功能还是很必要的,用户进入多层之后,若想退出应用程序,但是又要一层-层返回到最上一层才能退出时,也是一件很烦很头疼的事。

灵活性,按我个人现在的理解,具体表现在,如果多种状态之间的切换,例如界面的不停切换,操作步骤的复杂,增加了编程的难度,可能也会降低软件的可靠性,这时软件的灵活性将会大打折扣。特别是在我们测试触屏手机的时候,界面的切换经常会导致一些界面卡住,乱码,黑屏,死机的情况,所以我们在测带有触屏手机时,一定要注意到灵活性。

舒适性主要强调界面美观,色彩运用恰当,按钮的立体感以及增加动感动画等。例如颜色的搭配,有些背景色跟文字或图片的颜色搭配在模拟器可以较清晰的显示出来,但是到了手机由于其分辨率问题就不那么明显了。颜色搭配要以清晰美观为基础,还要适当考虑用户心理等问题。

除了测试软件的正确功能,及其更需要考虑一些异常 的情况,异常的情况也分多种考虑,如下:

1、容错性测试
容错性测试是一种对抗性的测试过程。在这种测试中,把应用程序或系统置于异常条件下,例如输入特殊字符或异常字符,具体可以通过输入超过边界值的字符(这也相当于用例设计方法中的边界值分析法)看后台有没有相应的容错处理。手机客户端界面会给出什么样的提示信息。另外还要测试多个客户端同时发出请求,测试后台的多线程处理能力,看能同时处理多少用户的同时请求,平均响应时间是多少,是否在可接受范围内。

2、测试应用程序中的一一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰。
例如:运用程序运行时,切换程序到外部,做一些与运用程序相关的操作,再切换到应用程序中,查看刚刚的操作是否对正在执行的运用程序有影响。另外来电,短信,电量不足等一些事件警告的出现也有可能导致程序出错,也要作出相应的处理。有些网络程序由于设置了数据通讯时不处理来电,这时候最好能在低电量情况下测试,看是否做了恰当的处理。我们需要测试一下这 些干扰的冲突事件会不会导致应用程序core,手机死机、花屏等严重的问题出现。

(这个也算吧?)
冲突和交互测试:冲突测试,简单来讲是指多个软件对手机硬件进行使用,比如打电话和播放音乐都会用到声音,两者同时进行的话,就是一种冲突,需要测试手机对于这种冲突的优先级考虑;交互的话,就是说功能与功能之间是否有联系,比如在短信/彩信模块,你可以添加一张图片,这时候就可以访问照相机。

3、我们一定要考虑到对手机存储空间满后的压力测试。
手机的内存空间资源是有限,不像PC机有着巨大的存储空间,我们很容易做到手机存储空间已满,所以我们一定要考虑剩余空间不足或存储空间为零的情况下,应用软件的运行是否正常?我们要在手机没有存储空间或达到最大的承载极限时,对手机软件可编辑修改的模块进行编辑修改,保存之后,并对手机软件进行任何操作测试,如果程序员不做相应的处理或者处理不好的话,很容易造成配置文件读写错误或无法写入,从而导致手机软件系统出现core掉或者手机出现死机、无法退出的情况。虽然手机本身在磁盘空间己满的情况下也会出现不少问题,我们的应用程序也无法避免,但是我们一定要确保我们的程序不会出现core,程序无法退出,手机死机等这些严重情况出现。

4、极限发散性测试(暴力测试或压力测试)
做法是通过各种操作步骤或途径、异常或非法执行,站在不正常的用户角度,如快速按按钮或快速划屏、对某个功能做大量的重复性的操作等(如在登录过程中,不停的做登录和取消操作,不停地按几十下几百下),不把程序搞崩溃誓不罢休的暴力发散性测试,往往开发会狡辩与理论这是不正常的变态的测试,如果用户做此操作出现了问题由用户自己负责,确实世界上没有十全十美的东西,任何东西都会有瑕疵,软件也不例外,不可能做到零缺陷,我们不求做到最好,我们只求做到更好,试想用户的操作是多种多样的,谁能确保用户不会做到那些异常的非法的操作,我们不仅要确保正常功能实现的准确无误,一定还要做到异常非法的功能也要处理的准确无误,那样才能降低软件的缺陷率。通过我多次实践,发现不少严重致命的bug往往是由此操作导致,个人认为这与开发人员在异常情况下考虑不充分有一定的关系。

5、边界值测试
程序员会容易漏掉对边界值的处理,通过我多个版本的测试经历发现,每个版本都会出现这种边界值数组越界导致程序core掉的致命bug,曾经测试过手机界面显示N
个缩略图片的功能,显示几百张图片功能无误,但是超过某:个数字即几千张之后,应用
程序会立即出现一些致命的错误;同时在删除列表界面的第一个或者末尾 -个图片时,
也出现了严重问题。所以我们不仅仅只考虑到能编辑的文本框下边界值的测试,还要考
虑到其他一切尽可能输入的情况。

6、性能测试
我们不仅要测试软件功能的正确性,还要测试软件的性能,软件的运行速度,是否有延时,软件的运行时间,长期的运行是否会增加对存储空间的额外占用情况等。在软件运行时,要懂得不定时的查看资源的利用率,查看cpu 的占用情况,内存泄露会造成程序随机的莫名其妙core、 卡屏、手机死机的情况,而往往由内存泄露导致的问题,重启手机之后,问题不容易重现,并且再次内存泄露时,出现的现象也会不同,对我们测试重现问题来说是一个比较头疼的事 ,所以不定时的查看内存情况,查看内存是否泄露,出现的不易重现的严重问题是否与内存泄露有关,其实也是一种定位问题的方法。

(性能测试,主要是针对响应速度,一般性能测试都需要一个对比手机,比对测试结果,比如下载速度,打开应用速度,搜索本地文件速度,等等)

7、数据请求或传输等需时较多的过程要确保有提示界面,最好有动画显示数据在传输过程中,请用户耐心等待。另外要注意在这个过程中对重复按键予以忽略,因为等待时间过长或响应迟钝时,用户趋向于重复按手机按钮。曾经测试过删除某个文件,文件比较大,删除很慢,界面没有任何反应,无法判断是否在删除文件,迫不及待的重新乱按手机其他键,导致系统出现错误。

(8.信号测试,这个一般也需要对比手机,测试sim卡入网时间,短信彩信接收速度,上传下载速度,2G\3G\4G,WIFI等等速度,以及信号强度,也有外场移动测试等等,一般会使用一些软件,观测手机信号数值)

(9.稳定性测试,是指手机长期运行能力,比如连续使用7天以上不关机,测试手机是否会出现异常以及性能下降的情况)

(其他基本都是对手机某方面能力的针对性测试

还有一些高级一点的类似自动化测试,基本上就是随机点击以及按照固定脚本运行的自动测试,多用于重复性的操作和稳定性测试中

手机上一般会搭载一些第三方合作公司的产品,比如微信,微博,QQ等等,这些属于第三方应用,一般不会特意测试)

硬件也是测试的一部分,比如抗打击能力,抗热,掉漆,防水,老化测试,等等


(这就是个实际软件测试基本流程)

每一种测试的流程都是不同的。但是基本的流程如下:

1.测试需求分析
软件需求文档、软件规格说明书、开发人员的设计文档等。
侧一款软件首先要知道软件能实现哪些功能,如果是手机常规运用与手机平台原生态的东西可以不提供需求分析文档。(需求分析对于手机软件而言主要针对新的定制、新的应用等

2.测试计划/测试用例书写

测试计划:由测试PM负责制定,依据主要是项目开发计划和测试需求分析结果。包括:

  1. 测试背景
    a.项目介绍
    b.项目设计人员介绍及联系方式等
  2. 测试依据
    a.软件需求文档
    b.软件规格书
    c.软件设计文档
    d.其他,如参考产品等
  3. 测试资源
    a.测试人员需求
    b.测试样机需求
  4. 测试策略
    a.测试人员需求
    b.测试样机需求
    c.对测试人员进行培训等
  5. 测试日程
    a.测试需求分析
    b.测试用例编写
    c.测试实施,根据项目计划,测试分成哪些测试阶段(如单元测试、集成测试、系统测试阶段,外场测试、a、B测试等),每个阶段的工作重点以及投入资源等。

测试设计:对于手机而言,主要包括测试用例的编写。由于常规的测试点的用例都已经具备,这里主要针对新的需求与应用。

3.测试环境搭建,测试数据准备以及测试执行

测试执行阶段一般分为以下阶段:
确认测试–系统测试–验收测试–产品说明书 check,其中每个阶段还有回归测试验证的问题。单元测试、集成测试暂无需求,后期项目可根据实际情况添加。

从测试的角度而言,测试执行过程是要考虑量和度的问题,就是指测试的范围与测试的程度的问题。

**4.测试反馈。**一般指测试过程中发现异常,进行缺陷分析定位,然后和相关的开发人员进行对应,最后促使问题得到解决的过程。(测试faxianbug->评估提交bug->开发人员bug定位解决,与开发人员针对bug进行沟通,再现->bug修复之后的再测试,确定bug修复。)

4.软件评估
这里评估指软件经过一轮又一轮测试后,确认软件无重大问题或问题很少的情况下,对准备发布量产的软件进行评估,以确定是否能够投放市场。软件评估小组一般由项目负责人、 营销人员、部门经理等组成。

(先评估还是先反馈?评估=反馈吗?)

**5.回归测试。**所有测试结束之后,在版本提交之前必须进行的。
测试过程中很注重的几点是:
第一,要理解需求,不理解需求,不明白功能,测试无从谈起。
第二,设计测试用例要用心到位,测试是设计出来的,不是凭空臆测的。
第三,测试过程中的沟通和报告。包括自己不懂得业务,如何去向成手或者Leader学习业务,包括测试过程中对于不明白的功能的理解,不正常的现象的分析,bug提交前后和开发人员之间的交流等。

6.测试总结(有的是没有这个环节的)
项目已经发布量产,测试项目组可以通过各种方式对整个测试过程进行总结,可以是做的好的方面的经验,也可以是不足之处以便后续项目避免。

7.测试维护
由于测试的不完全性,当软件正式release 后,用户在使用过程中,难免遇到一些问题,有的甚至是严重性的问题,这就需要修改有关问题,修改后需要再次对软件进行测试、评估、发行。


简化总结:

1.正确性测试。(功能性测试)

正确性、一致性、直观性、实用性、灵活性、舒适性

2.容错性测试

把应用程序或系统置于异常条件下,例如输入特殊字符或异常字符,具体可以通过输入超过边界值的字符,看后台有没有相应的容错处理,手机客户端界面会给出什么样的提示信息。
另外还要测试多个客户端同时发出请求,测试后台的多线程处理能力,看能同时处理多少用户的同时请求,平均响应时间是多少,是否在可接受范围内。

3.冲突测试。测试应用程序中的一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰。

4.压力测试
主要针对手机存储空间满后的压力测试。在手机没有存储空间或达到最大的承载极限时,对手机软件可编辑修改的模块进行编辑修改,保存之后,并对手机软件进行任何操作测试

5.极限发散性测试(暴力测试或压力测试)
通过各种操作步骤或途径、异常或非法执行,站在不正常的用户角度,如快速按按钮或快速划屏、对某个功能做大量的重复性的操作等。

6.边界值测试
边界值数组越界,缩略图片超过规定数量。

7.性能测试
软件的运行速度,是否有延时,软件的运行时间(比如下载速度,打开应用速度,搜索本地文件速度,等等),长期的运行是否会增加对存储空间的额外占用情况等。

8.数据请求或传输的等待时间,以及等待时间较长时是否有提示界面。
另外要注意在这个过程中对重复按键予以忽略。

9.稳定性测试,是指手机长期运行能力,比如连续使用7天以上不关机,测试手机是否会出现异常以及性能下降的情况

本文标签: 测试手机软件