当前位置:首页  >  IT问答库  >  软件测试基础知识

从零开始学软件测试:10个基础概念精讲_千锋教育

发布:cli 2026-05-27 06:05

推荐答案

前言

刚入行软件测试,面对一堆专业术语容易一头雾水。本文用最直白的语言、最简短的例子,帮你快速掌握10个最核心的基础概念。读完你就能看懂测试文档、听懂团队讨论、写出一份合格的Bug报告。

---

1. 什么是 Bug(缺陷)

是什么:程序没有按预期运行,就是Bug。

为什么重要:测试的核心工作就是找Bug。

怎么做:发现Bug后,需要记录以下信息:

  • ►标题(一句话描述问题)
  • ►复现步骤(从哪一步开始操作)
  • ►实际结果(你看到了什么)
  • ►预期结果(应该是什么样)

例子:登录页面输入正确密码后点击登录,页面无反应。Bug报告标题:“登录按钮点击后无响应”。

---

2. 什么是测试用例(Test Case)

是什么:测试用例是一组“输入+操作+预期结果”的集合,用来验证某个功能是否正确。

为什么重要:没有测试用例,测试就像无头苍蝇,想到哪测到哪。

怎么做:写测试用例时,至少包含:

  • ►用例编号
  • ►测试场景
  • ►前置条件(比如已登录)
  • ►测试步骤
  • ►预期结果

例子:测试“搜索功能”的一个用例:

text
用例编号:TC-SEARCH-001

场景:搜索已存在的商品

前置条件:已登录,商品“苹果”已上架

步骤:1. 在搜索框输入“苹果” 2. 点击搜索按钮

预期结果:页面显示“苹果”商品列表

---

3. 什么是冒烟测试(Smoke Testing)

是什么:在正式测试前,先快速跑一遍核心功能,看看系统能不能“开机”。如果连核心功能都挂了,就不用往下测了。

为什么重要:节省时间。避免花几小时测一个连登录都报错的系统。

怎么做:冒烟测试用例只覆盖核心流程(登录、注册、核心业务操作),通常不超过20个用例,执行时间控制在5-10分钟。

例子:测试一个电商APP,冒烟测试用例包括:打开APP → 注册/登录 → 浏览商品 → 加入购物车 → 支付。

---

4. 什么是回归测试(Regression Testing)

是什么:修改代码后,重新测试一遍已有的功能,确保新代码没有破坏旧功能。

为什么重要:开发改了一行代码,可能让原来正常的功能出问题。回归测试就是兜底的。

怎么做:回归测试通常用自动化脚本执行,因为每次都跑一遍全量用例太耗时。每次发版前,必须跑完回归测试。

例子:开发修复了“支付按钮卡顿”的Bug,回归测试就要重新跑一遍“登录→浏览→加购物车→支付”的全流程。

---

5. 什么是黑盒测试 / 白盒测试

是什么:

  • ►黑盒测试:不看代码,只测功能。输入数据,看输出结果对不对。
  • ►白盒测试:看代码,测代码逻辑是否覆盖全路径。

为什么重要:黑盒测试从用户视角找问题,白盒测试从开发者视角找隐患。两者互补。

怎么做:

  • ►黑盒测试:写测试用例时,关注不同输入组合(如边界值、等价类划分)。
  • ►白盒测试:写测试用例时,关注代码分支(if/else、for循环)是否都跑过。

例子:测试一个“计算器”应用:

  • ►黑盒测试:输入“2+3”,看结果是不是“5”。
  • ►白盒测试:看代码中加法逻辑是否处理了负数、小数、大数。

---

6. 什么是边界值分析(Boundary Value Analysis)

是什么:Bug最容易出现在输入值的“边界”附近。边界值分析就是专门测这些边界点。

为什么重要:很多程序员写代码时,边界判断容易出错(比如“>=”写成“>”)。

怎么做:取最小值、最小值+1、最大值、最大值-1、中间值进行测试。

