压力测试(Stress Test)是指在各种压力情况和异常场景下,产品/软件功能使用的测试工作。
如客户端的连续登录、下线100次,连续查询100次,各种异常下线,多用户同时登录,网络信号变弱等,尤其应关注各种异常场景下的功能使用状况。
这部分测试,如果能用自动化测试工具完成的,可测试100次。
一些涉及网络覆盖、信息接收、验证码输入等无法通过自动工具完成的,可手动执行20次。
边界测试(Boundary Test)是指各种功能使用在极限情况下的测试,不仅是界面上的边界,也包括功能中的极大/极小边界、极多/极少值等。
例如客户端的安装包,所能正常安装的最长路径长度(chars),最深存储文件夹层数(层),登陆用户名的最小字符数(个)等,都应当作为测试点。
如果边界测试的用例数较少,可以直接并入系统测试用例中,不必单独列为一类,以免增加统计难度。
兼容性测试(Compatibility test)是指产品或软件对于各种环境、设备、网络、解析规范等的适配能力测试。
比如普通的软件产品,要测试基于各种OS(例Windows XP/ Win 2000/ Linux/ Mac OS/ Ubantu)、不同支持软件(例Outlook2003/ Outlook2007)的兼容能力。
而手机客户端,主要通过四类测试来考核其兼容适配能力:终端适配测试、SIM卡兼容性测试、设备兼容性测试、网络兼容性测试。
终端适配测试就是上图中所说的适配测试,因手机客户端是一个嵌入式系统,软硬件不可分割,故并入兼容性测试中。
它测试的是不同分辨率、不同OS平台、不同硬件配置的机型对于客户端的适配兼容能力,我们在测试过程中,主要基于以下考虑:
市场主流机型Top 20,主流分辨率,市场占据较多的OS前三位及其版本、主流设计商的芯片、对大字体设置的支持能力等等。
SIM卡兼容性测试,是针对不同运营商、不同业务类型的SIM卡所做的兼容能力测试。
如客户端是基于移动SIM卡开发的业务功能,则其中的短线接收,必须用移动卡才能正常接收,而在项目初期研发阶段,可能开发未考虑处理SIM卡兼容问题,就会导致使用联通/电信SIM卡会死在短线发送界面。此类测试解决的就是这些漏洞和问题!
设备兼容性测试,这类测试需要借助一些专业的模拟网络环境和实验室,它可以模拟不同厂商的设备,保证客户端产品在所需的各种设备下都可以正常工作!
网络兼容性测试,对于客户端来说,主要就是外场测试,包括企业内部外场区域和外部区域、移动区域等。
它的测试目的是为了验证客户端在各种网络环境下的功能适配能力,执行的是全部功能+系统测试用例,在发现问题后还应做针对性测试。
系统测试中,还包括内存泄漏测试(Memory-Leak Test)、数据库测试(Database Test)。
内存测试主要针对应用软件的内存管理和释放机制,测试当大数据量传输、数据阻塞、频繁操作等异常情况下,内存使用和释放的正常性。
一般使用自动化工具来进行此类测试,少量的内存测试用例可并入性能测试用例中。
数据库测试是一类重要测试类型,主要测客户端与后台Server之间的数据传输、并发、准确同步等。
一般手机客户端和后台的各类服务器等都有数据交互,应当针对这些Server进行专门的服务器测试,其中数据库测试和文件系统测试自然是重要组成部分!
项目开发前期,即自Kick off至Alpha release阶段,跟随软件的快速变化,我们所做的是迭代测试(REQ Test/ Function Test/ Sanity Test)。此间每天采用CIS自动生成的Daily build,在更新版本上进行迭代式测试。在Scrum Team内随时与开发、产品进行沟通,快速反应解决问题。
项目中期,自Alpha release ~ Beta release阶段,功能模块已基本集成,需要开始执行大规模的系统测试,并穿插周期性的功能测试。测试频度和范围视项目的测试周期、人力而定,但一般开始要先执行一轮全面系统测试(Full ST),以正确、完整地评估软件产品质量。
之后再根据各模块成熟度和缺陷状况,决定如何对FT和ST进行针对性裁剪,选择新增模块、薄弱模块和重点模块的关键项用例来对软件产品做局部测试。