尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

软件测试实战:从理论到用例设计的完整质量保障体系

软件测试实战:从理论到用例设计的完整质量保障体系 1. 项目概述从“点灯”到“筑城”的软件质量保障干了十几年软件测试我越来越觉得这行当的本质不是“找茬”而是“筑城”。新手入门往往被各种术语和方法论绕晕觉得测试就是照着需求文档点点按钮发现几个Bug。但真正想在这条路上走远你必须建立起一套从理论到实践再从实践反哺理论的完整认知体系。这就好比你要盖一座坚固的城堡不能只盯着某一块砖头好不好看你得懂建筑学原理基础理论会画施工图纸测试用例还得掌握各种砌墙、搭梁的工艺设计方法。最近帮几个想转行或刚入行的朋友梳理知识发现大家的问题很集中理论枯燥记不住用例写起来像记流水账设计方法只知道个名字一到实际项目就抓瞎。网上的资料要么是零散的“面试八股”要么是学院派的厚重教材缺的正是那条能把珍珠串成项链的线。所以我想结合这些年的踩坑经验抛开那些华而不实的框架名词回归测试工作最核心的三个支柱基础理论、测试用例和设计方法。我会用盖房子的类比带你理解它们之间的关系并分享一套能直接用在项目里甚至能帮你通过面试的实操心法。无论你是想转行的“零基础”还是工作一两年感觉遇到瓶颈的“初级工程师”这篇文章都能给你提供一个清晰的行动地图。2. 基石篇理解软件测试的“第一性原理”在动手砌砖之前我们必须先理解为什么要盖房子以及什么样的房子才算合格。软件测试的基础理论就是这套“建筑学第一性原理”。它不直接教你具体怎么测但它决定了你测试的视角、深度和最终效果。2.1 测试的根本目标不是找Bug而是提供信息这是一个最根本的认知转变。很多新手测试员会把自己的KPI等同于发现的Bug数量这其实走偏了。测试的终极目标是为项目干系人产品经理、开发、管理层等提供关于软件产品质量的客观信息以辅助他们做出决策。对产品经理你告诉他“搜索功能在并发用户超过1000时响应时间超过5秒的概率是80%”这比单纯说“搜索功能有性能问题”要有用得多。前者是信息后者只是现象。对开发你不仅报出“用户登录失败”更清晰地描述“在iOS 15.4系统、网络从WiFi切换到4G的瞬间点击登录会触发失败且错误日志指向Session校验超时”这能极大提升排查效率。对管理层你能基于测试结果评估“当前版本的核心业务流程通过率95%已知的高危缺陷均已修复建议可以进入发布候选阶段。”这是支持商业决策的关键输入。所以你的测试活动、产出的用例和报告都应该围绕“生成有价值的信息”这个核心来展开。记住一个没有被用来做决策的测试结果其价值约等于零。2.2 核心概念辨析贯穿职业生涯的“三驾马车”理论中有些概念会伴随你的整个职业生涯必须彻底吃透。验证Verification与确认Validation验证回答“我们做得对吗”Are we building the product right?。检查软件是否正确地实现了需求规格说明书中的功能。这通常是测试工程师的主要工作属于“内部视角”。例如需求说“按钮点击后变色”你测试点击后是否真的变色了。确认回答“我们做的是对的吗”Are we building the right product?。检查软件是否满足了用户的真实需求和业务目标。这通常需要产品经理和用户参与属于“外部视角”。例如这个“点击变色”的按钮其位置、颜色和交互方式是否真的符合用户的使用习惯和预期实操心得新手容易陷入纯粹的“验证”陷阱变成需求的“复读机”。高级测试工程师会时刻带着“确认”的思维多问一句“这个功能这样设计用户用起来真的方便吗有没有更优的交互” 这种思维能让你从被动执行转向主动贡献价值。黑盒、白盒与灰盒测试黑盒测试把软件当“黑盒”不关心内部结构只关注输入输出。你只需要知道“输入A应该得到B”。这是功能测试的主要方法。优势是贴近用户视角劣势是覆盖率可能不足因为无法触及内部逻辑分支。白盒测试把软件当“透明盒”基于代码内部逻辑结构来设计用例。需要你懂代码能看流程图、控制流图。单元测试就是典型的白盒测试。优势是能发现深层的逻辑错误劣势是可能偏离用户实际使用场景。灰盒测试介于两者之间。你知道部分内部结构如接口定义、数据库表结构但测试时仍主要关注外部行为。接口测试、集成测试常采用此法。如何选择在真实项目中纯粹的黑盒或白盒很少。对于测试工程师我建议采取“黑盒为主灰盒为辅”的策略。即从用户场景出发设计主流程用例黑盒同时借助接口文档、日志等“灰盒”信息设计更多针对异常、边界和内部状态的用例从而大幅提升测试深度和效率。测试级别构建质量防线软件测试是分层次的就像城堡的外墙、内墙和核心堡垒。单元测试由开发人员完成测试最小的代码单元函数、方法。这是第一道也是最关键的一道防线。单元测试覆盖率高的代码后续测试会轻松很多。集成测试测试模块/组件之间的接口和交互。重点在于数据传递、调用顺序和资源竞争。常出现“单元测试都过一集成就挂”的情况。系统测试把软件作为一个完整的系统进行测试验证功能、性能、安全性等是否满足需求规格。这是测试工程师的主战场。验收测试由最终用户或客户代表进行确认软件是否满足合同或用户需求。通常基于真实业务场景。流程心得测试工程师虽然不直接写单元测试但必须推动和关注单元测试的质量。在评审开发的设计文档时就可以询问关键逻辑的单元测试方案。一个健康的项目单元测试的缺陷发现占比应该是最高的。2.3 测试原则指导具体行动的“军规”这些原则是无数前辈踩坑总结出来的经验能帮你避开很多弯路。缺陷集群性Pareto原则80%的缺陷集中在20%的模块中。经验表明缺陷就像蟑螂如果你在某个复杂或频繁变更的模块发现了一个Bug那么附近极有可能藏着更多。测试时应对这些“高危区域”投入更多精力。杀虫剂悖论反复执行相同的测试用例会发现的新缺陷越来越少。就像害虫会对杀虫剂产生抗药性一样。因此测试用例需要定期评审和更新加入新的测试思路和数据或者引入自动化来解放人力去做更有探索性的测试。测试活动应尽早介入测试不是一个在开发完成后才开始的阶段。在需求评审时测试人员就应该参与从可测试性、一致性和潜在风险角度提出问题。这被称为“左移”能极大降低后期修复缺陷的成本。有数据显示需求阶段修复一个问题的成本可能是发布后修复的百分之一甚至更低。穷尽测试是不可能的除了极其简单的程序你不可能测试所有输入组合和路径。因此测试的核心是“基于风险和优先级”进行。我们需要用有限的资源通过科学的设计方法去覆盖最高风险、最核心的场景。注意千万不要把理论当成死记硬背的教条。最好的学习方式是在每个日常的测试任务中都有意识地去对应和思考“我现在做的这个操作属于哪个测试级别运用了黑盒还是灰盒方法符合哪条测试原则” 这样理论才能真正内化成你的测试直觉。3. 蓝图篇编写高质量测试用例的实战艺术如果说理论是建筑学那测试用例就是一张张施工图纸。图纸画得含糊工人就会砌歪墙。用例写得粗糙测试执行就会漏测、误测。很多人觉得写用例是枯燥的体力活那是因为没掌握其中的“艺术”。3.1 测试用例的核心要素一个都不能少一个完整的测试用例应该让任何一个合格的测试人员在不询问作者的情况下都能准确无误地执行并判断结果。它通常包含以下要素要素说明与示例编写要点用例IDTC_LOGIN_001唯一标识便于追踪和管理。建议用模块缩写功能缩写序号。用例标题验证使用正确的用户名和密码可以成功登录一句话概括测试目的。要求清晰、无歧义看到标题就知道要测什么。前置条件1. 用户已注册账号为testuser密码为Test123。2. 处于登录页面。执行该用例前必须满足的状态。要具体、可操作避免“系统正常运行”这种模糊描述。测试步骤1. 在用户名输入框输入testuser。2. 在密码输入框输入Test123。3. 点击“登录”按钮。按顺序、原子化地描述操作。每一步都应该是可执行的最小动作。测试数据用户名testuser密码Test123与步骤分离单独列出。便于维护和进行数据驱动测试。预期结果1. 页面跳转至用户首页。2. 页面右上角显示用户名testuser。3. 登录成功的Toast提示“欢迎回来”。必须可验证。描述系统应有的响应和状态变化。避免“登录成功”这种笼统说法。实际结果执行后填写与预期结果对比判断用例是否通过。优先级P0最高通常分P0/P1/P2/P3根据功能重要性、使用频率、失效影响程度确定。所属模块用户认证便于分类和筛选。实操心得很多团队用Excel或Wiki写用例维护起来简直是噩梦。我强烈建议在条件允许时使用专业的测试管理工具如TestRail, Zephyr, 甚至禅道、Jira插件。它们能提供更好的结构化、协作性和统计功能。对于“测试数据”特别是用于接口测试的复杂JSON可以单独用JSON/YAML文件管理在用例中引用实现数据与步骤分离。3.2 从需求到用例拆解与转化的思维过程拿到一个需求文档如何下笔写第一个用例切忌直接照抄需求条目。你需要一个拆解过程。案例需求描述为“用户可以对文章进行评论”。理解核心功能点评论。这隐含了“增删改查”吗通常“评论”至少包含“发布评论”。是否支持“回复评论”、“删除评论”、“评论点赞”需要与产品经理确认边界。识别输入与输出输入评论内容、评论者、被评论文章、可能还有父评论ID用于回复。输出评论是否成功发布、前端展示、数据库记录、可能的消息通知。划定测试范围功能发布评论正常、异常、字符长度/类型限制、敏感词过滤、重复提交处理。界面评论框UI、提交按钮状态、评论列表展示、分页。接口调用发布评论接口的请求与响应。数据评论数据是否正确存入数据库。交互发布后页面是否刷新或局部更新。开始设计用例基于上述分析先写出主流程用例再通过后续的设计方法补充异常、边界用例。例如第一个用例可能就是“TC_COMMENT_001: 验证输入合法内容可成功发布评论”。3.3 优秀测试用例的特征如何评价一个用例写得好不好我总结为“CLEAR”原则Complete完整覆盖了前置条件、步骤、数据、预期结果等所有必要要素。Logical逻辑清晰步骤顺序合理读起来像一份清晰的说明书。Executable可执行任何测试人员都能根据描述独立执行没有模糊地带。Accurate准确预期结果描述精准无歧义可直接用于验证。Reusable可复用通过参数化数据该用例模板可以被多次复用如测试不同长度的评论。避坑指南新手最常见的错误一是预期结果过于笼统如“系统处理正确”二是一个用例包含多个验证点如“登录并检查个人资料”。记住“一个用例一个验证点”的黄金法则。复杂的场景可以拆分成多个用例并通过“前置条件”来串联。4. 方法论篇测试用例设计方法的深度运用有了画图纸的能力我们还需要掌握各种绘图工具和技法。测试设计方法就是这些工具。它们能系统性地帮助我们生成测试用例避免随机和遗漏。下面我结合实例重点讲解最常用、最核心的几种方法。4.1 等价类划分与边界值分析黄金搭档这是最基础、最实用的一组方法几乎用于所有输入框测试。等价类划分将输入域划分为若干个子集等价类从每个子集中选取一个代表性数据作为测试用例。原理是同一等价类中的输入会触发相同的处理逻辑。有效等价类符合规格说明的、有意义的输入集合。用于验证软件是否实现了预期功能。无效等价类不符合规格说明的、无意义的输入集合。用于验证软件的容错能力。边界值分析经验表明错误更可能发生在输入域的边界上。此方法就是对等价类的边界及其左右邻域进行测试。实战案例假设一个输入框要求是“1-100之间的整数”。划分等价类有效等价类1-100之间的整数。无效等价类小于1的整数、大于100的整数、非整数小数、字母、特殊字符、空、空格、NULL。应用边界值分析有效边界1 100。无效边界0 101。此外还会测试刚好在边界内的值2 99。设计测试用例输入1有效最小值边界输入100有效最大值边界输入50有效中间值代表等价类输入0无效下边界外输入101无效上边界外输入1.5无效小数输入“abc”无效字母输入“”无效空可选输入-1 102 等进一步确认。经验技巧对于开区间如“大于10”边界值应取10无效、11有效。记住口诀上点、离点、内点。上点就是边界值本身离点是边界值附近刚刚超出范围的点内点是范围内的普通点。在实际项目中对于重要的数值型输入金额、数量、年龄必须严格执行边界值分析这里爆雷的概率极高。4.2 判定表驱动法处理复杂业务逻辑的利器当业务逻辑由多个逻辑条件组合决定时等价类划分就不够用了。判定表能清晰、系统地梳理所有条件组合及其对应动作。实战案例电商订单支付逻辑简化版。规则用户支付时1) 如果账户余额充足则直接扣款成功2) 如果余额不足但绑定了信用卡则尝试调用信用卡支付3) 如果余额不足且未绑定信用卡则支付失败。识别条件桩和动作桩条件桩 C1: 账户余额 订单金额 (Y/N)条件桩 C2: 是否绑定信用卡 (Y/N)动作桩 A1: 余额支付成功动作桩 A2: 尝试信用卡支付动作桩 A3: 支付失败列出所有条件组合2个条件每个2种取值共有 2^2 4 种组合。构建判定表规则编号1234条件C1 余额充足?YYNN条件C2 有信用卡?YNYN动作A1 余额支付√√动作A2 信用卡支付√动作A3 支付失败√简化与设计用例规则1和2只要余额充足C1Y无论有无信用卡都走余额支付。可以合并考虑但测试时最好两种场景都覆盖。规则3余额不足但有信用卡走信用卡支付。规则4余额不足且无信用卡支付失败。据此我们至少可以设计3个核心用例来覆盖主要逻辑路径。实操心得判定表特别适合测试优惠券叠加规则、运费计算规则、权限审批流程等。在画判定表时先别急着想测试数据先把所有条件和动作理清楚。很多时候和产品、开发一起画这个表能发现需求中模糊、矛盾或遗漏的逻辑点这本身就是极大的价值。4.3 场景法从用户视角出发的端到端测试也叫流程分析法。它不关注单个输入输出的对错而是关注用户完成一个特定目标所经历的一系列操作流程。这是进行系统测试和验收测试的核心方法。核心概念基本流最理想、最直接的“阳光大道”用户无任何异常操作顺利完成目标的流程。备选流在基本流中由于不同选择或条件产生的其他成功路径。可以理解为“岔路”但最终也能到达目的地。异常流导致流程无法继续需要回退或报错的路径。即“死胡同”或“悬崖”。实战案例用户在线购买一本书简化。绘制流程图脑中或纸上开始 - 浏览商品 - 加入购物车 - 去结算 - 登录/注册 - 填写收货地址 - 选择支付方式 - 支付 - 订单生成 - 结束 | | | | | (点击详情) (修改数量) (返回购物车) (地址管理) (支付失败)识别流基本流浏览-加入购物车-去结算-登录-填写地址-选择支付余额-支付成功-订单生成。备选流1用户已登录跳过登录步骤。备选流2支付方式选择信用卡支付。异常流1支付失败余额不足、信用卡拒付等。异常流2在结算页收货地址为空系统提示并阻止继续。设计场景用例场景1基本流新用户成功用余额购买一本书。场景2备选流1老用户成功用余额购买一本书。场景3备选流2用户使用信用卡成功支付。场景4异常流1用户余额不足支付失败流程回退到支付选择页。场景5异常流2用户未填写地址点击提交时提示错误。经验之谈场景法是设计端到端E2E自动化测试用例的绝佳依据。你可以将每个场景特别是基本流和关键备选流转化为一个自动化测试脚本。在敏捷开发中基于用户故事User Story的验收测试本质上就是场景法。4.4 错误推测法与探索性测试依赖经验的“神之一手”以上都是系统性的、可重复的设计方法。但软件是复杂的总有边边角角是系统方法覆盖不到的。这时就需要依靠测试人员的经验、直觉和对业务的深刻理解。错误推测法基于经验列举出程序中可能有的错误和容易发生错误的特殊情况从而设计针对性的用例。例如对于文件上传功能除了测正常图片你会立刻想到测超大文件、空文件、文件名包含特殊字符、重复文件名、上传过程中断网、快速连续点击上传等。这些就是基于常见错误模式的推测。探索性测试在测试设计的同时执行测试通过不断学习被测系统、设计测试、执行测试、解读结果这一循环来进行的测试。它是一种测试风格而不是一种具体技术。如何做给你一个功能不给你详细的用例给你一段时间如90分钟让你像用户一样去探索同时记录下你做了什么、发现了什么、产生了什么疑问。这能发现很多脚本化测试发现不了的、关于用户体验、逻辑矛盾、交互设计的问题。核心建议不要将探索性测试与“随意点点”划等号。高效的探索性测试需要章程一个明确的测试目标或范围和记录。你可以使用“测程”Session的形式来管理设定一个明确目标如“探索购物车在弱网下的表现”规定时间专注探索最后产出测试报告。这是体现测试工程师创造力和价值的最高形式。5. 融合实战从零设计一个“登录功能”的测试用例让我们把所有方法融合起来实战演练如何为一个经典的“用户登录”功能设计测试用例。假设需求如下支持用户名/密码登录用户名6-18位字母数字密码8-16位需包含大小写字母和数字。5.1 第一步需求分析与模型建立功能拆解输入用户名、密码、处理验证、会话创建、输出登录成功/失败、跳转、提示。识别测试类型功能测试核心。安全性测试密码传输是否加密、错误次数限制、会话管理。兼容性测试不同浏览器、设备。用户体验测试提示信息是否友好、加载状态。确定主要测试方法等价类划分边界值分析针对输入框、场景法针对登录流程、错误推测法针对安全与异常。5.2 第二步运用等价类与边界值设计输入框用例用户名6-18位字母数字有效等价类长度6-18位的字母数字组合。边界值6位 18位。内点10位。无效等价类长度5位下边界外 19位上边界外。类型包含特殊字符如username、中文、空格、纯数字、纯字母虽在“字母数字”范围内但有时业务要求不能纯数字或纯字母需确认。空/空值输入为空输入为NULL接口测试。设计用例TC_LOGIN_USER_001: 输入6位字母数字组合有效边界TC_LOGIN_USER_002: 输入18位字母数字组合有效边界TC_LOGIN_USER_003: 输入12位字母数字组合有效内点TC_LOGIN_USER_004: 输入5位字母数字组合无效短TC_LOGIN_USER_005: 输入19位字母数字组合无效长TC_LOGIN_USER_006: 输入包含的字符串无效特殊字符TC_LOGIN_USER_007: 输入空无效空密码8-16位大小写字母数字有效等价类长度8-16位且同时包含大小写字母和数字。边界值8位如Abc12345 16位。内点12位。无效等价类长度7位 17位。复杂度缺少大写字母abc12345、缺少小写字母ABC12345、缺少数字Abcdefgh、全大写、全小写、全数字。空/空值。设计用例TC_LOGIN_PWD_001: 输入Abc123458位有效边界含大小写数字TC_LOGIN_PWD_002: 输入Abc1234567890XYZ16位有效边界TC_LOGIN_PWD_003: 输入Abc123456710位有效内点TC_LOGIN_PWD_004: 输入Abc12347位无效短TC_LOGIN_PWD_005: 输入abc12345无效缺大写TC_LOGIN_PWD_006: 输入ABCD1234无效缺小写TC_LOGIN_PWD_007: 输入Abcdefgh无效缺数字5.3 第三步运用场景法设计核心流程用例基本流输入正确的用户名和密码 - 点击登录 - 跳转至首页显示用户信息。TC_LOGIN_FLOW_001: 新开浏览器使用正确凭据登录成功。备选流1用户已登录再次访问登录页 - 应自动跳转至首页。TC_LOGIN_FLOW_002: 登录成功后新开标签页访问登录页验证自动跳转。备选流2登录后“记住我” - 关闭浏览器再打开 - 自动登录。TC_LOGIN_FLOW_003: 登录时勾选“记住我”关闭浏览器后重新打开验证是否免登录。异常流1用户名或密码错误。TC_LOGIN_FLOW_004: 用户名正确密码错误提示“用户名或密码错误”。TC_LOGIN_FLOW_005: 用户名不存在提示“用户名或密码错误”安全考虑通常不提示“用户不存在”。异常流2网络异常。TC_LOGIN_FLOW_006: 点击登录按钮后断网应有加载超时提示且不会卡死。异常流3连续多次错误登录触发账户锁定。TC_LOGIN_FLOW_007: 连续5次假设输入错误密码第6次即使输入正确也应提示“账户已锁定请XX分钟后重试或联系管理员”。5.4 第四步运用错误推测法补充“刁钻”用例安全性TC_LOGIN_SEC_001: 密码输入框是否掩码显示显示为星号或圆点TC_LOGIN_SEC_002: 提交登录请求时密码在网络传输中是否加密查看Chrome开发者工具Network标签TC_LOGIN_SEC_003: 登录后的Cookie或Token其HttpOnly、Secure等属性设置是否安全TC_LOGIN_SEC_004: 尝试SQL注入或XSS payload作为用户名/密码输入。兼容性与体验TC_LOGIN_UX_001: 在移动端小屏幕上登录表单布局是否正常TC_LOGIN_UX_002: 输入框获得焦点、失去焦点、错误状态时的样式是否正确TC_LOGIN_UX_003: 点击登录按钮后按钮是否变为禁用状态并有加载动画防止重复提交TC_LOGIN_UX_004: 错误提示信息是否清晰、友好且指向明确接口层面TC_LOGIN_API_001: 使用工具如Postman直接调用登录接口传递异常参数如password字段为空字符串、为null、为超长字符串。TC_LOGIN_API_002: 验证登录成功后的响应中是否包含不必要的敏感信息如明文密码、过多用户隐私。通过以上四步我们从一个简单的“登录”需求衍生出了数十个涵盖功能、安全、体验、接口等多个维度的测试用例。这个过程体现了系统化设计方法的威力。6. 进阶与沉淀从用例执行到质量保障体系设计出好的用例只是第一步如何高效执行、管理并让测试活动持续产生价值是更重要的课题。6.1 测试用例的管理与维护用例不是一成不变的。随着需求变更、Bug修复和版本迭代用例库必须同步更新。版本关联在测试管理工具中将用例与需求、用户故事、甚至代码提交Commit关联起来。这样能清晰追溯测试覆盖范围。定期评审每个迭代或版本开始前组织对现有用例的评审。剔除过时的合并重复的补充新的场景。这是对抗“杀虫剂悖论”的有效手段。生命周期管理明确用例的状态设计中、评审中、已就绪、已废弃。对于长期不执行的用例要考虑其存在的必要性。6.2 测试用例的执行策略面对成百上千的用例如何安排执行顺序基于风险与优先级优先执行P0最高优先级的用例它们通常覆盖核心业务流程和主干功能。冒烟测试在每个新构建Build交付后先执行一组最核心、最基本的用例通常选自P0以确定这个构建是否“可测”。如果冒烟测试失败通常意味着版本质量极差需要打回开发重新构建避免测试团队做无用功。回归测试当修复一个Bug或新增一个功能后执行相关模块和可能受影响模块的用例以确保没有引入新的问题。自动化回归测试是应对频繁迭代的基石。探索性测试在系统测试的中后期安排专门的时间进行探索性测试以发现那些脚本化用例无法覆盖的、更深层或更隐蔽的问题。6.3 测试报告将信息转化为洞察测试执行的产出不是一句“测完了”而是一份有价值的测试报告。一份好的报告应包含测试概述本次测试的范围、目标、环境、时间、人员。测试执行情况用例总数、通过数、失败数、阻塞数、执行率、通过率。用图表展示更直观。缺陷分析发现的缺陷总数按严重等级致命、严重、一般、轻微分布按功能模块分布按引入阶段分布。趋势分析与上一版本相比缺陷数是上升还是下降更有价值。风险与评估当前版本存在的质量风险如哪些关键Bug未修复哪些模块测试覆盖不足以及基于测试结果对版本质量的总体评估是否达到发布标准。建议给出明确的下一步行动建议如“建议修复所有致命和严重Bug后发布”或“XX模块需要补充专项性能测试”。报告心得给你的报告读者项目经理、产品经理、开发主管他们最关心的信息。管理层可能更关注“能否按时发布”和“主要风险”开发主管更关注“缺陷集中在哪个模块、哪个开发”。学会用数据说话用图表呈现让你的报告成为决策的重要依据。软件测试是一条需要持续学习和实践的道路。理论是地图设计方法是工具而真正的成长来自于在真实项目中不断地应用、反思和优化。当你开始不仅仅满足于“发现Bug”而是致力于“构建质量信心体系”时你就从一名测试执行者迈向了一名真正的质量保障工程师。最后分享一个我坚持多年的习惯建立自己的“测试点子库”。无论是看书、读技术文章、还是日常使用其他APP时遇到的Bug或有趣的设计都随手记下来思考“如果是我来测这个功能我会从哪些角度设计用例”。这个习惯是你超越方法论形成自己独特测试思维的最快路径。
返回列表