1. 定义
  2. 目的
  3. 技术
    1. 白盒
    2. 黑盒
    3. 灰盒
  4. 方法
    1. 手工测试
    2. 自动化测试
  5. 类型
    1. 单元测试
    2. 集成测试
    3. 功能测试
    4. 系统测试
      1. Performance
      2. Compatibility
      3. Security
      4. Regression
      5. Reliability
      6. Accessibility
    5. 接受(Acceptance)测试
  6. 测试过程(Testing Stack)
    1. 测试计划
    2. 测试案例
    3. 执行测试
    4. 获取并分析测试结果
    5. 定位问题
    6. 推动问题修复并验证
  7. 资源
    1. 书籍
    2. Website
  8. WPF Testing
    1. WPF组件继承体系
  9. 测试策略(Test Strategy)
    1. 包含
      1. Test Level
      2. 测试方法
      3. 测试技术
      4. 工具
    2. 考虑
      1. 进程内VS进程外
      2. 白盒VS黑盒
      3. 手工VS自动化
      4. 单元测试,系统测试等
      5. 同步和耗时
    3. 样例
      1. 分析型测试策略
      2. 基于模型的测试策略
      3. 方法型(Methodical)测试策略
      4. 面向过程的测试策略
  10. 改善可测试性的方法
    1. 使用MVV模式来重构业务逻辑,使其与界面解耦
    2. 使用单元测试
    3. 自底向上自动化测试
    4. 分别测试UI和代码组件
    5. 基于稳定的UI和有代表性的用户场景来执行集成测试
  11. 数据驱动的测试(Data-Driven)
    1. 1.Tester列出所有测试期间的可变元素,以及它们可能的取值,以及期望的结果(Test Matrix)
    2. 2. 与Develper讨论Test Matrix
    3. 3. 列出主要场景和高优先级的测试
    4. 4.创建数据架构来容纳数据
    5. 5.使用一个工具来生成可交叉变量
    6. 6.设计和实现必要的和可重用的部分
    7. 7.设计并实现其他基础的测试
  12. 界面测试
    1. 可测试性
    2. 步骤
      1. 1. 添加UIAutomation的引用
      2. 2. 添加System.Windows.Automation命名空间
      3. 3. 添加System.Windows.Automation.Text命名空间
      4. 4. 找到感兴趣的控件
      5. 5. 得到control patterns
      6. 6. 自动化这个UI
    3. 最佳实践
    4. Media Testing
    5. 可视化测试
      1. 截屏
  13. 安全测试
  14. 全球化和本地化测试
    1. Globalization
    2. Localizability
    3. Localization
    4. Pseudo-localization
    5. UI culture/UI language
    6. Current culture / User locale
    7. Invariant culture
    8. System locale
  15. Accessibility Testing
  16. Stability and Stress testing
  17. 是否自动化测试
    1. 1. 这个测试覆盖的功能有多重要
    2. 2. 这个功能相对稳定还是脆弱?
    3. 3. 你多么快能找到测试发现的问题?
    4. 4. 测试维护的困难程度
  18. 如何写好的手工测试
    1. 目标
      1. 保证每个人都能理解
      2. 执行动作和测试结果是我们想要的
    2. Guideline
      1. 创建词汇表(术语表)来解释产品
      2. 创建文档来讨论已知的问题
      3. 准确的过程重要的时候,描述要详细
      4. 准确的步骤不重要的时候,描述要简略
      5. 重构测试步骤
      6. 详细说明你要验证什么,以及你期望的结果
      7. 注意那些测试没有要求验证的结果
      8. 一个测试只验证一个特性
      9. 尽可能避免在测试之前和之后需要执行的步骤
      10. 认真设计测试,以便它能更加迅速地执行
  19. 使用录制回放工具