流程:测试计划方案 ->用例设计 ->测试执行 ->缺陷管理 ->测试报告
产品经理需确保做到如下几点:
- 产品功能与需求文档保持一致。
- 对所有用户输入值的合法范围内,非法范围,边界值进行抽样取值测试,确保程序在合法和非法输入值情况下都能正常运行。
- 准备多种测试数据,判断输入和输出结果之间的因果关系是否一致。
APP测试:
兼容性测试:
在WEB端是兼容浏览器,在App端兼容的是手机设备。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,chrome,firefox)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容。(常见的兼容方式是兼容市场占用率前N位的手机即可),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试。安装测试:
WEB测试基本上没有客户端层面的安装测试,但是App测试是存在客户端层面的安装测试,那么就具备相关的测试点。交叉事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件。
操作类型测试:如横屏测试,手势测试
网络测试:包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。弱网络的模拟,据说可以用360wifi实现设置。loadding时间,反应时间,卡顿,网络不好的表现等
从系统架构的层面,WEB测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务器端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
- 升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了。
技术测试
技术测试主要由程序员对编码进行逻辑覆盖测试,遍历程序遇到的所有情况,捕获异常进行处理,模拟访问做高并发的压力测试。该阶段可以发现产品需求中的疏漏或逻辑错误,排除程序员粗心编程而出现的算法、逻辑错误。该阶段可以排除大量Bug,特别是后台或逻辑性很强的工具性产品,把控的好,产品经理后期测试工作量会大大降低,Bug在技术内部进行修改,反复测试无Bug后,可打包提交给产品经理,进入下一阶段测试。
内部测试
内部测试主要由产品经理主导在公司内部进行,设计师可以验收UI效果是否符合预期,产品经理模拟多套用户数据按照流程图对其进行操作测试,确认所有功能都与产品文档中的需求一一对应,测试方法黑盒测试。另外可以邀请其他部门的同事来充当小白用户进行产品体验。此阶段开始要收集所有人的整改意见,进行归类和排序。对于基础性的Bug可以马上责令技术进行修改,有争议性的修改意见或非重要Bug可待下一阶段的用户测试完后集中修改。
用户测试
用户测试由产品经理(策划/运营共同配合)主导,用户测试分为两个阶段。
第一阶段:寻找固定的用户群体进行测试(即每个版本邀请同一批用户来测试),以问卷或者一对一聊天的方式,获得他们对比新旧版本来直观感受产品好坏。如果无章可循,今天找个路人甲测试,明天找个路人乙测试,面向不同品味的用户,难免会出现下图尴尬情况。
第二阶段:灰度测试,向用户群中的1000人,10000人…依次递增推送测试版本,利用自建数据后台或友盟观察埋点数据的功能使用情况和程序crash崩溃报错信息,如发现数据异动及时下架处理。
白盒测试
白盒测试顾名思义内部是透明可见的,是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,在程序不同地方设立检查点,检查程序的状态,以确定实际运行状体与预期是否一致。
测试方法包含:逻辑覆盖测试(语句,判定,条件,判定条件,条件组合,路径),循环覆盖,基本路径测试。
黑盒测试
黑盒测试也称为功能测试,测试者在看不到程序内部代码情况下采用穷举输入测试,主要用于发现:功能不正确或遗漏;界面错误;输入和输出错误;数据库访问错误;性能错误;初始化和终止错误。