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

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

发布:cli 2026-07-01 17:21

推荐答案

引言

软件测试是保障软件质量的核心环节。对于零基础的学习者,理解基础概念比背诵术语更重要。本文精选7个最核心的概念,用场景化解释和代码示例帮你快速入门。

1. 测试用例(Test Case)

是什么:测试用例是描述“如何验证软件功能”的文档,包含输入、步骤、预期结果。

为什么重要:没有测试用例的测试是“凭感觉测”,容易遗漏场景且无法复现。

怎么做:一个标准测试用例包含:

  • ►用例ID
  • ►测试描述
  • ►前置条件
  • ►测试数据
  • ►测试步骤
  • ►预期结果

案例:测试登录页面“密码错误”场景。

字段内容
用例IDTC_Login_001
描述验证密码错误时提示正确信息
前置条件用户已注册,账号:test@example.com
测试数据密码:wrongpass
步骤1. 输入邮箱 2. 输入密码 3. 点击登录
预期结果页面显示“密码错误,请重试”

2. 缺陷(Bug / Defect)

是什么:软件实际行为与需求文档或用户期望不一致的地方。

为什么重要:发现并管理缺陷是测试的核心产出。

怎么做:缺陷报告需要包含:

  • ►标题:简洁描述问题
  • ►复现步骤:别人按此操作能100%复现
  • ►实际结果 vs 预期结果
  • ►严重程度:致命/严重/一般/轻微

案例:电商网站“加入购物车”按钮无反应。

text
标题:商品详情页点击“加入购物车”按钮无响应

步骤:

1. 打开商品页(商品ID:12345)

2. 点击“加入购物车”按钮

实际结果:页面无变化,控制台无报错

预期结果:按钮变为“已加入”,购物车数量+1

严重程度:严重

3. 黑盒测试(Black-box Testing)

是什么:不关注内部代码,只测试软件“输入什么→输出什么”。

为什么重要:这是测试人员最常用的方法,模拟真实用户使用场景。

怎么做:设计测试数据时使用等价类划分和边界值分析。

案例:测试一个“年龄输入框”(要求1-120岁)。

等价类划分法:

  • ►有效类:1-120(选中间值 25)
  • ►无效类:<1(0)、>120(200)、非数字(abc)

边界值分析法:

  • ►最小值边界:0、1、2
  • ►最大值边界:119、120、121

用Python写一个简单的边界测试:

被测函数

def validate_age(age):

if 1 <= age <= 120:

return True

return False

边界值测试

assert validate_age(0) == False # 下边界-1

assert validate_age(1) == True # 下边界

assert validate_age(2) == True # 下边界+1

assert validate_age(119) == True # 上边界-1

assert validate_age(120) == True # 上边界

assert validate_age(121) == False # 上边界+1

text

<div style="margin:24px 0;border:1px solid #E3F2FD;border-radius:8px;background:#FAFAFA;overflow:hidden;"><div style="display:flex;align-items:center;gap:12px;padding:12px 20px;background:linear-gradient(135deg,#E3F2FD,#BBDEFB);"><span style="width:36px;height:36px;background:#2196F3;color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:bold;font-size:16px;flex-shrink:0;">4. </span><span style="font-size:17px;font-weight:700;color:#1565C0;">自动化测试(Automation Testing)</span></div><div style="padding:16px 20px;"><p><strong>是什么</strong>:用代码代替人工执行测试用例。</p>
<p><strong>为什么重要</strong>:回归测试(每次改代码后重新测)人工做成本高,自动化能大幅缩短时间。</p>
<p><strong>怎么做</strong>:使用Selenium WebDriver模拟浏览器操作。</p>
<p><strong>案例</strong>:自动化测试一个简单登录流程。</p></div></div>
    # 输入账号密码
    driver.find_element(By.ID, "email").send_keys("test@example.com")
    driver.find_element(By.ID, "password").send_keys("myPassword123")
    driver.find_element(By.ID, "login_btn").click()
    
    # 验证登录成功
    assert driver.current_url == "https://example.com/dashboard"
    
    driver.quit()

注意:不是所有场景都适合自动化。界面频繁变动的模块,自动化维护成本反而高。

5. 回归测试(Regression Testing)

是什么:修改代码后,重新测试所有受影响的功能,确保旧功能没被破坏。

为什么重要:开发修一个bug可能会引入新bug,回归测试能尽早发现。

怎么做:优先选择核心功能和高风险模块进行回归。自动化测试是回归测试的利器。

案例:开发修复了“支付页面金额显示错误”后,需要回归:

  • ►支付页面金额显示(修复点)
  • ►登录功能(未改,但需确认)
  • ►商品列表(未改,但需确认)
  • ►订单查询(未改,但需确认)

6. 单元测试(Unit Testing)

是什么:测试代码中最小的可测试单元(通常是一个函数或方法)。

为什么重要:尽早发现代码逻辑错误,降低后期修复成本。

怎么做:开发人员编写,测试人员可参与评审。

案例:测试一个计算折扣的函数。

单元测试

def test_calculate_discount():

assert calculate_discount(100, "SAVE10") == 90.0

assert calculate_discount(100, "SAVE20") == 80.0

assert calculate_discount(100, "INVALID") == 100.0

assert calculate_discount(0, "SAVE10") == 0.0

相关问题

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

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

7软件测试基础知识点,新手必须掌握_千锋教育

软件测试基础知识体系:3个模块完整梳理_千锋教育

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

7软件测试基础知识点,新手必须掌握_千锋教育