当模块的请求协议由 HTTP 变更为 HTTPS 时,需要从哪些方面重新设计和调整原有的测试方案?
考察说明
考查候选人在协议变更场景下对测试方案调整的全面性与实操性。
回答思路
- 【回答框架 1】明确 HTTPS 与 HTTP 的核心差异:HTTPS 在 HTTP 之上增加 TLS/SSL 加密层,涉及证书、加密套件、握手过程,测试需覆盖这些新增环节。
- 【回答框架 2】测试环境准备:需配置有效的 TLS 证书,包括自签名证书或测试 CA 签发的证书,确保被测模块信任该证书;若为客户端请求,需配置信任库或禁用证书校验(仅限测试环境)。
- 【回答框架 3】功能测试调整:原有 HTTP 功能用例可沿用,但需新增协议层测试,如验证 HTTPS 握手成功、加密通信正常、请求与响应内容正确;检查证书有效性、过期、域名匹配等场景。
- 【回答框架 4】安全与异常测试:覆盖证书错误(过期、自签名、域名不匹配)、协议版本协商失败、加密套件不兼容、中间人攻击模拟等;确认客户端对证书错误的处理符合预期(如拒绝连接或警告)。
- 【回答框架 5】性能与兼容性测试:对比 HTTP 与 HTTPS 的响应时间、吞吐量,评估加密开销;验证不同 TLS 版本(如 TLS 1.2/1.3)和主流浏览器的兼容性。
- 【关键点 1】HTTPS 测试必须覆盖 TLS 握手、证书验证、加密传输和协议版本兼容性。
- 【关键点 2】测试环境需正确配置证书信任,否则会出现连接失败或安全告警。
- 【关键点 3】原有 HTTP 功能用例应保留并回归,确保协议变更不引入功能缺陷。
- 【关键点 4】加密开销可能影响性能,需对比验证响应时间和吞吐量变化。
- 【易错点 1】忽略证书的域名匹配和有效期检查,导致测试环境难以模拟真实生产错误场景。
- 【易错点 2】直接禁用证书校验进行测试,可能掩盖客户端对证书错误的处理缺陷。
- 【易错点 3】仅关注功能通过而遗漏 HTTPS 特有的安全异常路径,如协议降级攻击。