[原创] 程序员面试宝典:第十五章 设计模式与软件测试

1. Bridge 模式(?):尽可能的脱耦

  • 抽象化和实现化脱耦
  • 继承关系转换为组合关系
2. 单键模式(singleton,确保在整个程序中只有一个类实例):
  • 私有化构造函数(防止 new 直接构造多个实例)
  • static 成员函数构造(在没有实例对象的情况下可以被执行)
  • static 成员变量指针(指向唯一的类实例,属于整个类)
  • 多线程竞争问题(信号量)
3. 观察者模式
  • 主题:内部状态,观察者引用集合
  • 观察者:自身状态,更新接口
  • 当主题内部状态改变时,通过更新接口通知观察者
  • 抽象主题、抽象观察者,使用抽象引用,不需要知道具体类型,通过抽象共有接口访问,针对抽象编程
4. 测试文档内容:
  • 产品特点和主要模块,需要测试的功能点、侧重点
  • 测试策略和记录:测试工具、测试用例、测试方法
  • 测试资源配置
5. 功能测试,行为测试,黑盒测试,数据驱动测试:
  • 测试产品特性和可操作行为是否满足设计要求
  • 只考虑功能,由实际输出和预期输出评测
6. 可用性测试:对用户体验的度量
  • 有效性:完成任务的正确和完整程度
  • 效率:完成任务正确与完整程度与时间的比率
  • 满意度:主观满意和接受程度
7. 边界值测试:边界及两侧
  • 健壮性测试:扩展的边界测试
  • 最坏情况测试:多变量联合边界测试
  • 特殊值测试:无标准
  • 随机测试:随机生成
8. 电梯算法测试:
  • 电梯运行方向:上、下
  • 请求与电梯相对位置:前、后
  • 请求方向:上、下
  • 超载直达
  • 其他:多部电梯配合、电梯空闲时停止地点
9. 白盒测试
  • 条件覆盖、路径覆盖、语句覆盖、分支覆盖(判定覆盖)
  • 代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖
10. 基本路径测试法:每个执行语句至少执行一次
  • 画控制流图:判断节点,执行节点
  • 计算圈复杂度:
    • 区域的数量
    • 边的数量 - 节点数量 + 2
    • 判断结点数 + 1
    • 找出独立路径,设计用例

你可能感兴趣的:(设计模式)