例子:一个密码长度要求6-16位。需要测试的边界值:

  • ►5位(无效边界)
  • ►6位(有效最小值)
  • ►7位(有效边界+1)
  • ►15位(有效边界-1)
  • ►16位(有效最大值)
  • ►17位(无效边界)

---

7. 什么是等价类划分(Equivalence Partitioning)

是什么:把输入数据分成若干“等价类”,每个类里选一个代表值测试即可。

为什么重要:减少测试用例数量,提高效率。不用每个值都测一遍。

怎么做:

  • ►有效等价类:程序能正确处理的输入。
  • ►无效等价类:程序不能处理的输入(比如负数、超长字符串)。

例子:年龄输入框要求1-150岁。

  • ►有效等价类:1-150之间的任意整数(如25)
  • ►无效等价类:0、负数、151、非数字字符(如“abc”)

只需测4个值,就能覆盖所有情况。

---

8. 什么是自动化测试

是什么:用代码代替人工操作,自动执行测试用例并比对结果。

为什么重要:重复性高、执行频率高的测试(如回归测试)由机器来做,效率高、不疲劳。

怎么做:常用工具有Selenium(Web端)、Appium(移动端)、Postman(API接口)。编写脚本模拟用户操作。

例子:用Python+Selenium自动化测试登录功能:

python
from selenium import webdriver

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get("https://example.com/login")

driver.find_element(By.ID, "username").send_keys("testuser")

driver.find_element(By.ID, "password").send_keys("pass123")

driver.find_element(By.ID, "loginBtn").click()

assert "欢迎回来" in driver.page_source

driver.quit()

---

9. 什么是性能测试

是什么:测试系统在特定负载下的响应速度、稳定性和资源消耗。

为什么重要:功能正常不代表能扛住高并发。性能瓶颈是系统上线后最常见的故障。

怎么做:使用JMeter、LoadRunner等工具模拟多个虚拟用户同时操作,观察系统指标(响应时间、吞吐量、CPU/内存占用)。

例子:测试一个电商网站“秒杀”功能,模拟1000个用户同时点击“立即购买”,看页面是否崩溃、支付是否超时。

---

10. 什么是测试覆盖率

是什么:测试用例覆盖了多少代码或功能。常用指标有:

  • ►代码覆盖率:被测试执行的代码行数占比。
  • ►功能覆盖率:被测试的功能点占比。

为什么重要:覆盖率低意味着有大量代码或功能没有被测试,风险高。

怎么做:使用覆盖率工具(如JaCoCo、Istanbul)生成报告,分析哪些代码没测到,补充测试用例。

例子:代码覆盖率报告显示“if-else分支中else分支未覆盖”,说明这个分支的逻辑从未被执行测试。

---

自测清单

读完这篇文章,你能回答以下问题吗?(每个问题对应一个概念)

1. 发现一个Bug,需要记录哪些信息?

2. 测试用例最少包含哪几个要素?

3. 冒烟测试和回归测试的区别是什么?

4. 黑盒测试和白盒测试,你更适合从哪个开始学?

5. 密码长度6-16位,边界值分析要测哪几个值?

6. 等价类划分能帮你节省多少测试时间?

7. 自动化测试适合什么场景?

8. 性能测试主要关注哪些指标?

9. 测试覆盖率低意味着什么?

10. 如果只能记住一个测试思想,你选哪个?

---

总结

软件测试不是玄学,而是有方法、有套路的技术活。10个基础概念,每一个都是测试工程师的日常工具。从今天开始,遇到任何一个测试任务,先问自己:我该用哪个概念来指导我的测试?

相关问题

从零开始学软件测试:10个基础概念精讲_千锋教育

软件测试基础知识3:7核心概念全解析_千锋教育

功能测试和非功能测试到底有什么区别_千锋教育

软件测试生命周期详解:从需求到上线的完整流程_千锋教育

软件测试基础概念全解析:从什么是测试开始_千锋教育

软件测试基础知识自测:你能答对几道题_千锋教育