-
核心思想
- 代表用户,监控项目进展,验收产品质量
- 比用户更专业,比开发更懂业务
-
测试原则
- bug越早发现越好
- 测试越早介入项目越好
-
最佳实践
- v & w 模型
- 测试驱动开发,TDD
- 每日构建,自动回归,持续集成
- bug总结,用例积累,知识沉淀
-
经典命题
- bug数 vs 代码质量
- test vs qa
- tester vs test developer
-
测试设计
- 指导TC编写,提高测试覆盖率,提高测试效率
-
基于要点的层次化测试设计(百度)
- Pair Wise(成对组合)
- 边界检测
- 深刻理解业务,合理利用源码
-
彩票单测之痛
- 需要维护一些重复的配置:因为项目基于veloctiy的配置文件不是标准xml,不能直接复用
- 重量级单测初始化:即便只是java方法的测试,也需要初始化数据库连接池等压根不会
用到的组件,或者访问远程服务,导致初始化时间过长,几乎与启动JBoss相当
- 测试过分依赖于第三方接口:没有基于接口桩模块的测试
-
白盒测试
- 静态代码检测:findbugs
- 单元测试:junit
- 测试覆盖:elcemma
-
黑盒测试
-
内容
- 黑盒测试=功能测试
- 接口(模块)测试->联调(集成)测试->验收测试
-
特点
- 占据了绝大部分的测试资源
- 自动化程度较低,但也是自动化发展方向
-
方法
-
人工
- 要注重测试设计和用例积累,不然只有累死一条路
-
sub & stub & mock
- webx3的接口测试
- easymock,hsfunit等
-
性能测试
-
性能测试
- 拐点=>瓶颈或容量
-
压力测试
- 负荷->满负荷->超负荷
- 稳定性测试
-
自动化测试
-
目的
- 自动化只是测试的手段,不是测试的目的
- 追求100%的自动化,往往得不偿失
-
一切皆可自动化
- 各种测试类型,如白盒测试,黑盒测试,回归测试...
- 各种工作内容,如数据准备,环境搭建,批量执行...
- 各种测试产出,如bug管理,测试报告,用例积累...
- 工具:vbs, shell, python, ruby, c, java...
-
其它
- 冒烟测试,灰盒测试,回归测试,安全测试,随机测试,验收测试,线上观察
- PRD评审,UC评审,设计评审,TC评审,代码评审,上线步骤评审
- 搜索评测