什么是功能测试和非功能测试?

功能测试 vs 非功能测试核心对比

维度 功能测试 (Functional Testing) 非功能测试 (Non-Functional Testing)
测试目标 验证系统"做什么"(是否符合需求文档) 验证系统"做得如何"(质量属性)
测试重点 功能逻辑、输入输出正确性 性能、可靠性、安全性等非功能特性
测试阶段 贯穿全周期(单元→集成→系统→验收) 通常在功能稳定后执行(如压力测试在系统测试阶段)
是否必需 必选(所有系统必须验证功能) 可选(根据项目类型决定,如金融系统必做安全测试)
缺陷类型 功能错误(如计算错误、流程中断) 系统缺陷(如并发崩溃、响应超时)
典型技术 等价类划分、状态转换测试 压力测试、渗透测试、兼容性矩阵
工具举例 Selenium(UI)、Postman(API) JMeter(性能)、OWASP ZAP(安全)

功能测试详解(What & How)

定义:验证软件功能是否满足需求规格说明书(SRS)的测试
常见子类型

  1. 冒烟测试:核心流程验证(开发提交后的快速检查)

  2. 回归测试:确保修改不影响原有功能(自动化高优先级)

  3. 边界测试:针对输入边界值的特殊用例(如文本框最大字符限制)

实战案例
测试微信红包功能

  • 功能点①:输入金额不能超过200元 → 边界值测试

  • 功能点②:拼手气红包总额分配正确 → 计算逻辑验证


非功能测试详解(What & How)

定义:评估系统在真实环境中的表现特性
关键分类(ISO 25010标准):

  1. 性能测试:包括负载测试(最大并发用户)、压力测试(超出负载极限)

  2. 安全测试:SQL注入检测、XSS攻击防护(金融类系统必做)

  3. 兼容性测试:浏览器/操作系统/设备矩阵(如H5页面需测iOS/Android主流机型)

  4. 可用性测试:用户操作路径合理性(常配合A/B测试)

典型场景
电商大促前的性能测试:

  • 模拟10万用户同时抢购 → 检查服务器CPU/内存是否过载

  • 持续运行24小时 → 验证内存泄漏风险

你可能感兴趣的:(软件测试基础概念-面试通关,功能测试)