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