小团队如何保证移动互联网产品的质量
张 朝
软件产品质量的基本属性
开发期:
- 易理解性
- 可扩展性
- 可重用性
- 可测试性
- 可维护性
-
可移植性
软件产品质量的基本属性
运行期:
- 性能
- 安全性
- 易用性
- 可靠性
- 可伸缩性
- 互操作性
- 鲁棒性
软件质量 = 需求分析质量 && 设计质量 && 编码质量 && 测试质量
(‘&&’为逻辑中“与”的关系,即任何一项质量都会直接影响软件整体质量,
并且无法通过其他质量方面得到弥补)
移动互联网产品的特点
- 需求变化快
- 项目周期短
- 很难高效的自动化测试
- 碎片化
- 复杂的网络条件
小团队常见场景
- 很少人知道测试是什么
- 不知道该测什么
- 没有测试的策略和方法
- 少的可怜的测试人员
-
只有测试在测试
如何摆脱困境
- 提升质量意识,重视测试,思考适合我们的测试策略与方法。
- 该规范的要规范,先做再说,磨合出适合我们的流程。
-
高效的测试,即快又好,而不是两选一。
如何走出软件作坊
- 测试篇
- 流程篇
-
自动化篇
测试篇
-
编写测试点而不是测试用例
- 设立优先级策略
- 使用100个好的应用
- 移动应用测试必须走出去
- 让产品融入生活
- 了解其他岗位的工作
编写测试点而不是测试用例
- 步骤一:打开登录界面
- 步骤二:输入用户名和密码
-
步骤三:点击登录按钮,验证是否登录成功,成功后返回主界面
- 正确的用户名不正确的密码登录
- 输入用户名和密码后按键盘确认是否能登录
- 开始导航后,地图上的当前位置是否跟着移动
测试用例
测试点
设立优先级策略
- 高优先级
- 新需求
- 主要核心功能
- 数据相关
- 主要功能路径
- 低优先级
- 层次较深的界面
- 用户使用少的界面
- ...
- 基本测试
- 兼容性
- ...
使用100个好的应用
No use no sense
好的软件要用,竞争对手的软件也要用
移动应用测试必须走出去
中国拥有世界上最复杂的网络条件
-
运营商:电信、联通、移动...
-
移动网络模式:Wifi、4G、3G、2G
让产品融入生活
你经常使用我们自己开发的软件吗?
了解其他岗位的工作
不懂产品的程序员不是好的测试
流程篇
- 流程没有银弹
- 在需求和设计阶段投入更多时间
- 统一应用程序发布出口
- 规范错误反馈的周期
- 开发人员与测试人员形成闭环
-
要坚持
自动化篇
-
尽量避免界面自动化
-
自动化从小工具做起
-
不要为了自动化去自动化
-
关键系统要持续集成
尽量避免界面的自动化
你的项目迭代快速吗?
你的界面变化频繁吗?
你根本不会写代码?
OK,那请不要自动化界面测试
自动化从小工具做起
it('can get mail by id', function(done) {
var digest =
md5(key + identify + 6177 * 12).toUpperCase();
request
.get('http://ouhai.maitianer.com/findById.php')
.query({proof: digest, id: 6177})
.set('Accept', 'application/json')
.end(function(error, res) {
if (error) return done(error);
should.exist(res.body);
res.body.should.be.json;
res.body.code.should.eql(1);
should.exist(res.body.letter);
res.body.letter.id.should.eql(6177);
done();
});
});
一个简单的接口功能测试
不要为了自动化而去自动化
- 请问有什么工具能做性能测试?
- Robotium好用吗?
- 听说Athrun不错,我的项目是不是也要用?
-
iOS和Android用什么做自动化?
我们应该优先考虑我们的测试点是什么?
自动化与工具让我们的测试变的更高效,而无法提升测试的质量。
关键系统要持续集成
-
客户端接口
-
核心模块
什么是持续集成?
当一个产品有多个系统组成时,
如客户端+服务端接口的模式,
最好在每次代码提交时,自动化测试服务端接口集成的正确性,
并汇总报告通知开发者。
测试的最高境界是什么?
- 有的人说:完全覆盖的自动化测试
- 有的人说:测试用例的自动化生成
-
有的人说:根本不需要测试
一个小故事(扁鹊三兄弟)
扁鹊是位名医,他有三个兄弟,某天一人问扁鹊,他的医术和他的几个兄弟相比如何,扁鹊回答说:
- 老大医术最高,他总是在病人发病前将他治好,所以人们以为他的医术最低。
- 老二医术一般,他总是在病人发病初将他治好,所以人们认为他的医术比老大高。
-
老三扁鹊的医术其实最差,他总是在病人病重的时候将他治好,人们认为他连这么重的病都能治,肯定医术最高了。
如果软件产品中的质量问题(bug)是疾病那测试就是扁鹊,
测试在质量管理中是一种后置的补救措施,
而质量管理的最终目标是前置的预防(医术最好的老大)。
测试的最高境界:
告诉更多人什么是质量,
从点点滴滴的积累,提升团队整体的产品研发水品。
Thank you!
小团队如何保证移动互联网产品的质量
By cosmo2097
小团队如何保证移动互联网产品的质量
- 4,774