当前位置: 首页 > news >正文

50题刷题总结

50题刷题总结

 

一、测试层级与 V 模型、文档规范

  1. V 模型对应关系
     
    需求分析→系统测试;概要设计→集成测试;详细设计→单元测试;验收测试面向整套完整系统,由用户对照需求验收。
  2. 四大测试层级核心
  • 单元测试:聚焦单个模块、函数,引入桩模块、驱动模块隔离依赖;
  • 集成测试:重点验证模块间接口与数据交互,迭代开发必做回归测试;
  • 系统测试:全系统功能 + 非功能(性能、安全、兼容、易用性);
  • 验收测试:针对上线完整系统开展验收。
  1. 三份文档易错区分
  • 测试计划:记录测试范围、资源、工期、项目风险,不含用例步骤;
  • 测试用例:存放输入步骤、预期结果;
  • 测试报告:包含测试环境、缺陷统计、测试结论,不附带用例详细步骤
  1. 缺陷纠纷处理:开发与测试对缺陷存疑无法统一时,由产品经理依照需求文档最终裁定。

二、黑盒 & 白盒用例设计

黑盒测试(基于需求,不关注代码)

  • 等价类划分:划分有效、无效输入区间,精简用例数量;
  • 边界值分析:主攻临界数值,例如密码 8~16 位,6 位、8 位、16 位、17 位都是典型边界;
  • 判定表:专门处理多输入条件互相组合的场景;
  • 正交试验、场景法同样属于黑盒范畴。
小知识点:软件测试分为功能测试、非功能测试,性能、安全、兼容性属于非功能,功能测试不属于非功能范畴。

白盒测试

  1. 四种覆盖区别
  • 语句覆盖:保证程序每一行代码都被执行一次;
  • 判定(分支)覆盖:每个 if 判断的真假分支全部覆盖;
  • 条件覆盖:判定里每一个独立条件的真假值全部覆盖(易错:区分判定覆盖);
  • 路径覆盖:遍历程序所有可行路径,成本最高。
  1. 环形复杂度:计算公式\(V(G)=E-N+2\),复杂度数值等于程序独立基本路径数量,判定节点数 = 环复杂度 - 1。

静态测试 VS 动态测试

  • 静态:不运行程序,需求评审、文档校对、代码审查、代码规范检查;
  • 动态:运行程序执行测试用例,绝大多数手工、自动化测试都属于动态。

三、单元测试:桩模块 & 驱动模块

  • 桩模块 Stub:被测模块需要调用下层未开发依赖时,用桩模拟被调用的底层函数;
  • 驱动模块 Driver:上层程序还未实现,通过驱动主动调用被测模块,传入参数驱动代码运行;
  • 集成策略:自底向上集成(底层开发完成、顶层未完工优先选用),底层模块单元测试充分,需要编写驱动,不用桩模块。

四、自动化测试:JUnit5 + Selenium

  1. JUnit5 注解
     
    @BeforeEach每一条 @Test 测试方法执行前运行一次@BeforeAll:整个测试类启动前仅执行一次。
     
    断言区分:assertEquals 对比数值相等,assertSame 对比对象内存地址一致。
  2. Selenium WebDriver
     
    原生支持页面刷新、获取窗口句柄、input 标签文件上传、执行 JS 脚本;无法拦截修改 HTTP 响应码、不能直接操作系统剪贴板,需要借助代理工具拓展能力。

五、性能测试三大类型

  1. 负载测试:系统在常规业务负载下运行,验证预期负载的响应时间;
  2. 压力测试:超出系统设计阈值持续施压,观测系统报错、宕机等极限表现;
  3. 容量测试:不断加压直至 CPU、内存资源耗尽,测出系统最大承载上限;
  4. 补充:TPS 吞吐量是衡量系统处理能力上限指标;分布式压测部署多台施压机器,模拟全国各地用户并发访问。

六、安全 & 接口测试

  1. SQL 注入是 OWASP Top10 首位高危漏洞,测试方式:输入' or 1=1 --等特殊 SQL 字符试探注入漏洞;
  2. 接口正向测试:合法参数校验业务;负向测试:传入异常、无效参数,校验错误返回码(如 400)

七、测试经典理论 + DevOps

  1. 测试基础原则
     
    ①测试无法证明软件没有缺陷,只能发现缺陷;②尽早测试减少修复成本;③缺陷集群分布;
     
    ④杀虫剂悖论:同一批用例反复执行,很难再发现新缺陷,需要定期更新维护用例。
  2. CI 持续集成:开发提交代码至代码仓库,自动触发编译、单元、集成自动化测试,提前暴露集成问题;
  3. DevOps 质量内建:开发、测试、运维全员对产品质量负责,质量前置,避免全量问题堆积在测试阶段。

八、个人刷题易错总结

  1. 桩、驱动模块作用极易记反:被测调下层→桩;上层调被测→驱动;
  2. 条件覆盖、判定覆盖定义混淆,做题优先抓关键词:条件看单个条件,判定看分支;
  3. 负载 / 压力 / 容量三种性能测试场景分不清,牢记三者施压目的;
  4. 分清测试计划、测试报告、测试用例各自承载内容。