软件质量测试与保证考试题库(选择题 + 填空题)
一、软件测试基础理论(200 题)
(一)选择题(100 题)
软件测试的根本目的是( 发现软件中的缺陷)A. 证明软件无缺陷B. 发现软件中的缺陷C. 提高软件运行效率D. 优化软件架构设计
下列哪项不属于软件测试的原则?( D)A. 测试尽早介入B. 完全测试是不可能的C. 缺陷具有集群性D. 测试由开发团队自行完成
在 V 模型中,单元测试对应的开发阶段是( 编码阶段)A. 需求分析B. 概要设计C. 详细设计D. 编码阶段
以下哪种测试模型支持测试与开发的并行开展?(W模型 )A. V 模型B. W 模型C. H 模型D. X 模型
静态测试的主要对象是(代码和文档 )A. 可执行程序B. 代码和文档C. 测试用例D. 运行日志
动态测试的核心是(程序执行 )A. 代码审查B. 走查会议C. 程序执行D. 需求评审
“缺陷集群效应” 指的是( 80%的缺陷都集中在20%的模块)A. 缺陷集中出现在测试阶段B. 80% 的缺陷集中在 20% 的模块C. 缺陷修复成本随时间递增D. 自动化测试发现缺陷效率更高
下列哪项属于黑盒测试的范畴?( 等价类划分)A. 代码覆盖率分析B. 路径覆盖测试C. 等价类划分D. 控制流图分析
软件测试的对象不包括( 开发环境配置)A. 需求规格说明书B. 设计文档C. 开发环境配置D. 可执行程序
验收测试的主要目的是(验证软件符合用户需求 )A. 验证软件符合用户需求B. 发现代码逻辑错误C. 评估软件性能指标D. 检测安全漏洞
(二)填空题(100 题)
软件测试是为了发现___缺陷___而执行程序的过程。
V 模型中,集成测试对应的开发阶段是__概要设计____。
静态测试包括__代码审查____和静态分析。
动态测试分为白盒测试、黑盒测试和__灰盒测试____。
测试的核心原则包括尽早测试、缺陷集群效应和_完全测试不可能_____。
W 模型在 V 模型的基础上增加了___需求与设计___阶段的同步测试。
缺陷管理的生命周期包括新建、指派、修复、验证和___关闭___。
黑盒测试的主要依据是_需求规格说明书_____。
白盒测试的主要依据是__程序内部逻辑结构____。
测试计划的核心要素包括测试目标、范围、策略、资源、进度和__风险评估____。
二、测试设计技术(200 题)
(一)选择题(100 题)
等价类划分法属于(黑盒测试技术 )A. 白盒测试技术B. 黑盒测试技术C. 静态测试技术D. 自动化测试技术
边界值分析主要用于测试(输入条件的边界值 )A. 输入条件的中间值B. 输入条件的边界值C. 输入条件的无效值D. 输入条件的默认值
以下哪种覆盖标准最弱?(语句覆盖 )A. 语句覆盖B. 判定覆盖C. 条件覆盖D. 路径覆盖
基本路径测试基于(控制流图 )A. 数据流图B. 状态转换图C. 控制流图D. 用例图
设计测试用例时,应优先考虑(等价类划分 )A. 边界值分析B. 等价类划分C. 错误推测法D. 因果图法
自动化测试最适合用于( 回归测试)A. 探索性测试B. 回归测试C. 压力测试
D. 兼容性测试
下列工具中,属于白盒测试工具的是(JUnit )A. SeleniumB. JUnitC. JMeterD. Appium
因果图法的主要作用是(生成测试用例 )A. 生成测试用例B. 分析缺陷原因C. 设计测试场景D. 验证需求完整性
测试用例的核心要素不包括(缺陷优先级 )A. 测试步骤B. 预期结果C. 测试环境D. 缺陷优先级
以下哪种方法可以提高测试用例的覆盖率?(结合多种测试技术 )A. 减少测试用例数量B. 结合多种测试技术C. 只测试有效输入D. 忽略边界条件
(二)填空题(100 题)
黑盒测试的常用技术包括等价类划分、边界值分析和__因果图法____。
白盒测试的逻辑覆盖标准中,最强的是__路径覆盖____。
基本路径测试的关键步骤是计算__圈____复杂度。
自动化测试工具 Selenium 主要用于_Web自动化_____测试。
设计测试用例时,应包含测试编号、步骤、数据和_预期结果_____。
等价类划分将输入数据分为有效等价类和_无效等价类_____。
边界值分析通常选取刚好等于、刚好大于和___刚好小于___边界的值作为测试数据。
因果图法通过分析__输入条件____与输出之间的关系设计测试用例。
错误推测法基于测试人员的___经验___和经验。
测试用例的覆盖率包括需求覆盖率和__代码____覆盖率。
三、测试管理与质量保证(200 题)
(一)选择题(100 题)
测试计划的主要作用是( 指导测试执行)A. 记录测试结果B. 指导测试执行C. 分析缺陷原因D. 评估开发进度
缺陷的严重程度不包括(建议性改进 )A. 致命缺陷B. 严重缺陷C. 一般缺陷D. 建议性改进
测试报告的核心内容是( 测试用例执行情况)A. 测试环境配置B. 缺陷修复记录C. 测试用例执行情况D. 开发团队分工
质量保证(SQA)的主要工作是(审计测试流程 )A. 执行测试用例B. 审计测试流程C. 修复软件缺陷D. 编写需求文档
缺陷管理工具的核心功能不包括( 缺陷修复)A. 缺陷追踪B. 缺陷统计C. 缺陷修复D. 缺陷分类
测试资源管理不包括(缺陷优先级 )A. 人员分配B. 工具采购C. 时间安排D. 缺陷优先级
以下哪项属于测试度量指标?( )A. 代码行数B. 缺陷密度C. 需求变更次数D. 开发周期
测试风险评估的主要目的是(制定风险应对策略 )A. 避免测试风险B. 制定风险应对策略C. 增加测试预算D. 延长测试周期
回归测试的触发条件是( 以上都是)A. 需求变更B. 缺陷修复C. 环境变更D. 以上都是
测试用例的优先级划分依据是(对业务的影响程度 )A. 测试步骤复杂度B. 缺陷发现概率C. 对业务的影响程度D. 测试数据准备难度
(二)填空题(100 题)
测试计划应包含测试范围、策略、资源、进度和__评估标准____。
缺陷的生命周期状态包括新建、指派、修复、验证和_关闭_____。
质量保证的核心是确保测试过程符合__标准____。
缺陷严重程度分为致命、严重、一般和___建议性___。
测试报告的关键指标包括覆盖率、缺陷数和__缺陷复杂度____。
测试资源包括人力、工具、时间和环境______。
回归测试的目的是验证缺陷修复后是否引入新的__缺陷____。
缺陷管理工具的典型代表有 Jira、Bugzilla 和_QC_____。
测试度量指标中的缺陷密度是指___没千行___代码的缺陷数。
测试风险应对策略包括规避、减轻、转移和__接受____。
四、性能与安全测试(200 题)
(一)选择题(100 题)
性能测试的核心指标不包括(代码注释率 )A. 响应时间B. 吞吐量C. 并发用户数D. 代码注释率
以下哪种工具用于性能测试?( JMeter)A. SeleniumB. JMeterC. PostmanD. Git
压力测试的主要目的是( 测试软件在极限负载下的稳定性)A. 测试软件在正常负载下的表现B. 测试软件在极限负载下的稳定性C. 测试软件的功能正确性D. 测试软件的兼容性
安全测试的重点不包括(界面美观 )A. 权限验证B. SQL 注入C. 界面美观D. 数据加密
以下哪种漏洞属于注入攻击?( SQL 注入)A. XSSB. CSRFC. SQL 注入D. 文件包含
性能测试中的 “吞吐量” 是指(系统在单位时间内处理的请求数 )A. 系统响应请求的时间B. 系统在单位时间内处理的请求数C. 系统支持的最大并发用户数D. 系统资源的占用率
安全测试工具 AppScan 主要用于(Web 应用安全扫描 )A. 移动端测试B. Web 应用安全扫描C. 性能瓶颈分析D. 单元测试
下列哪项属于性能测试的范畴?(负载测试 )A. 界面测试B. 负载测试C. 易用性测试D. 安装测试
密码传输时未加密,可能导致(信息泄露风险 )A. 权限绕过漏洞B. 信息泄露风险C. 缓冲区溢出D. 死锁问题
性能测试工具 LoadRunner 的主要功能是(模拟大规模用户并发 )A. 自动化功能测试B. 模拟大规模用户并发C. 代码静态分析D. 安全漏洞扫描
(二)填空题(100 题)
性能测试的主要类型包括负载测试、压力测试和__基准测试____。
安全测试的常见漏洞包括 SQL 注入、XSS 和__CSRF____。
性能指标中的响应时间是指从发送请求到收到_响应_____的时间。
压力测试的目的是发现系统在_极限负债_____条件下的缺陷。
安全测试工具 Burp Suite 主要用于__Web安全____测试。
吞吐量的单位通常是_请求数_____/ 秒。
数据加密的常用算法包括 MD5、SHA 和__AES____。
性能测试需要监控的系统资源包括 CPU、内存、磁盘和_网络_____。
权限验证测试的核心是确保用户只能访问__授权____的资源。
安全测试中的漏洞扫描分为主动扫描和___被动___扫描。
五、综合应用与扩展(200 题)
(一)选择题(100 题)
敏捷开发中的 “测试左移” 是指(测试在需求阶段介入 )A. 测试在开发后期介入B. 测试与开发并行C. 测试在需求阶段介入D. 测试在部署阶段介入
持续集成(CI)的核心目标是(以上都是 )A. 减少代码冲突B. 自动执行测试C. 加快发布频率D. 以上都是
以下哪项属于自动化测试的局限性?(难以发现探索性缺陷)A. 无法处理复杂逻辑B. 执行效率低C. 依赖测试环境D. 难以发现探索性缺陷
测试用例设计的 “80-20 原则” 是指(80% 的缺陷由 20% 的用例发现 )A. 80% 的缺陷由 20% 的用例发现B. 20% 的缺陷由 80% 的用例发现C. 80% 的用例覆盖 20% 的需求D. 20% 的用例覆盖 80% 的需求
兼容性测试不包括(开发工具兼容性 )A. 浏览器兼容性B. 操作系统兼容性C. 硬件配置兼容性D. 开发工具兼容性
以下哪种测试属于验收测试?(以上都是)A. α 测试B. β 测试C. 冒烟测试D. 以上都是
测试环境搭建的核心要求是(支持测试需求即可)A. 与生产环境完全一致B. 尽可能简化配置C. 支持测试需求即可D. 无需考虑数据隔离
需求变更对测试的主要影响是(测试用例需要更新 )A. 测试用例需要更新B. 测试进度提前C. 缺陷数量减少D. 测试成本降低
**测试团队与开发团队的协作模式不包括(**客户直接测试 )A. 独立测试团队B. 嵌入式测试团队C. 开发自测试D. 客户直接测试
以下哪项属于软件质量的外部属性?(以上都是 )A. 可维护性B. 可靠性C. 易用性D. 以上都是
(二)填空题(100 题)
敏捷测试的核心原则是快速反馈和__持续集成____。
持续集成工具 Jenkins 的主要功能是自动化构建和__测试____。
兼容性测试包括浏览器、操作系统和__硬件配置____兼容性。
验收测试分为 α 测试和__β____测试。
需求变更管理的核心是评估变更对测试的_影响_____。
测试环境应包含硬件、软件、数据和_网络_____。
自动化测试的优势包括提高效率、减少重复劳动和_提高准确率_____。
软件质量的六大特性包括功能性、可靠性、易用性、效率、维护性和_可移植性_____。
冒烟测试的目的是验证版本的__基本稳定性____。
测试团队的角色通常包括测试经理、测试设计员和__测试执行员____。
这些题目覆盖了软件质量测试与保证领域的多个重要方面,从基础理论到实际应用,旨在帮助学习者全面掌握相关知识,提升在软件测试与质量保证工作中的专业能力。
补充:#
一、软件测试基础理论
(一)进阶选择题(100 题,每题 2 分)
下列关于测试与调试的描述,正确的是( )A. 测试是为了证明错误存在,调试是为了定位并修复错误B. 测试和调试均由开发团队完成C. 调试可以发现未被测试用例覆盖的缺陷D. 测试的目的是修复缺陷
在 H 模型中,测试活动的启动条件是( )A. 完成需求分析B. 具备测试就绪点C. 开发阶段结束D. 代码编写完成
以下哪项属于软件测试的 “经济性原则”?( )A. 优先测试高风险模块B. 穷尽测试所有场景C. 测试用例数量越多越好D. 只测试开发团队认为重要的功能
验收测试的参与方不包括( )A. 最终用户B. 测试团队C. 运维团队D. 数据库管理员
动态测试的执行步骤不包括( )A. 测试用例设计B. 环境搭建C. 代码静态分析D. 结果比对
(二)计算题(50 题,每题 10 分)
缺陷密度计算某项目开发文档 200 页,代码 50,000 行,测试阶段发现 200 个缺陷,其中需求文档缺陷 30 个,设计文档缺陷 50 个,代码缺陷 120 个。计算:(1)代码缺陷密度(单位:个 / 千行)(2)文档缺陷密度(单位:个 / 页)答案:(1)120 / (50,000/1000) = 2.4 个 / 千行(2)(30+50)/200 = 0.4 个 / 页
环路复杂度计算某程序控制流图包含 10 个节点、15 条边、3 个判定节点,计算:(1)基于公式 V (G)=E-N+2 的环路复杂度(2)独立路径数答案:(1)15-10+2=7(2)7 条独立路径
(三)简答题(50 题,每题 10 分)
简述软件测试与软件质量保证的区别。答案:
测试是执行程序发现缺陷的活动;
质量保证是通过流程审计确保过程符合标准,预防缺陷产生。
说明静态测试在敏捷开发中的应用场景。答案:
需求评审时检查测试点完整性;
代码审查(结对编程)及时发现逻辑错误;
设计文档静态分析确保架构可测试性。
(四)案例分析题(50 题,每题 20 分)
缺陷集群效应应用案例某电商系统订单支付模块在单元测试中发现 50 个缺陷,占全系统缺陷的 60%。经分析,该模块包含复杂的支付接口调用、事务处理和异常处理逻辑,且由新员工开发。问题:(1)根据缺陷集群效应,应如何调整测试策略?(2)提出 3 条具体优化措施。答案:(1)增加该模块的测试用例覆盖率,优先执行回归测试;(2)措施:①安排资深测试人员专项测试;②设计边界值 + 异常场景用例;③要求开发团队进行代码复查。
二、测试设计技术
(一)高阶选择题(100 题,每题 2 分)
下列哪种情况最适合使用因果图法设计测试用例?( )A. 输入条件相互独立B. 输入条件存在组合关系C. 输入数据范围明确D. 输出结果唯一确定
以下关于路径覆盖的描述,正确的是( )A. 路径覆盖必须覆盖所有可能的执行路径B. 路径覆盖是最强的逻辑覆盖标准C. 路径覆盖不需要考虑循环次数D. 路径覆盖等同于判定 - 条件覆盖
自动化测试脚本的维护成本主要取决于( )A. 测试工具的选择B. 被测系统的稳定性C. 测试用例的数量D. 测试人员的编码水平
(二)计算题(50 题,每题 10 分)
测试用例覆盖率计算某需求文档包含 20 个功能点,设计测试用例覆盖 18 个功能点,其中 15 个功能点的测试用例执行通过。计算:(1)需求覆盖率(2)通过率答案:(1)18/20×100%=90%(2)15/18×100%≈83.3%
判定条件覆盖计算某判定语句为if (A>0 && B<5 || C==3)
,设计测试用例覆盖所有判定结果和条件结果组合。问题:至少需要多少个测试用例?答案:判定条件覆盖需覆盖每个条件的真假情况及判定的真假结果,至少需要 4 个用例。
(三)简答题(50 题,每题 10 分)
对比等价类划分法与边界值分析的适用场景。答案:
等价类:适用于输入数据可分组的场景,减少冗余用例;
边界值:专门测试输入输出的边界点,发现边界条件缺陷。
说明自动化测试在接口测试中的优势。答案:
快速验证大量接口调用;
支持参数化测试不同输入组合;
自动生成测试报告,便于持续集成。
(四)案例分析题(50 题,每题 20 分)
登录功能测试用例设计需求:用户登录需验证用户名(6-20 位字母 / 数字)、密码(8-16 位,含至少 1 个特殊字符),登录失败 3 次锁定账户 24 小时。问题:(1)使用等价类划分法设计有效 / 无效输入用例;(2)补充边界值测试用例。答案:(1)有效类:用户名长度 6/20、合法字符;密码长度 8/16、含特殊字符;无效类:用户名 <6/>20、含非法字符;密码 < 8/ >16、无特殊字符;(2)边界值:用户名 5/6/20/21 位;密码 7/8/16/17 位。
三、测试管理与质量保证
(一)综合选择题(100 题,每题 2 分)
测试进度延迟时,最合理的应对策略是( )A. 减少测试用例数量B. 增加测试人员加班C. 评估风险后调整测试范围D. 要求开发团队压缩开发周期
缺陷报告的核心要素不包括( )A. 复现步骤B. 预期结果C. 开发人员姓名D. 截图 / 日志附件
下列哪项属于测试过程改进的关键指标?( )A. 缺陷修复时间B. 测试用例编写效率C. 需求变更频率D. 以上都是
(二)计算题(50 题,每题 10 分)
缺陷修复率计算某项目累计发现缺陷 300 个,其中 250 个已修复,50 个因需求变更暂不处理。计算:(1)缺陷修复率(2)遗留缺陷率答案:(1)250/300×100%≈83.3%(2)50/300×100%≈16.7%
测试成本效益分析某项目测试投入成本 50 万元,上线后因缺陷导致的损失 20 万元;若增加 10 万元测试投入,可减少 80% 上线损失。计算:(1)原成本效益比(2)优化后的成本效益比答案:(1)50:20=2.5:1(2)60:(20×20%)=60:4=15:1
(三)简答题(50 题,每题 10 分)
简述测试计划中 “风险评估” 的主要内容。答案:
识别潜在风险(如需求变更、资源不足);
评估风险发生概率和影响程度;
制定应对策略(规避、减轻、转移)。
说明缺陷管理中 “优先级” 与 “严重程度” 的区别。答案:
严重程度:缺陷对系统的影响程度(致命 / 严重 / 一般);
优先级:修复缺陷的紧急程度(高 / 中 / 低),可能与业务影响相关。
(四)案例分析题(50 题,每题 20 分)
测试环境故障处理某团队在执行自动化测试时,频繁出现数据库连接超时故障,导致 30% 的测试用例失败。经排查,测试环境数据库配置与生产环境不一致,且网络带宽不足。问题:(1)分析故障对测试的影响;(2)提出 3 条改进措施。答案:(1)影响:测试结果不可靠,浪费执行时间,延误进度;(2)措施:①同步生产环境配置;②增加测试环境带宽;③编写环境健康检查脚本。
四、性能与安全测试
(一)深度选择题(100 题,每题 2 分)
下列哪项是性能测试中 “拐点分析” 的目标?( )A. 确定系统最佳运行性能B. 发现系统性能下降的临界点C. 测试系统在峰值负载下的恢复能力D. 验证系统资源利用率是否合理
安全测试中,“会话劫持” 攻击的防范措施不包括( )A. 使用 HTTPS 加密传输B. 设置会话超时时间C. 限制 IP 访问频率D. 验证会话令牌的唯一性
(二)计算题(50 题,每题 10 分)
并发用户数计算某系统需支持日均 10 万次请求,高峰时段为日均的 3 倍,单个请求平均处理时间 200ms。计算:(1)高峰时段每秒请求数(TPS)(2)所需并发用户数(忽略排队效应)答案:(1)(100,000×3)/(24×3600)≈3.47 TPS(2)3.47×0.2≈0.69,即至少 1 个并发用户
安全漏洞风险等级计算某 SQL 注入漏洞的利用难度为低(3 分)、影响范围高(9 分)、修复成本中(6 分),采用 CVSS 评分标准(总分 = 影响 ×0.6 + 利用 ×0.4)。计算:(1)基础评分(2)风险等级(1-10 分,8 分以上为高危)答案:(1)(9×0.6)+(3×0.4)=5.4+1.2=6.6(2)中危(6.6 分)
(三)简答题(50 题,每题 10 分)
简述性能测试中 “负载测试” 与 “压力测试” 的区别。答案:
负载测试:测试正常负载下的性能表现;
压力测试:测试超过预期负载的极限情况下的稳定性。
说明安全测试中 “权限测试” 的主要内容。答案:
验证不同角色用户的功能访问权限;
测试越权访问(水平 / 垂直越权);
检查权限分配的最小化原则。
(四)案例分析题(50 题,每题 20 分)
支付接口性能优化某电商支付接口在峰值时段响应时间超过 5 秒,吞吐量仅 200 TPS,CPU 利用率达 90%。问题:(1)分析可能的性能瓶颈;(2)提出 3 条优化建议。答案:(1)瓶颈:数据库查询慢、代码逻辑复杂、线程池配置不合理;(2)建议:①优化 SQL 语句,增加索引;②异步处理非核心逻辑;③调整线程池参数,增加并发处理能力。
五、综合应用与扩展
(一)论述题(50 题,每题 30 分)
结合敏捷开发,论述 “测试左移” 对软件质量的影响。答案要点:
左移实践:需求评审介入、测试用例提前设计、单元测试自动化;
质量提升:早期发现需求歧义,减少后期修复成本;
协作改进:促进开发 - 测试团队同步,提高需求理解一致性。
论述自动化测试在持续集成(CI)中的关键作用。答案要点:
快速反馈:代码提交后自动执行冒烟测试;
质量门禁:通过自动化测试验证版本可测性;
效率提升:减少手工重复劳动,支持高频次构建。
(二)综合应用题(50 题,每题 30 分)
电商系统测试方案设计场景:某电商平台即将上线新品秒杀功能,支持 10 万用户同时抢购,需确保系统稳定性和数据一致性。任务:(1)设计测试阶段(单元 / 集成 / 系统 / 性能 / 安全)的重点;(2)制定性能测试指标(响应时间、吞吐量、资源利用率);(3)列出安全测试关注点(越权、SQL 注入、数据加密)。答案框架:(1)系统测试:秒杀流程正确性;性能测试:高并发下的响应能力;(2)指标:响应时间 < 2s,吞吐量≥5000 TPS,CPU≤80%;(3)安全:用户权限校验,订单数据加密,防刷接口设计。
缺陷管理流程优化现状:某团队缺陷修复周期长,重复缺陷率高,测试人员与开发人员经常因缺陷描述不清产生纠纷。任务:(1)分析现有流程的问题;(2)设计改进后的缺陷管理流程(包含提交 - 评审 - 修复 - 验证环节);(3)制定缺陷报告模板(必填字段:复现步骤、环境、截图、严重程度、优先级)。
(三)跨模块综合题(50 题,每题 30 分)
银行系统测试案例场景:某银行 APP 转账功能,需支持实时到账、限额控制(单日 5 万元)、密码输错 3 次锁定账户。问题:(1)使用黑盒测试技术设计功能测试用例;(2)设计性能测试场景(正常转账 / 高峰时段批量转账);(3)分析安全测试重点(账户锁定机制、数据加密、防重放攻击)。
敏捷测试实践场景:某团队采用 Scrum 开发模式,每个冲刺周期 2 周,需在短时间内完成需求确认、测试设计、执行和报告。问题:(1)说明敏捷测试在冲刺各阶段的活动;(2)如何通过自动化测试提高冲刺效率;(3)举例说明持续集成工具(如 Jenkins)的具体应用。
以下是您提供的《软件质量测试与保证扩展题库》中各题型的参考答案及解析,按照题目顺序逐一匹配:
一、软件测试基础理论
(一)进阶选择题(1-5题)
-
A
解析:测试的核心是发现缺陷,调试的核心是定位并修复缺陷,二者目的不同,且测试可由独立团队执行,排除B、D;调试依赖测试发现的缺陷,无法主动发现未覆盖的缺陷,排除C。 -
B
解析:H模型强调测试活动独立于开发阶段,启动条件是“具备测试就绪点”(如需求文档完成、代码可测等),而非等待开发阶段结束。 -
A
解析:经济性原则要求优先测试高风险模块(如核心业务、复杂逻辑),避免无效投入;穷尽测试不现实(排除B),用例数量需平衡效率(排除C),测试范围需覆盖用户需求而非仅开发团队认为的重点(排除D)。 -
D
解析:验收测试主要验证软件是否符合用户需求,参与方包括用户、测试团队、运维团队(确认部署可行性),数据库管理员通常不直接参与验收。 -
C
解析:动态测试需执行程序,步骤包括用例设计、环境搭建、执行测试、结果比对;代码静态分析属于静态测试范畴。
(二)计算题(1-2题)
-
缺陷密度计算
- (1)代码缺陷密度:
120个缺陷 ÷ (50,000行 ÷ 1000) = 2.4个/千行
- (2)文档缺陷密度:
(30+50)个文档缺陷 ÷ 200页 = 0.4个/页
- (1)代码缺陷密度:
-
环路复杂度计算
- (1)环路复杂度:
V(G) = 边数E - 节点数N + 2 = 15 - 10 + 2 = 7
- (2)独立路径数:
环路复杂度即独立路径数,故为 7条。
- (1)环路复杂度:
(三)简答题(1-2题)
-
软件测试 vs 质量保证(SQA)
- 测试:通过执行程序发现已存在的缺陷,是“事后验证”。
- 质量保证:通过审计流程(如需求评审、代码审查)确保开发过程符合标准,预防缺陷产生,是“事前预防”。
-
静态测试在敏捷开发中的应用
- 需求阶段:评审用户故事,检查测试点是否完整(如边界条件、异常场景)。
- 开发阶段:结对编程中实时代码审查,及时发现逻辑错误(如空指针、越界访问)。
- 设计阶段:分析架构设计文档,确保模块可测试性(如预留接口、日志监控)。
(四)案例分析题(1题)
- 缺陷集群效应应用
- (1)测试策略调整:
聚焦高缺陷模块(订单支付),增加测试资源投入,设计专项测试用例(如接口异常、事务回滚),优先执行回归测试确保修复不引入新问题。 - (2)优化措施:
① 安排资深测试人员进行探索性测试,挖掘潜在逻辑缺陷;
② 针对支付接口设计“网络中断”“余额不足”等异常场景用例;
③ 要求开发团队进行交叉代码评审,提升模块设计质量。
- (1)测试策略调整:
二、测试设计技术
(一)高阶选择题(1-3题)
-
B
解析:因果图法适用于输入条件存在组合关系(如“用户名正确且密码正确”才允许登录),通过分析输入与输出的因果关系生成测试用例。 -
B
解析:路径覆盖要求覆盖所有可能的执行路径(包括循环、分支),是逻辑覆盖中最强的标准;A错误(实际测试中路径数可能无限,需限制循环次数),C、D错误(路径覆盖包含判定-条件覆盖,但不等同)。 -
B
解析:自动化脚本维护成本取决于被测系统的稳定性(如界面元素变更、接口参数调整),工具选择、用例数量、人员水平是次要因素。
(二)计算题(3-4题)
-
测试用例覆盖率计算
- (1)需求覆盖率:
(覆盖的功能点数 ÷ 总功能点数) × 100% = 18/20 × 100% = 90%
- (2)通过率:
(通过的用例覆盖功能点 ÷ 覆盖的功能点数) × 100% = 15/18 × 100% ≈ 83.3%
- (1)需求覆盖率:
-
判定条件覆盖计算
- 最少用例数:4个
解析:
判定语句为(A>0 && B<5) || C==3
,需覆盖:- 条件
A>0
:真/假 - 条件
B<5
:真/假 - 条件
C==3
:真/假 - 判定结果:真/假
通过组合法,最少4个用例可覆盖所有条件与判定结果。
- 条件
- 最少用例数:4个
(三)简答题(3-4题)
-
等价类 vs 边界值
- 等价类划分:将输入数据分为有效/无效组,每组选代表值测试,适用于输入范围明确、可分组的场景(如年龄>18岁),减少冗余用例。
- 边界值分析:专门测试边界点(如年龄=18岁、18.1岁、17.9岁),发现边界条件下的缺陷(如整数溢出、数组越界)。
-
自动化测试在接口测试中的优势
- 效率:支持批量调用接口,快速验证 hundreds/thousands 种输入组合(如不同参数、Header、Cookie)。
- 标准化:参数化测试用例,自动生成测试报告,避免手工测试的随机性。
- 持续集成:与Jenkins等工具集成,代码提交后自动执行接口测试,实时反馈接口稳定性。
(四)案例分析题(2题)
- 登录功能测试用例设计
- (1)等价类划分:
- 有效等价类:
用户名:6-20位字母/数字(如“user123”“admin_abc”,注:题目中需求为“字母/数字”,不含下划线,实际需按需求调整);
密码:8-16位,含至少1个特殊字符(如“Pass!word123”)。 - 无效等价类:
用户名:<6位(“user”)、>20位(“user123456789012345678901”)、含非法字符(“user@”);
密码:<8位(“pass123”)、>16位(“Pass!word123456789”)、无特殊字符(“password1234”)。
- 有效等价类:
- (2)边界值测试:
用户名长度:5(无效)、6(有效)、20(有效)、21(无效);
密码长度:7(无效)、8(有效)、16(有效)、17(无效)。
- (1)等价类划分:
三、测试管理与质量保证
(一)综合选择题(1-3题)
-
C
解析:测试进度延迟时,应优先评估风险(如哪些模块是高优先级),调整测试范围(如暂不测试低风险功能),而非盲目减少用例或加班(排除A、B),开发周期压缩可能加剧缺陷(排除D)。 -
C
解析:缺陷报告核心要素包括复现步骤、预期结果、实际结果、附件(截图/日志),开发人员姓名非必填(由测试经理指派,非报告内容)。 -
D
解析:测试过程改进指标包括缺陷修复时间(效率)、用例编写效率(生产力)、需求变更频率(需求稳定性),均为关键度量项。
(二)计算题(5-6题)
-
缺陷修复率计算
- (1)缺陷修复率:
(已修复缺陷数 ÷ 总缺陷数) × 100% = 250/300 × 100% ≈ 83.3%
- (2)遗留缺陷率:
(未修复缺陷数 ÷ 总缺陷数) × 100% = 50/300 × 100% ≈ 16.7%
- (1)缺陷修复率:
-
测试成本效益分析
- (1)原成本效益比:
测试成本 : 上线损失 = 50万元 : 20万元 = 2.5:1
- (2)优化后成本效益比:
新增投入后测试成本=60万元,上线损失=20万元×(1-80%)=4万元,
60万元 : 4万元 = 15:1
- (1)原成本效益比:
(三)简答题(5-6题)
-
测试计划中的风险评估
- 识别风险:如需求频繁变更、测试资源不足(人员/工具)、第三方接口延迟、环境搭建失败。
- 评估影响:分析风险发生概率(高/中/低)和影响程度(进度延迟、成本增加、质量下降)。
- 制定策略:
- 规避(如推迟测试依赖的第三方接口);
- 减轻(如增加备用测试环境);
- 转移(如外包部分自动化测试)。
-
缺陷优先级 vs 严重程度
- 严重程度:描述缺陷对系统的技术影响(如系统崩溃=致命,功能缺失=严重,界面错位=一般)。
- 优先级:描述修复缺陷的业务紧急程度(如支付失败=高优先级,字体颜色错误=低优先级),可能与业务影响相关(即使缺陷严重程度低,若影响核心流程,优先级仍可设为高)。
(四)案例分析题(3题)
- 测试环境故障处理
- (1)故障影响:
① 30%测试用例失败,结果不可信,无法准确评估版本质量;
② 频繁重试浪费时间,导致测试进度延误;
③ 开发团队可能误判缺陷原因(如认为是代码问题而非环境问题)。 - (2)改进措施:
① 建立环境配置清单,定期同步生产环境参数(如数据库连接池大小、网络带宽限制);
② 增加测试环境资源(如升级数据库服务器、扩大网络带宽),并设置监控报警;
③ 编写环境健康检查脚本(如开机自动执行数据库连接测试),纳入每日冒烟测试。
- (1)故障影响:
四、性能与安全测试
(一)深度选择题(1-2题)
-
B
解析:拐点分析通过逐步增加负载,找到系统性能开始明显下降的临界点(如吞吐量达到峰值后骤降,响应时间突然变长),用于确定系统容量上限。 -
C
解析:会话劫持防范措施包括HTTPS加密(防监听)、会话超时(防长期未用会话被劫持)、会话令牌唯一性(防伪造);限制IP访问频率主要防范暴力破解,与会话劫持无关。
(二)计算题(7-8题)
-
并发用户数计算
- (1)高峰时段TPS:
日均请求×3 ÷ (24×3600秒) = 100,000×3 ÷ 86,400 ≈ 3.47次/秒
- (2)并发用户数:
根据公式并发用户数 = TPS × 平均处理时间(秒)
,
3.47 × 0.2 ≈ 0.69
,向上取整为 1个(忽略排队效应时,至少1个并发用户可处理高峰请求)。
- (1)高峰时段TPS:
-
安全漏洞风险等级计算
- (1)基础评分:
CVSS评分 = 影响分×0.6 + 利用分×0.4 = 9×0.6 + 3×0.4 = 5.4 + 1.2 = 6.6
- (2)风险等级:
6.6分属于“中危”(8分以上为高危,4-7.9分为中危,4分以下为低危)。
- (1)基础评分:
(三)简答题(7-8题)
-
负载测试 vs 压力测试
- 负载测试:在预期负载下(如1000用户并发),测试系统性能是否达标(如响应时间<3秒,吞吐量稳定)。
- 压力测试:超过预期负载(如2000用户并发),测试系统极限承载能力(如是否崩溃、能否自动恢复),重点关注稳定性和容错性。
-
安全测试中的权限测试
- 功能权限:验证不同角色用户(如普通用户、管理员)能否访问其权限内的功能(如管理员可删除数据,普通用户不可)。
- 数据权限:测试水平越权(同一角色用户访问他人数据)和垂直越权(低权限用户访问高权限功能)。
- 最小化原则:检查用户权限是否遵循“最小必要”(如普通用户不应拥有数据库修改权限)。
(四)案例分析题(4题)
- 支付接口性能优化
- (1)性能瓶颈分析:
① 数据库层面:SQL语句低效(如全表扫描)、索引缺失、锁竞争(如事务处理耗时);
② 代码层面:复杂业务逻辑同步处理(如同时调用多个第三方接口)、线程池配置不足(并发处理能力受限);
③ 资源层面:CPU利用率达90%,可能存在计算密集型操作(如加密算法效率低)。 - (2)优化建议:
① 数据库优化:添加索引加速查询,使用连接池减少数据库连接开销,拆分高频访问表;
② 代码优化:将非核心逻辑(如日志记录、异步通知)改为异步处理,引入缓存(如Redis存储常用数据);
③ 资源调整:增加服务器实例(分布式部署),优化线程池参数(如最大线程数、队列大小),升级硬件配置。
- (1)性能瓶颈分析:
五、综合应用与扩展
(一)论述题(1-2题)
-
测试左移对软件质量的影响
- 实践层面:
需求阶段介入,与产品经理共同定义验收标准,提前发现需求歧义(如“用户登录失败3次锁定”未明确锁定时间);
开发阶段同步编写单元测试和接口测试,确保代码逻辑正确(如自动验证支付接口返回值)。 - 质量提升:
缺陷发现时间提前,修复成本降低(据统计,需求阶段修复缺陷的成本是上线后修复的1/100);
测试用例覆盖更全面,减少漏测风险(如边界条件、异常流程在需求阶段即被设计)。 - 协作改进:
开发与测试团队早期对齐需求,减少因理解偏差导致的返工;
敏捷冲刺中,测试左移支持快速迭代,确保每个增量版本质量达标。
- 实践层面:
-
自动化测试在CI中的关键作用
- 快速反馈:开发人员提交代码后,Jenkins自动拉取代码、构建项目、执行自动化测试(如冒烟测试),10分钟内反馈版本是否可测,避免无效集成。
- 质量门禁:设置自动化测试通过率门槛(如必须100%通过冒烟测试),未达标版本禁止进入下一步(如性能测试、手动测试),防止缺陷扩散。
- 效率提升:高频次集成(如每日10次)时,自动化测试替代手工重复劳动(如回归测试),释放人力投入探索性测试;
结合持续部署(CD),实现“测试通过即发布”,加速产品迭代。
(二)综合应用题(答案框架)
-
电商秒杀功能测试方案
- (1)测试阶段重点:
- 单元测试:秒杀算法(库存扣减逻辑)、异常处理(如库存不足);
- 集成测试:前端页面→后端接口→数据库的交互(如用户下单→库存更新→支付触发);
- 系统测试:完整秒杀流程(登录→加入购物车→提交订单→支付),数据一致性(库存、订单、支付状态同步);
- 性能测试:10万用户并发下单,验证系统吞吐量、响应时间、资源利用率;
- 安全测试:防刷机制(限制单用户下单频率)、订单数据加密、用户权限校验(如普通用户无法绕过秒杀直接下单)。
- (2)性能指标:
- 响应时间:用户下单接口平均响应时间≤2s,95%分位≤3s;
- 吞吐量:峰值TPS≥5000(根据业务目标调整);
- 资源利用率:CPU≤80%,内存使用率≤70%,数据库连接池利用率≤90%。
- (3)安全关注点:
- 越权:普通用户能否通过修改URL访问管理员秒杀配置页面;
- SQL注入:秒杀活动参数是否过滤特殊字符(如恶意用户在活动ID中注入SQL语句);
- 数据加密:用户秒杀记录、支付信息是否在传输和存储时加密(如HTTPS、AES加密)。
- (1)测试阶段重点:
-
缺陷管理流程优化
- (1)现有问题分析:
- 缺陷描述不清晰:复现步骤缺失、无截图/日志,开发人员需多次沟通确认;
- 修复优先级混乱:严重程度低但影响核心流程的缺陷未优先处理;
- 缺乏评审机制:重复缺陷(如同一模块多次出现空指针异常)未分析根本原因。
- (2)改进流程:
① 提交:测试人员填写缺陷报告(必填:复现步骤、环境、截图、严重程度、优先级);
② 评审:测试经理与开发经理每日评审缺陷,确认是否属于有效缺陷(排除环境问题、重复缺陷);
③ 修复:开发人员按优先级修复,记录修复时间和影响范围(如是否需回归测试);
④ 验证:测试人员重新执行用例,验证修复结果,若失败则重新指派(附详细失败日志)。 - (3)缺陷报告模板:
字段 说明 缺陷编号 唯一标识(如TEST-20240501-001) 模块 所属功能模块(如“支付系统-订单接口”) 严重程度 致命/严重/一般/建议性 优先级 高/中/低 复现步骤 详细操作步骤(如“1. 登录系统;2. 点击秒杀按钮”) 预期结果 应显示的正确结果(如“订单提交成功”) 实际结果 实际错误现象(如“500 Internal Server Error”) 测试环境 操作系统、浏览器、版本号等 附件 截图、日志文件、抓包数据等
- (1)现有问题分析:
答案说明
- 选择题:重点考察基础概念辨析,需结合测试原则、模型、工具特性判断。
- 计算题:公式应用需准确(如缺陷密度=缺陷数/千行代码,环路复杂度=E-N+2),注意单位换算。
- 简答题:分点回答,突出核心区别或应用场景(如测试vs质量保证、等价类vs边界值)。
- 案例分析/论述题:结合实际场景,逻辑清晰,措施具体(如性能优化需从数据库、代码、资源三方面入手)。
如需某类题型的进一步解析或更多题目答案,请提供具体题号或模块!