千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

当前位置:首页  >  零基础学IT  >  零基础学软件测试  > 零基础学软件测试:15天入门计划_千锋教育

零基础学软件测试:15天入门计划_千锋教育

来源:千锋教育
发布人:cli
时间: 2026-05-28 06:08:59 1779919739

这个计划能帮你达成什么?

如果你是非计算机专业、完全零基础,想用半个月时间快速摸清软件测试的门道,这篇文章就是为你准备的。15天后,你将能独立完成一个Web项目的功能测试,写出规范的测试用例,并使用主流工具提交Bug。以下是按天拆解的行动路线,每一步都配了可直接运行的代码示例。

---

阶段一:建立认知(第1-3天)

第1天:理解软件测试的核心逻辑

做什么:搞清楚测试不是“找茬”,而是“质量保障”。你需要知道:

  • ►软件测试的目标:验证功能是否符合需求,发现缺陷,降低风险。
  • ►测试分类:功能测试、性能测试、安全测试、兼容性测试等(初期只关注功能测试)。
  • ►一个Bug的生命周期:发现→提交→分配→修复→验证→关闭。

怎么做:找一款你常用的App(比如微信、淘宝),花1小时列出它的所有功能点,然后思考“如果我来测试,我会怎么检查每个功能是否正常”。

第2天:掌握测试用例设计基础

核心方法:等价类划分和边界值分析。这是入门必须掌握的两个方法。

  • ►等价类划分:将输入数据分成有效和无效两类,每个类取一个代表值测试。
  • ►边界值分析:在等价类的边界(如最小值-1、最小值、最大值、最大值+1)处测试,因为Bug常出现在边界。

可运行的代码示例:测试一个简单的登录功能(用户名和密码长度要求6-18位)。

python
# 测试用例生成器:登录功能边界值分析
def generate_login_test_cases():
    test_cases = []
    # 边界值:5、6、7、17、18、19
    for length in [5, 6, 7, 17, 18, 19]:
        username = "a" * length
        password = "b" * length
        test_cases.append((username, password, "预期结果"))
    return test_cases

cases = generate_login_test_cases()
for case in cases:
    print(f"用户名长度{len(case[0])}:{case}")

输出:理解为什么边界值是测试重点。

第3天:编写第一个测试用例

目标:为一个简单的计算器功能(加法)写测试用例。

被测代码:

python
def add(a, b):
    return a + b

测试用例示例:

用例ID输入a输入b预期输出实际输出状态
TC0011233通过
TC002-1-2-3-3通过
TC0030000通过
TC0041.52.54.04.0通过
TC005"a"2报错TypeError通过

关键点:测试用例必须包含“预期结果”和“实际结果”的对比。

---

阶段二:工具上手(第4-10天)

第4-6天:学会用Selenium做Web自动化

目标:用Python+Selenium打开一个网页,定位元素并操作。

环境准备:

bash
pip install selenium

下载ChromeDriver(匹配你的Chrome版本),放到项目目录。

可运行的代码示例:打开百度,搜索“软件测试”。

python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# 初始化驱动
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# 定位搜索框并输入
search_box = driver.find_element(By.ID, "kw")
search_box.send_keys("软件测试")
search_box.send_keys(Keys.RETURN)

time.sleep(2)  # 等待页面加载
print("页面标题:", driver.title)
driver.quit()

踩坑提醒:

  • ►找不到元素时,先检查页面是否完全加载(加等待)。
  • ►使用By.ID、By.NAME等,不要用废弃的find_element_by_id。

第7-8天:用Postman做接口测试

目标:发送GET/POST请求,查看响应。

操作步骤:

1. 下载Postman(免费版即可)。

2. 找一个公开的API,比如:https://api.github.com/users/octocat。

3. 发送GET请求,查看返回的JSON数据。

4. 写一个简单的Python脚本模拟:

python
import requests

url = "https://api.github.com/users/octocat"
response = requests.get(url)
print("状态码:", response.status_code)
print("用户名:", response.json()["login"])

重点:理解状态码(200成功、404未找到、500服务器错误)的含义。

第9-10天:用Jira或禅道提交Bug

目标:学会在项目管理工具中记录Bug。

Bug报告模板:

  • ►标题:[模块] 问题简述(如:[登录] 密码错误时提示不明确)
  • ►环境:Windows 10,Chrome 120
  • ►步骤:1. 打开登录页 2. 输入错误密码 3. 点击登录
  • ►预期结果:显示"用户名或密码错误"
  • ►实际结果:页面无响应
  • ►附件:截图或录屏

练习:用一个假的Bug提交到禅道演示版(注册后即可操作)。

---

阶段三:实战演练(第11-15天)

第11-12天:为真实项目写测试用例

项目背景:一个简单的图书管理系统的“添加图书”功能。

需求:用户输入书名、作者、ISBN号、出版年份,点击“添加”按钮。要求:

  • ►书名不能为空,长度1-50字符。
  • ►ISBN必须是13位数字。
  • ►出版年份在1900-2023之间。

测试用例设计:

用例ID书名作者ISBN出版年份预期结果
TC001测试张三97812345678902020添加成功
TC002空李四97812345678902020提示“书名不能为空”
TC003测试王五12345678901232020提示“ISBN格式错误”
TC004测试赵六97812345678901899提示“年份超出范围”

第13-14天:自动化执行测试

用Python+unittest执行测试用例:

python
import unittest

def add_book(book_name, author, isbn, year):
    # 模拟业务逻辑
    if not book_name:
        return "书名不能为空"
    if len(isbn) != 13 or not isbn.isdigit():
        return "ISBN格式错误"
    if year < 1900 or year > 2023:
        return "年份超出范围"
    return "添加成功"

class TestAddBook(unittest.TestCase):
    def test_normal(self):
        self.assertEqual(add_book("测试", "张三", "9781234567890", 2020), "添加成功")
    def test_empty_name(self):
        self.assertEqual(add_book("", "李四", "9781234567890", 2020), "书名不能为空")
    def test_invalid_isbn(self):
        self.assertEqual(add_book("测试", "王五", "1234567890123", 2020), "ISBN格式错误")
    def test_invalid_year(self):
        self.assertEqual(add_book("测试", "赵六", "9781234567890", 1899), "年份超出范围")

if __name__ == "__main__":
    unittest.main()

运行结果:4个测试全部通过,说明代码逻辑正确。

第15天:总结与自测

自测清单(30分钟完成):

1. 什么是等价类划分?举一个例子。

2. 什么是边界值分析?为什么它重要?

3. 用Selenium打开https://www.example.com,点击页面上的任意链接。

4. 写一个测试用例,验证一个输入框只能输入数字。

5. 提交一个包含“步骤、预期、实际”的Bug报告。

完成标准:能独立回答以上问题,并写出可运行的代码。

---

踩坑指南(入门必看)

  • ►环境问题:Selenium版本和浏览器驱动不匹配,报错SessionNotCreatedException。解决方法:下载与浏览器版本完全对应的驱动。
  • ►元素定位:页面元素有动态ID,每次刷新都变。改用By.XPATH或By.CSS_SELECTOR定位更稳定的属性。
  • ►测试用例遗漏:只测正确流程,忽略异常场景。记住:测试的目标就是发现错误,必须覆盖边界和异常。
  • ►等待时间:用time.sleep()硬等,效率低且不稳定。改用显式等待WebDriverWait。

显式等待示例:

python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))

---

一句话总结

15天足够你从一个完全不懂测试的人,变成能独立完成功能测试、写测试用例、用工具提交Bug的入门级测试工程师。关键在于每天动手,代码就是最好的老师。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT