1、涉及到手机终端适配、网络环境兼容等多个方面。测试执行:23 轮功能测试,7 轮系统测试 ,8 轮健全测试,3 轮机型兼容测试,3 轮性能测试,1 轮 MTBF 测试,1 轮 PD/UI 验证测试。但是这其中有很多不足之处,较明显的如下:1 、前期功能测试和健全测试一天一轮,频度太快且测试费时,效果不好。2 、初期的 测试用例 设计全面,但未精确定义编写粒度,描述过程过细,后期因需求变更导致维护成本较高。3 、因项目流程和过程控制影响,无法明确划分测试阶段,且初期没有找到最佳敏捷测试方法,测试流程冗余僵化,导致大量重复性的工作,灵活性偏低。在测试进程中我们已发现测试策略的问题,并及时调整,在阶段
2、二开始使用新策略使用两阶段测试模型:1 、阶段一 :按照探索性测试(Exploratory Testing)模式,布置有针对性有重点的自由测试,以“把软件使用坏掉”为目的,尽可能多发现 bug。2 、阶段二 :执行各项测试用例,以“ 全面测试”为目的具体的时间安排如下:1 、先期产品开发阶段,即 Alpha release 之前,做功能测试、健全测试、缺陷验证+自由测试。2 、项目中期,Alpha Beta 之间,执行全面的系统测试、兼容性测试、性能测试,并开展自动化脚本开发、环境搭建等工作。3 、 Beta release 之后,在产品发布前的 23 周,就开始确定稳定版本 Release
3、Candidate,在此版本基础上做最后一轮全面测试、重点子模块的健全测试、缺陷主导的 ET 等,完成最终报告并交由项目组领导、QA 审核发布。最近一直在做智能手机小应用的跟踪验证测试,故障单是由测试高手提供的,是一个非常完善的测试队,连我们的开发团队都感叹他们的敏锐,能发现潜在的 Bug。在验证之余,我认真研究了他们出的故障单,做了一些总结:1 、手机软件系统测试的角度分为:功能模块测试,交叉事件测试,压力测试,容量性能测试,性能测试和用户手册测试等。2 、功能模块测试:首先应分析功能模块的功能项,测试每个功能项是否能够实现对应的功能。一般根据测试案例(Test Case)或软件本身的流程就
4、可以完成基本功能测试。(相对简单,故障也较容易解决)3 、交叉事件测试:又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。例如通话过程中接收到短信或来响闹。应该以执行干扰的冲突事件不会导致手机死机或花屏等严重的问题。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。另外有中英文模式的切换的手机要注意中英文模式切换后的功能实现存在的问题,通常会被测试人没忽略。4 、压力测试:又叫边界值容错测试或极限负载测试,即测试过程中,已经达到某一软件功能的最大容量,边界值或最大的承载极限,仍然对其进行相关操作。例如连续进行短信的接收和发送,超过收件箱和 PIM
5、 卡所能存储的最大的条数,仍然进行短消息的接收或发送,以检测软件在超常态条件下的表现,来评估用户能否接受。压力测试用手工测试非常繁锁,可以考虑自动化测试,目前没有比较大量使用的工具,一般都是由开发人员配合开发出的工具,或者高级的测试人员编写出的脚本。5 、容量测试:又叫满记忆体测试,包括手机的用户可用内存和 SIM/PIM 卡的所有空间被完全使用的测试。此时再对可编辑的模块进行和存储空间有关的任何操作测试,如果软件的极限容量状态下处理不好,有可能导致死机或严重的花屏等问题的出现。与压力测试有些类似,也可考虑自动化测试。6 、兼容性测试:也就是不同品牌手机,不同网络,不同品牌和不同容量大小的 S
6、IM/PIM 卡之间的互相兼容的测试,以短消息为例:中国电信的小灵通接收到从中国移动或中国联通 GSM 发来的短消息,接收,显示和回复功能是否正常等另外从我测试的这几个小模块中,按与时间相关和文字两方面容易出现故障的地方总结如下:1 、与时间相关:首先是时间的输入域,是否有输入限制,如:文字、标点符号、小时大于 24 或 12、分钟大于 60、秒大于 60、月大于 12、日大于 31(按月情况而定)等特别注意日期变更分界点如 23:59 或 12:59 的变化。以及 12/24 小时切换模式的测试。2 、文字输入相关:当界面过多时,注意功能按钮的点击事件能否正常完成相应功能的实现。超过文字字数
7、限制时的系统提示等。对于当前背景下的手机测试来说,要做好手机软件测试,主要从以下几个角度进行测试:UI 测试,功能模块测试,交叉事件测试,容量性测试,用户手册测试等。1 、 UI 测试用户界面 (以下简称 UI)测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等, UI 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。2 、 功
8、能测试功能测试指测试软件各个功能模块是否正确,逻辑是否正确。对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。3 、交叉事件测试交叉事件测试是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。例如在运行手机软件程序的过程中接收到短信或来响闹。应该以执行干扰的冲突事件不会导致手机死
9、机或花屏等严重的问题出现为 Pass 的标准。4 、容量性测试容量性测试主要测试软件测试的性能,包括负载测试,强度测试,基准测试以及基准测试4.1 负载测试负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。4.2 强度测试强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写
10、系统要求的软硬件水平要求。实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。5 、用户手册测试手机软件的用户手册测试主要是看软件功能介绍是否准确、简洁地描述该软件功能,且不会让用户产生误解。手机软件测试类型及分析1)Basic Function 基本功能测试:就是验证手机基本功能是否实现,发短信、通话、照相等,包括他们的子功能如转发、连拍等。最基本的也是投入时间精力最大的测试类型,也是最重
11、要的,如果基本功能都没有实现其他测试也就变成枉然了2 ) UI 用户界面验证 :验证手机的界面、菜单等是否是与客户需求和设计保持一致,主要依据 UI spec用户界面说明,MMI人机交互界面,Menu tree菜单树等,这些文档也是需要根据客户需求及时更新的3 ) Limit Value 极限值测试:对应黑盒测试的边界值分析法,边界值分析法设计出的测试用例发现 bug 的能力也是最强的,一般依据极限值表设计测试用例,来指导测试。一般测试点如输入字符的个数,会议通话的个数,文档存储个数等4 ) Confict Test冲突测试:主要依据冲突表,冲突表中列出各个事件之间是否存在冲突,冲突测试用例也
12、是依据冲突表设计,这类用例往往可以发现一些比较严重的 bug ,如游戏中来电,流览 WAP 时插拔充电器、USB 线、camera 中低电等5 ) Performance Test性能测试:主要测试项 Call test ,长时间通话,发送大容量的彩信条,开关机次,摄像时间,可以考虑用自动化测试,手机自动化测试与 PC 软件自动化测试类似,利用自动化测试工具录制、调试 写脚本、回放、分析结果,与 PC 软件不同的是手机自动化测试需要硬件的支持来固定手机和利用气压按键。6 ) Stress Test压力测试:压力测试是在将手机容量存储状态到满后做的一系列操作,如短信、彩信满,Idle 界面各事件
13、个数满如未接电话、闹铃等7 ) Network Compatibilit网络兼容性测试:网络参数的设置,GPRS 等业务是否可用,本外地的联通移动卡各类业务卡在本地的作测试,还需要做 Filed Test场测即到最终用户实际使用的环境作现场测试,Filed test 有国际专用用例。8 ) SIM Card CompatibilitSIM 卡兼容性测试:一般是对联通移动的各类业务卡,新出的大容量(64K)、国际漫游卡、呼叫限制卡、一卡双号卡等卡的验证,验证能否正确注册、对应的业务功能是否实现、基本功能的正确性9 ) PD test Project Design Test:验证在项目设计阶段的设
14、计的功能是否得以实现、是否正确,设计用例依据项目设计文档10)CR Verification客户需求验证:验证客户的一些特定需求和变更后的需求11)User Manual 用户手册验证:其重要性是不言而喻的,用户手册一定要和手机实际功能相符合,不然将会影响用户对产品的信任12)FAT( Full Type Approval)全类型批准:是 GSM 手机进入 GSM 网络必须通过的专业测试。浅谈手机软件测试用例设计方法手机产品和用户交互非常紧密,手机的软件质量就显得尤其重要。要使最终用户对手机软件感到满意,必须要在手机软件发布之前进行充分的测试。而不完全、不彻底是软件测试的致命缺陷,但是我们又不
15、可能进行穷举测试,任何程序只能进行少量而有限的测试。为了节省时间和资源,提高测试效率,我们必须要从数量极大的可用测试数据中精心挑选出具有代表性或者特殊性的测试数据进行测试。测试用例在此情况下产生。测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且产生程序所设计的执行结果。Grenford J. Myers 在The Art of Software Testing一书中提出:一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试,由此可见测试用例设计工作在整个测试过程中的重要地位。测试用例设计的好
16、坏直接影响到测试的效果。目前很多公司的测试用例都是依据需求或者规范规格,测试用例设计人员根据经验来写测试用例,这种情况就会导致测试用例覆盖面不全、测试用例规划不合理,甚至存在测试用例冗余的情况。测试用例覆盖面不全会导致出现漏测少测,将问题直接流向用户;测试用例规划不合理、测试用例冗余会造成人力浪费,导致测试效率低下。因此不能只凭借一些主观或直观的想法来设计测试用例,应该以一些比较成熟的测试用例设计方法为指导,再加上设计人员个人的经验积累来设计测试用例。目前业界比较成熟的测试用例设计方法主要有:等价类划分法,边界值分析法,错误推测法,因果图法,正交实验设计法等。等价类划分法等价类划分法是测试用例
17、设计中一种重要而常用的设计方法,它将不能穷举的测试用例进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。边界值分析法边界值分析法就是对输入或输出的边界值进行测试设计的一种方法。通常边界值分析法是作为对等价类划分法的补充。长期的测试工作经验告诉我们,大量的错误发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于或刚刚小于
18、边界的值而不是中间值作为测试数据。错误推测法错误推测法是指在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。错误推测方法的基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如, 在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误、输入数据和输出数据为 0 的情况、输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。因果图法因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组
19、合情况。等价类划分法和边界值分析方法都是着重考虑单个输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。而如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图来设计。正交试验设计法正交试验设计法。利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担。
20、为了有效地、合理地减少测试的工时与费用,可利用正交试验设计方法进行测试用例的设计。正交试验设计方法依据 Galois 理论, 它是根据正交性,按照 “均匀分散,齐整可比 ”的特点从大量的(试验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排试验(测试)的一种科学实验设计方法。它简单易行,计算表格化,使用者能够迅速掌握,是一种高效率、快速、经济的试验设计方法。以上这些方法各有优缺点,在设计过程中可以叠加使用,取长补短,使得设计出来的测试用例规划合理,裁剪得当,既能保证覆盖面,又能保证测试的效率,所以在测试用例的设计过程中得到了广泛的应用。OPhone 测试团队在测试用例的设计阶段
21、充分运用这些方法,在测试用例的设计过程中极大的减少主观因素的影响,并在保证测试用例完备性和有效性的前提下,对测试用例进行有效裁剪,减少无效测试用例和冗余,在很大程度上提高了测试效率,从根本上确保测试的质量。手机测试具体流程内容标准目前,绝大多数国内定点的 CDMA 手机生产企业都选择采用 SKD(sack knock down)散件组装的方式来生产手机,这是因为与 OEM(orignal equipment manufacture)贴牌或 CKD(completed knock down)的方式相比较,采用 SKD 方式具有投资少、见效快、 技术风险低、项目启动快、容易组织规模生产、可在一定程
22、度上降低成本、产品上市时间迅速的优势。在 SKD 生产方式条件下,如何进行 CDMA 手机的测试和性能评估中,保证产品质量和测试速度,这是国内许多 CDMA 手机生产企业面临的一个技术问题。如何解决好该问题对于生产厂家来说具有重要的工程意义和现实意义。笔者现把一些经验和想法与同行作一交流。1 SKD 测试方案的指导思想(1)满足相关的技术规范和测试标准(2)具有足够的测试速度和精度(3)在满足生产线产能要求的前提下,设备投入要经济,这包括购买 CDMA 手机综合测试仪、传输带设备、测试夹具、其他的测试设备,生产线统计管理设备等。(4)拟购买测试仪器的技术指标、型号、规格、数据等项要求,既要能满
23、足现阶段的综合要求、也要考虑到未来的可扩充性、可升级性、可维修性。(5)尽量少占用公司的各类资源,包括人力、物力、财力、生产场地、空调、电力、压缩空气等。(6)尽可能地充分利用现有的 GSM 手机生产线条件(若有的话)来对生产线进行改进、调整和优化,以进一步降低生产手机的成本。2 CDMA 手机功能测试项分类、测试规模和相关的标准(1)RF 收发信机指标测试(测试发射功率、发射频谱、接收灵敏度等等):测试标准为中华人民共和国通信行业标准 YD/T1050-2000;美国 TIAIS-98 双模移动台最低性能标准; 800MHzCDMA 数字蜂窝移动通信网空中接口技术要求。(2)音频指标测试:检
24、查或测试发送音频灵敏度、振铃响度、受话器响度、失真度、侧音、免提功能等等。(3)LCD 和菜单功能的检查:看是否与说明书中所述内容相一致。(4)各按键触觉和力度的检查。(5)电池质量的检查:检查电池与主板的电气连接质量是否可靠,测量电池容量、输出电压、短路保护等指标。(6)充电器质量检查:检查充电器与主板的电气连接质量是否可靠,测试输入特性、输出特性、充电特性、充电时来电、充电时去电、对地泄漏电流等指标。(7)可靠性测试:通过对手机施加一定的外界环境应力(高温、低温、振动),来检查产品的可靠性指标。这一点很重要,它可以发现不少产品质量问题。测试标准为 GB/T2423.8-1995:电工电子产
25、品环境试验。(8)在实际 CDMA 通信网络中的外场测试:该项测试需在不同的时间、不同的地点/地貌、与不同网络中的用户进行互连互通等环境条件下进行测试和检查。测试标准为 CDMA(IS-95A)数字移动电话机进网检验实施细则 2001 年 5 月信息产业部。(9)手机壳体质量的检查(10)软件、MMI 操作可靠性与稳定性检查。(11)DC 功耗指标:关机电流、待机电流、通话电流、待机时间的测试。上述 CDMA 手机 SKD 生产测试方案中的大部分内容也可以用于 GSM 手机的 SKD 生产中。移动终端软件测试基础知识1)定制终端评测趋势 定制终端评测 硬件:射频一致性、协议一致性、无线资源管理
26、、硬件元器件、WLAN 是当前硬件测试主要内容 软件:操作系统测试、浏览器测试、移动应用测试、Widget 测试当软件测试重点,内容逐渐由功能向非功能演进 预装在定制终端的移动应用评测 功能、性能、稳定性、兼容性 用户体验、隐私安全 终端和移动应用评测自动化工具越来越成熟 终端及其应用的性能、稳定性评测将成为入库重要依据 用户体验评测将成为不可或缺的组成部分2 )三大智能终端平台差异以智能终端操作系统为基础,结合多种基础中间件、业务中间件、通信中间件来实现对应用的支撑。其中应用又可分为本地应用和 Web 应用两类。本地应用体系以 iOS+App Store+NativeApp 为代表,Web
27、应用以 HTML5/Widget+Web Store+Web App 为代表以 iOS/WP7 为代表的系统闭源/封闭文件管理系统/接口开放模式以 oPhone OS/WM 为代表,系统闭源/开放文件管理系统和接口模式以 Android/Meego/WebOS/WinCE 为代表系统开源/开放文件管理系统和接口模式3 ) 互联网应用测试的复杂因素传统的测试方法是暴力的、疯狂的、相当麻烦的。 全球多达十亿两千万 mobile web 用户 74%的人将无法容忍超过 5s 的页面加载时间 Gartner 预测,至 2014 年超过 90%企业级应用将支持智能终端版本 据统计,智能机上移动应用软件所引发的无线流量是非智能机 10 倍以上,美、英、德、日运营商都曾出现信令风暴导致的通信网瘫痪 截至 2011 年 Q3 的统计,Android 操作系统出现 7 个版本,覆盖 130 个机型,每个机型超过 2 家硬件参考设计。光从终端适配角度看,若实现完整的测试覆盖,需完成 1820 次回归测试。倘若无法借鉴自动化测试工具,几乎是无法完成的任务终端 操作系统平台、机型、屏幕分辨率、驱动差异等网络 地域、制式、通信业务、网络优化程度、漫游等差别自动化测试脚本 因平台、菜单风格不同,模拟客户端或自动化脚无法复用