ARTICLE DETAIL

资讯详情

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

软件测试期末复习指南:核心考点与用例设计实战技巧

软件测试期末复习指南:核心考点与用例设计实战技巧 期末复习最怕两件事一是翻开书发现全是重点无从下手二是背了一堆概念一到设计题还是不会写。软件测试这门课恰好又是个“理论实践”各占半边天的科目概念题能考到让你怀疑人生用例设计题又要求你真的动手去分析输入条件和分支逻辑。我当年复习的时候也走过不少弯路考前一周才开始看书结果发现连等价类和边界值都分不清边界更别提那堆覆盖标准。这篇东西就是想把软件测试期末复习的框架理顺把高频考点和答题套路都拆开揉碎了讲清楚让正在备考的同学能少走点弯路。这篇文章适合所有正在准备软件测试期末考试的同学也适合刚入行想系统性补一遍测试基础的初级工程师。内容会覆盖核心理论、用例设计方法、常见题型解法、考前冲刺策略这几个维度你既可以按顺序从头看也可以直接跳到对应的薄弱章节。重点是所有东西都以“能拿分、会做题”为导向不是教材内容的简单复述而是把考点变成可以操作的答题思路。1. 复习前先看清考试软件测试课程到底在考什么1.1 别急着背概念先搞懂这四层知识结构软件测试这门课跟Java、数据结构不一样它不是那种全靠写代码就能过的科目也不是纯文科那种背一背就能拿高分的科目。它的知识结构分四层你复习的时候一定要心里有数。第一层是基础概念层包括软件测试的定义、目的、原则、测试与调试的区别这些。这一层以选择题、判断题、名词解释的形式出现属于送分题但前提是你得把关键术语记准确。第二层是过程与流程层包括测试生命周期、测试计划、测试用例设计、缺陷管理等这些内容经常出现在简答题和案例分析题里需要你能把流程串起来讲清楚。第三层是方法技术层包括黑盒测试的几种方法等价类、边界值、判定表、场景法等和白盒测试的逻辑覆盖标准语句覆盖、判定覆盖、条件覆盖等这层是设计题的重点来源几乎每年必考一道大题。第四层是工程实践层包括自动化测试工具、性能测试、测试管理等内容一般考的占比不高但偶尔会在简答题或者多选题里冒出来。搞清楚这四层之后你就知道复习重点该放在哪里了。我的经验是第三层技术方法必须花最多时间因为它是大题唯一的稳定来源且学会了真的能拿分第二层次之主要背流程和框架第一层利用碎片时间反复刷概念第四层结合工具和场景理解记忆即可。1.2 题型分布与复习优先级判断不同学校、不同老师的出题风格差异很大但万变不离其宗大体上逃不出这四类题型客观题单选、多选、判断、简答题、设计题、综合分析题。其中最拉分的是设计题和分析题一道题能顶十道选择题。根据我这些年观察到的期末出题规律帮你排一个复习优先级参考优先级复习内容对应题型投入产出比高黑盒测试用例设计方法设计题、简答题高一道大题直接决定能否上90高白盒测试逻辑覆盖标准设计题、选择题高掌握计算方法和路径画法即可高测试原则与测试流程简答、论述、判断中高背熟框架就能写中测试级别与测试类型选择、判断、简答中注意易混淆点中缺陷管理与测试报告简答、分析中结合案例记忆更牢低自动化测试与工具选择、判断低了解概念和流程就够了判断重点还有一个技巧看老师平时布置的作业。如果一个知识点反复出现在作业里那它基本就是期末考试的重点因为出题人最熟悉、最有把握出题的内容往往也是平时强调最多的内容。如果你连作业都还没来得及翻赶紧去翻这是最靠谱的押题依据。2. 快速过一遍核心理论教材里最容易考的基础点2.1 软件测试的定义、目的与原则背不下来的绕口令软件测试的定义几乎每个版本教材都有略微不同的表述但核心意思是一致的软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程目的在于检验它是否满足规定的需求并发现实际结果与预期结果之间的差异。这里要特别注意区分软件测试和调试这两个概念。测试是为了发现错误调试是为了定位并纠正错误测试是在已知规格的前提下执行程序调试是一个分析推理的过程。考试很喜欢出判断题“测试和调试是同一种活动”这显然是错的。还有人会把“测试证明软件没有错误”当成正确的这也经常成为判断题的陷阱——测试只能证明错误的存在无法证明错误不存在。软件测试的七大原则是高频考点分别是测试显示缺陷的存在、穷尽测试是不可能的、测试应尽早介入、缺陷集群性二八原则、杀虫剂悖论重复执行相同的测试用例无法发现新缺陷、测试依赖于上下文、不存在缺陷谬论软件即使测试通过也可能无法满足用户实际需求。记忆的时候可以结合场景去理解比如缺陷集群性在银行系统里就是核心模块的缺陷密度远高于边缘功能这样答题的时候能写得更生动而不是干巴巴地罗列条目。2.2 测试过程模型与软件开发周期的对应关系软件测试不是等代码写完了才开始测而是贯穿整个软件开发生命周期的。经典的V模型、W模型、H模型都是考试常客你需要能够画出模型图并且解释每个阶段的对应关系。V模型把测试和开发阶段一一对应需求分析对应验收测试、概要设计对应系统测试、详细设计对应集成测试、编码对应单元测试。这种对应关系看着很工整但V模型的缺点是测试活动仍然是在编码之后才具体执行并没有真正做到尽早介入。W模型则是在V模型的基础上增加了开发侧的并行测试活动强调测试与开发同步进行。我建议复习模型时画在一张A4纸上自己动手画几遍不要只看书上的图。考试如果出画图题你亲手画过就跟背过的完全不一样能直接默画出来。如果只出简答题问各模型的特点就说清楚每一个模型的核心思想、优缺点以及它与其他模型的关键区别。H模型在教材里相对较少考但它的核心思想是测试的独立性和灵活性了解概念即可。2.3 测试级别与测试类型别再傻傻分不清楚测试级别是从开发阶段维度划分的包括单元测试、集成测试、系统测试、验收测试。测试类型是从测试目的和属性维度划分的包括功能测试、性能测试、兼容性测试、安全性测试、易用性测试、可靠性测试等。这两套体系是交叉关系考试经常会出配对题或者判断题比如“回归测试属于功能测试吗”这种。最容易混淆的是系统测试和验收测试。系统测试是在完整、集成的系统上进行的测试主要验证系统是否符合规格说明中对功能和性能的要求验收测试则是用户或客户参与的决定是否接受系统的测试。打个比方系统测试像质检部门在出厂前检查产品是否合格验收测试像客户收货后验货决定是否签收。这样区分着记就不容易搞混了。回归测试是一个特殊的存在它不属于某个特定的测试级别。它的含义是当软件发生修改后重新执行之前通过的测试用例以确认修改没有引入新的缺陷。在敏捷开发里回归测试几乎每个迭代都要做考试经常把回归测试跟缺陷修改、配置管理放一起出题。2.4 白盒测试中的六种覆盖标准对比白盒测试是和黑盒测试相对的另一大分支。黑盒测试不看内部结构只验证输入输出白盒测试则是把程序看成透明的需要分析逻辑结构和执行路径。期末考试的画路径题一般会给出一个简化版的程序流程图或者伪代码让你画出控制流图然后计算不同覆盖标准下的测试用例数量。六个覆盖标准的覆盖能力从弱到强排序是语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。语句覆盖要求每个可执行语句至少执行一次判定覆盖要求每个判定的真分支和假分支都至少执行一次条件覆盖要求每个判定中的每个条件的不同取值至少出现一次判定/条件覆盖是前两者的结合条件组合覆盖要求每个判定中所有条件取值的组合至少出现一次路径覆盖要求程序中所有可能的路径都至少执行一次。覆盖标准覆盖对象强弱程度语句覆盖每个语句最弱判定覆盖每个判定的真假分支较弱条件覆盖每个条件的取值较弱判定/条件覆盖分支与条件取值中等条件组合覆盖条件的所有取值组合较强路径覆盖所有执行路径最强这里有一个高频易错点很多人以为条件组合覆盖比路径覆盖更强其实不对。条件组合覆盖关注的是判定内部条件的组合情况而路径覆盖关注的是从程序入口到出口的完整执行路径即使在某个判定路径覆盖无法保证覆盖所有条件组合条件组合覆盖也无法保证覆盖所有路径。考试喜欢出“某覆盖标准是否能发现某类缺陷”这类题抓住“覆盖标准越强不一定代表测试效果越好还需要考虑成本”这个核心就不会跑偏。3. 重点中的重点测试用例设计方法的实战掌握3.1 等价类划分从需求到有效/无效类的完整思路等价类划分是黑盒测试最重要、最基础的方法也是期末设计题里出现频率最高的。核心思想是把输入条件划分成若干等价类认为同一等价类中的不同输入对程序来说具有相同的处理方式因此只需要从每个等价类中选取少量代表数据即可。划分等价类的题目通常给一个输入规格说明比如“手机号码由11位数字组成必须以1开头”。做题步骤是第一步找输入条件。第二步每个输入条件都划分有效等价类和无效等价类注意一个条件可能对应多个有效或多个无效等价类。第三步从每个等价类中选取一个代表值。第四步设计测试用例每个用例覆盖尽可能多的有效等价类而每个无效等价类要单独设计用例去覆盖。第三步和第四步是很多人丢分的地方。覆盖有效等价类的用例可以让一个用例同时覆盖多个有效类这是为了提高效率但无效等价类必须一个用例只覆盖一个无效类因为程序在遇到第一个错误输入时往往会报错并终止后续输入如果在一个用例里放两个无效输入你无法确定是哪个输入触发的错误测试结果就不好判定了。这个原则叫“一条用例覆盖一个无效等价类”期末答设计题的时候一定要写清楚。举个具体例子假设某系统要求输入一个年龄字段输入范围为1到150之间的整数。有效等价类是“1到150之间的整数”无效等价类有三个“小于1的数”、“大于150的数”、“非数字字符”。测试用例可以设计成一个有效用例输入50三个无效用例分别输入0、200、abc。有同学会问边界值不是还要测1和150吗等价类划分和边界值分析是两套独立的方法虽然它们可以结合使用但考试要求用哪种方法就按哪种方法的规则来不要混着答。3.2 边界值分析为什么考试总爱出边界题边界值分析的经典应用场景是把等价类划分之后在每个等价类的边界值及边界附近的取值上设计测试用例。程序员最容易在边界处出错比如循环条件里用了大于而不是大于等于数组下标越界等等所以边界值分析被认为是一种性价比非常高的测试方法。边界值分析的上点、离点、内点是很多教材强调的概念但不同教材叫法略有不同。你可以这样理解上点就是边界上的值离点就是距离边界最近的那个值内点就是边界内中间的值。比如输入条件是1到100那么上点是1和100离点是0和101如果按最靠近边界的侧外取值算内点是50。不同学校可能对取几个点、怎么取离点有不同规则考前最好跟老师或者同学确认一下避免答题时因为取值个数不符合要求被扣分。我自己的复习方法是把等价类划分和边界值分析放在一起练因为期末设计题经常把两个方法合并成一道题先划分等价类再用边界值选取测试数据。这类题的答题要点是先把等价类表格写出来再单独列一栏写边界值结构清晰的分步作答很难扣分。别一上来就写测试用例让阅卷老师找你的思考过程这样反而容易被扣分。3.3 判定表与因果图多条件组合场景的破解法当程序的决策依赖多个条件以及它们的组合时用等价类和边界值就不太够用了。这个时候要用判定表或者因果图。判定表在期末考试中的出题概率很高尤其是带多个条件和多个动作的那种题目。判定表的结构包括条件桩、动作桩、条件项和动作项四部分。做判定表的步骤是列出所有条件桩和动作桩计算规则数量如果是n个条件每条条件取真/假两个值则规则数为2的n次方填入条件项的组合然后针对每一列组合确定对应的动作项。一个典型的用例是某系统判断是否给用户打折条件是会员等级是否为VIP、消费金额是否超过500元动作是打折和不打折这两条件就有4条规则。因果图是判定表的图形化表达画起来比较麻烦考试时如果题目明确要求画因果图建议先把因果图的基本符号和中途节点关系搞清楚如果题目只要求设计测试用例那直接用判定表法来推导其实更快、更稳。因果图中有几种基本关系需要掌握恒等、非、或、与标注了约束条件的中间节点是考试难点。很多人做判定表会漏掉“不可能组合”。如果题目给的条件之间存在逻辑上的互斥比如登录状态和游客状态不可能同时为真这种情况要在判定表的条件项中用“-”表示不可能并在动作项中不做动作。这个细节特别能反映你是否真正理解了判定表法而不是只会机械套模板阅卷老师一般会特意关注这一点。3.4 场景法从用户操作路径反推测试用例场景法是从用户的角度按照事件的触发顺序和活动流程来设计测试用例。很多教材把场景法放在UML用例图之后讲解期末考题的风格通常是一个具体的业务场景比如购物车结算流程、ATM取款流程、订票系统流程让你根据基本流和备选流设计测试用例。用场景法设计用例的步骤第一步理解业务逻辑搞清楚什么是最常见的正常流程基本流什么是异常或者分支流程备选流。第二步画流程路径图把所有场景列出来。第三步为每个场景设计一组测试用例覆盖该场景所有经过的步骤。以网上购物结算为例基本流是“用户登录→购物车→生成订单→支付→完成”备选流可能包括“用户未登录直接结算→跳转登录页”“余额不足→提示充值”“支付超时→订单取消”“库存不足→提示修改数量”等。列出所有场景之后每个场景对应一个或多个测试用例。考试时一定要先在草稿纸上把流程路径画出来再写测试用例因为场景法考察的核心是你对“流程覆盖”的把握如果场景列举不全测试用例再具体也没用。我见过很多同学在场景法题目上只写了正常情况和一种异常情况这远远不够。场景法的核心要求是覆盖所有基本流和备选流的组合备选流又可以分为简单备选流和从备选流回到基本流的重新加入备选流一定要把题目条件中的每个分支都考虑进去。4. 题型拆解经典考题怎么答才能拿高分4.1 名词解释与选择题的速记技巧客观题在软件测试考试中一般占比30%到50%是拿分的基本盘。名词解释和选择题考察的是概念记忆的准确性。有些同学复习时只看大标题比如知道“等价类划分”是什么但考试问“什么是测试用例的预期结果”就抓瞎了这就是复习时没有把关键术语的准确表述和区别记下来。我的经验是复习概念时把每章的关键术语列成一张表每个术语的后面用一两句话写下标准定义。考试看的是关键词是否准确所以概括定义的时候要保留核心词。比如测试用例的定义必须包括输入数据、执行步骤、预期结果三个要素少了任何一个都算不完整。选择题的陷阱基本集中在“易混淆概念”和“细节要素”两个方向。比如白盒测试和黑盒测试的对应关系、单元测试和集成测试的先后顺序、缺陷严重程度和优先级的区别、回归测试和冒烟测试的目的差异。你在复习的时候每次看到一对容易混淆的概念就尝试自己在旁边写一句对比总结这个转换过程本身就是高效的记忆方式。考前一周反复翻这些对比笔记比整本教材来回看效率高得多。4.2 大题测试用例设计题的答题模板测试用例设计题通常给一个需求描述让你用指定的方法设计测试用例分数一般在15到25分之间。这种题型有成熟的答题模板你只要按步骤规范化作答就能拿大部分分数。我的答题模板分四步第一步提取输入条件。把题目中的每条输入规格用列表或表格列出来。这一步千万别偷懒条件提取不全是后面全部错误的总根源。第二步划分等价类。用标准表格列出“输入条件/有效等价类/无效等价类”。第三步使用边界值分析补充测试数据。第四步设计测试用例表表头统一是“用例编号/输入数据/执行步骤/预期结果/覆盖等价类(或边界值)”。最后在表格下面加一行说明“采用每条测试用例尽可能覆盖多个有效等价类每个无效等价类单独设计用例的方式”。这样阅卷老师一眼就能看出你掌握了方法论。做这类题最忌讳的就是只写输入和输出不写预期结果。在考试中预期结果占的分数不低。你辛辛苦苦分析了输入条件如果在预期结果栏空白就会被扣掉一大截分。还有就是在设计覆盖无效等价类的用例时忘了要“单独设计”导致两个无效数据出现在同一个用例里这也会让阅卷老师判定为不熟悉方法论进而影响整道题的评判。4.3 分析题缺陷管理与测试报告题目的切入点综合分析题往往给你一个实际场景要求你判断缺陷的严重级别与优先级、设计缺陷报告内容或者分析测试流程中的问题并给出改进建议。这种题目光背定义不够还要能结合场景做判断。缺陷的严重程度一般分四级致命、严重、一般、轻微优先级一般也分四级立即解决、优先解决、正常解决、可推迟解决。考试经常让你判断“某个缺陷的严重程度和优先级各是多少”比如“系统崩溃导致数据丢失”肯定是致命、立即解决“界面按钮文字错别字”则是一般或轻微、正常解决。这里要注意的是严重程度和优先级并不总是一一对应的有些缺陷严重程度很高但出现频率极低优先级反而可以放低有些缺陷严重程度不高但用户肯定会遇到优先级就需要上调。测试报告也是常见简答/论述题。测试报告通常包含测试概述、测试范围、测试环境、测试执行情况包括用例数、执行数、通过率、缺陷统计分析、结论和建议五到六个部分。如果是给你一份测试数据让你编写报告摘要就按这个结构填充数值并结合数据给出测试结论比如“功能测试通过率达95%建议修复剩余严重缺陷后安排验收测试”。分析题的高分要点在于不要只写结论要把“依据”写出来。比如判断缺陷严重级别你要引用用户操作流程、受影响功能范围、数据安全问题等具体理由这样阅卷老师才知道你不是蒙的而是真的理解了这个缺陷对业务的实际影响。5. 考前一周冲刺从复习到实战的排坑指南5.1 实操过的复习节奏与资料取舍复习软件测试的节奏我建议按“322”来做前三天过知识点中间两天做题目练习最后两天专门整理错题和背诵高频简答题。前三天如果时间有限可以优先保证第2章和第3章的知识点因为它们是考试的大头。做题阶段至少把最近两年的期末真题或者课后习题完整做一遍尤其要动手写设计题不要只在脑子里想思路真正落笔才会暴露出你答题步骤不完整的问题。资料取舍上教材永远是最核心的但不用从头到尾精读。重点读绪论、测试生命周期、测试设计技术、测试管理这几章。课件和老师划的重点比教材的优先级更高老师的课件如果有一句话反复出现、有一页内容停留时间明显更长那基本就是考点。课外资料可以在练习阶段用来增加题目量比如网络上能找到的软件测试面试题和八股文里面有很多概念辨析的内容期末复习阶段拿来当题库用非常适合。还有一个训练方式是把你找到的每个重要知识点用“自己的话”重新讲一遍。比如你尝试用一个生活中的例子来说明“判定覆盖”和“条件覆盖”的区别。能讲明白说明你真懂了讲得磕磕绊绊就说明这个知识点还需要再回头看书。这个“费曼技巧”在软件测试这种概念很多的科目上特别管用因为你考试写简答题的时候本质上就是在“讲给别人听”。5.2 考场答题的时间分配与常见丢分点软件测试期末考试的题量通常不轻大题里又要写测试用例表格又要画流程图时间很容易不够用。我给自己定的时间分配是客观题占考试总时长的30%简答题占25%设计题占35%分析题占10%。设计题是分值高、书写量大、步骤多一定不要在前面耽误太久否则后面的分析题可能连写结论的时间都没有。很多同学丢分不是因为不会而是因为书写太乱、表格不清晰。测试用例设计题本来可以靠清晰的表格拿到步骤分但一旦格式混乱阅卷老师找不到你的关键答案就很容易给低分。写测试用例表的时候格子要拉整齐、文字要简洁不要用一整段话来描述一个输入数据直接写“”或“数字”这种简写即可。答题的时候准备一张草稿纸特别重要。画控制流图、判定表、场景路径先在草稿纸上推导确认没问题再誊写到答题卷上。有同学直接在答题纸上边画边改画错了就乱涂乱画最后卷面像草稿纸一样非常影响阅卷体验。宁可多花五分钟在草稿纸上把图理清楚也不要因为涂改痕迹多而丢失印象分。5.3 软件测试面试与期末复习的衔接你可能觉得期末复习只是为了应付考试考完就忘。但从长期看软件测试这门课的知识架构和面试高度重合。很多测试岗位的面试题从软件测试基础知识的覆盖面上来看其实就是期末复习的延伸。比如“你如何设计测试用例”“黑盒和白盒的区别”“缺陷报告包含哪些内容”这些问题面试官问的跟期末考试的简答题几乎是同一套体系。如果把期末复习的标准提高一点用面试的深度来要求自己收益会不止于这门课的成绩。比如复习缺陷管理时不要只背缺陷生命周期的那几个状态新建、已分配、已修复、已验证、已关闭想一想你在实际项目中遇到一个复现不出来的缺陷要怎么处理面试时被问到类似的情境题就能从容应对。考试结束后也可以保留自己的复习笔记。软件测试行业是很看重知识沉淀的你期末复习整理的等价类划分模板、测试用例设计模板、概念对比表将来进公司写测试用例、做测试计划时完全可以复用。从这个角度来说期末复习不是一门课的终点反而是建立自己测试知识框架的起点。最后再分享一个我自己的小习惯考前我在手机备忘录里建了一个“测试速记”清单把容易遗忘的模型图、覆盖标准排序、缺陷级别定义这些内容都写了进去。等公交、排队打饭的间隙就翻一翻利用碎片时间不断强化记忆。这门课的知识点不算难但胜在量大、面广只要你在考前把这些细节反复过几轮形成“概念清晰、方法熟练、模板在手”的状态应对期末考试就没什么好担心的了。
返回列表