编写有效的测试用例是任何测试人员在软件测试生命周期 (STLC) 中完成的重要操作之一。测试用例是您研究任何软件产品的基础。但是,编写有效的测试用例是一种可以通过深入研究应用程序来学习的技术,其中包括开发测试用例,最重要的是经验。识别、定义和分析需求将是编写有效测试用例的方法。
在本文中,我概述了编写有效测试用例的一些技巧。然而,在我们深入探讨编写一流测试用例的课程之前,让我们从测试用例的重要性开始。
什么是测试用例?
测试用例是一组用于评估软件产品并确定其是否符合业务需求的条件。构建不良的测试用例会导致严重的缺陷泄漏。这可能既费时又费钱。因此,编写有效的测试用例对于任何软件项目的成功都是至关重要的。
编写测试用例时使用的基本术语
以下是用于定义测试用例的基本术语。
测试用例 ID | 案例_01,TC_ |
测试用例描述 | 测试用例描述 |
类型(正/负) | 正面测试用例/负面测试用例 |
设想 | 该案例正在针对哪种情况进行测试 |
测试数据 | 此测试用例采用了哪些输入数据 |
前提条件 | 运行此测试用例之前的条件, |
此测试用例的执行操作/步骤 | 执行此测试用例的步骤 |
预期结果 | 基于上面提到的几点,这里可以提到预期的结果。 |
实际结果 | 这将在测试用例的实际执行期间填充。 |
注释 | 任何类型的观察都会在这里提到 |
编写有效测试用例的最佳实践
易于执行的测试用例被认为是有效的测试用例。他们通过减少时间和精力来加快测试过程。遵循这 17 个最佳实践将帮助我们实现目标。
1. 坚持范围和规范
确定测试的范围和目的。早些时候,我曾经假设测试用例的预期功能应该是怎样的。通过一个艰难的教训,我意识到深入了解 SRS(软件需求规范)文档总是更好。我目睹了人们变得更加直觉而不是遵循逻辑方法,有时这种直觉会导致假设。
在构建测试用例时,对特性和功能的假设通常会使您偏离客户最初需要的实际需求。这将影响被测产品和客户与组织的关系。
2. 注意产品更新
遵循软件需求规范 (SRS) 至关重要。如果软件版本过时,不强制坚持SRS。没有人愿意测试已弃用的功能。
我们生活在一个以敏捷方法为主的世界中,产品开发通过快车道行驶。有时,软件需求规范 (SRS) 文档无人看管,以应对短时间窗口或在部署即时错误修复之后。最好更新 SRS 的主要和次要更改。
3. 写点描述
测试用例描述对于传达错误的根本原因至关重要,并且它必须始终包含重现的步骤。当我开始我的测试生涯时,我没有意识到写具体细节和写华丽之间的差距很小。我曾经在现场写故事来描述测试用例。我认为尽可能多地填写描述会令人印象深刻。
然而,我错了!它不仅浪费了我的时间,也浪费了开发人员的时间!我意识到保持描述清晰、简单和信息丰富是多么重要。没有人喜欢读长篇小说。就在点上。
在编写有效的测试用例时,只应包括必要和有效的步骤。如果单个测试用例有太多的测试步骤需要完成,则可能会失去测试用例的重点和目标。因此,每个测试用例应该只覆盖一个预期结果,而不是试图覆盖几个预期结果。如果执行测试用例需要相同的操作,请在先决条件步骤中包含测试用例 ID。
4. 设身处地为客户着想
从最终用户的角度创建一个测试用例。通常情况下,愤怒的客户会向客户支持部门发起攻击,解释说该软件没有提供符合他期望的预期功能。
作为软件测试人员,您应该能够将自己与客户联系起来,以便从客户的角度向您的开发团队解释问题。我的经理过去常常引用“客户永远是正确的”。
在编写测试场景时,请牢记客户或最终用户的需求,因为最终设计的软件或产品是为客户服务的。记录可用性测试和可访问性测试。
5. 用户角色
用户角色是最终用户的虚构表示,它有助于描述来自不同工作角色的人如何操作您的软件。如果您不熟悉用户角色,您一定想知道为什么需要虚构角色来帮助您编写有效的测试用例。要编写有效的测试用例,请创建不同的用户角色,每个用户角色代表目标受众及其专业的社区,并专注于涵盖各个方面的案例。
6. 在写下执行步骤时要细化
编写有效测试用例的步骤应该详细且切中要害,以便新的测试人员可以简单地执行它们。测试用例的目的和范围应在测试用例中明确说明。测试用例本身应该是不言自明的。所有先决条件测试数据都应在测试用例本身和具体步骤中进行描述。同行成员应审查测试用例。
在提到执行测试用例的步骤时,最好避免使用复合语句。相反,编写一个小而具体的分步指南作为测试用例的演练。
7. 掌控你的测试用例
我观察到在一个大型项目中工作的软件测试人员池中,测试用例是如何在没有适当所有权的情况下处理的。测试用例应该适当地分布在这样的场景中。每个软件测试人员都应该只对分配给他的测试用例负责。
我对“产品所有权”的定义涵盖了产品的整个生命周期。对于软件测试人员,在执行测试用例后,我们应该监控它在每次更新时在用户手中的运行情况。查看性能统计数据并向您的团队提供有关如何改善用户体验的积极想法。
8.积极使用测试用例管理工具
测试用例管理工具被认为是管理稳定发布周期所必需的。它们有助于提高透明度,每个人都知道谁在做什么。它们还可以用于跟踪与错误修复等相关的截止日期。
然而,员工往往无法积极有效地使用这些工具。为了编写有效的测试用例,您必须学习各自测试用例管理工具的实际使用。
电子表格可用于处理小型团队的测试用例。随着您的团队扩展和您对应用程序的迭代,它们很快就会成为主要负担。其他工具,例如 JIRA,可以设置为管理测试用例,但它们缺乏特定于测试的功能。
编写有效测试用例的另一点是跟踪、维护和自动化测试用例。您最终需要寻找专用的测试用例管理应用程序。
9. 监控所有测试用例
在测试执行中,测试监控是评估测试活动和努力以跟踪当前测试进度并查找和跟踪测试指标的过程。此外,根据测试指标估计未来的行动,并向相关团队和利益相关者提供有关当前测试过程的反馈。
当从远程软件测试员那里工作或者当太多的软件测试员在做一个类似的项目时,两个软件测试员碰到一个类似的测试用例是很常见的。因此,监控所有测试用例对于编写有效的测试用例非常重要。另外,请记住删除不相关和重复的测试用例。
10. 争取 100% 的测试覆盖率
美妙的时刻终于到来了,您已经创建了测试,屏幕显示“100% 覆盖率”。你满意;所有的测试都通过了,你的代码再也不会有缺陷了。然而,这就是 100%测试覆盖率的真正含义吗?
100% 的测试覆盖率意味着您已经创建了足够的测试来覆盖程序中的每一行代码。没有更多或更少。如果您的测试结构良好,您应该能够预测某些输入将做什么以产生某些输出。
测试覆盖率是保持任何软件稳健性的一个重要方面。在编写有效的测试用例时,以 100% 的测试覆盖率为目标至关重要。花点时间规划您的测试用例,以涵盖 SRS 文档中指定的每个组件和功能。
Traceability Matrix 可用于验证没有未测试的功能或条件,从而实现 100% 的覆盖率。需求跟踪矩阵是测试用例和需求之间的映射,它将跟踪任何未测试的功能或条件。
11.注意依赖测试用例
当一个测试用例的行为或结果依赖于另一个测试用例的执行或结果时,这称为测试用例依赖。
有时我在随机场景中发现了一个错误,当我尝试复制它时,事情并没有按我的计划发生。那时我意识到即使是测试用例也可能依赖于其他测试用例。
例如,您可能有一个测试用例 X,它只有在依次执行测试用例 Y 和测试用例 Z 之后才会执行。当两个模块不互斥时,通常会观察到这种情况。因此,除非您在找出依赖的测试用例后起草一个场景,否则一个错误可能不会重现。
12.成为批评者
有时您需要采取与其他人不同的方法来发现软件的未知数。未知是产品团队在最终用户报告之前对它们视而不见的场景。
在我们完成了一个场景的所有测试用例之后,我们应该作为测试人员而不是作为测试用例编写者再次检查它们。为了编写有效的测试用例,您必须以不同的方式做事并以不同的方式思考,特别是如果您的目标是探索性测试。
13. 意图明确
意图很重要。作为人类,我们很少在没有计划的情况下采取行动!实现验收标准对于编写有效的测试用例是必不可少的。验收标准是验证软件是否按最终用户预期工作的条件。
请记住,验收标准可以帮助您判断最终用户的意图,而不是步骤。例如,“管理员应该能够邀请或踢出在组织下从事同一项目的团队”而不是“管理员应该访问组织设置下的团队页面,然后单击邀请将人员添加到团队或单击删除以将人们踢出。”
14. 依靠自动化
我作为软件测试人员的经验告诉我,软件测试是一个严格且永无止境的过程。敏捷方法的渐进增强和采用的兴起使回归测试成为我们许多人的紧急情况和头痛的问题。
通过结合有效的测试自动化策略,您可以确保应用程序没有错误。据统计,42% 的公司认为自动化测试是其质量保证流程的重要组成部分。因此,如果您正在手动测试应用程序,您可以考虑从手动测试切换到自动化测试。
然而,自动化测试的引入已经改变了回归测试的游戏规则。自动化可以提高软件测试人员的生产力和带宽,使他们能够思考编写有效测试用例的更好方法,而不是每天都被相同的测试用例所困。
15. 最好的测试用例文档
作为一名软件测试人员,您无疑会同意我的观点,即创建完美的测试文档是一项艰巨的工作。不要一时冲动就开始编写测试文档。在开始文档过程之前,您必须了解编写有效测试用例的目的。
测试应始终简单明了。它们的编写方式应使测试人员可以按照每个测试中概述的说明轻松完成测试。
这里有一些提示可以帮助您在测试文档方面脱颖而出。
您的测试文档的结构是否令人满意?不要忘记解决负面测试用例。有原子测试程序。应优先考虑测试。顺序很重要。在文档中保留两张单独的表格:“Bugs”和“Summary”。
这很常见,我相信你也会遇到这样的场景,一旦测试用例文档收到客户的签字,然后所有团队都会关注该文档。没有人会尝试开箱即用地编写有效的测试用例,因为我们认为文档就是我们所需要的!因此,覆盖测试文档中的所有内容非常重要。
16. 优先考虑你的测试用例
测试用例的优先级排序是按重要性顺序排列测试用例的过程。对测试用例进行优先排序有助于满足软件测试中的两个主要限制,即时间和预算,以便尽可能快地提高故障检测率。
当我作为软件测试员开始我的职业生涯时,我很笨拙,压力很大,而且业务优先级的概念对我来说是陌生的。我过去常常以一种杂乱无章的方式跳入测试场景,而没有意识到优先级在测试用例中的作用。
一个发布周期,带宽不足,随着发布日期的敲门声,我匆匆忙忙地处理了许多高优先级的测试用例。发布后,当客户报告失败时,我们承诺回滚。那是一个惨痛的教训!我意识到在编写有效的测试用例时同时确定测试用例的优先级是多么重要。
17. 跨浏览器测试可以帮助减少中断
为了编写有效的测试用例,重要的是要注意浏览器的差异。有一次,我们的办公室突然出现中断,我们的支付页面以一种非常慌张的方式出现在最终用户面前。我们的开发人员完成了从清除缓存到重新启动服务器的所有工作。
然而,这个问题仍然存在,导致了恐慌的局面。然后我们意识到面临不便的用户有一个共同点。他们要么使用过时的 IE 浏览器,要么使用特定移动供应商的 android。就在那时,我们意识到我们的网站与不同的浏览器和设备不兼容。从那时起,我们暗示在我们的每个发布周期中执行跨浏览器测试的做法,再也不会面对这样的尴尬情况。
编写有效测试用例的加分项
1. 定义测试的范围和目的:编写有效测试用例的第一步是确定可测试的需求。您必须了解测试目标和特征。
2. 领域专业知识:在开发测试用例之前,您需要具备领域知识,这是任何软件程序的基础,因为业务规则因领域而异,并且会对业务功能产生重大影响。这可能会导致业务损失。因此,避免领域标准之间的冲突;作为测试人员,您必须在开发测试用例之前具备这些知识。
3. 应避免假设:在创建测试用例时,不要对软件应用程序的功能和特性做出假设。它可能会导致客户的规格与产品之间的脱节,从而影响业务。创建测试用例时,不要对软件应用程序的功能和特性做出假设。请遵循文档中的规范。
4.寻找非功能性需求:非功能性需求与功能性需求一样重要。实际识别额外的非功能测试需求,例如硬件需求、操作系统和要解决的安全特性,以及测试数据准备,例如识别额外的测试需求,例如测试数据准备。
5. 建立测试用例框架:测试用例框架可以根据系统的需要进行裁剪。性能、兼容性、UI界面、容错性、各种类别的性能都应该包含在测试用例中。
6. 附加相关工件:有时,很难掌握测试步骤。在这种情况下,将工件或设计附加到特定的测试阶段将有助于理解流程。它将有助于跟踪我们的应用程序在发布或部署期间的巨大变化。
7. 正反测试用例:在编写测试用例时,等价类划分、边值分析、正常和异常情况是应该应用的一些测试用例设计方法。您还应该考虑负面测试、失败情况和错误处理,因为这些可能会帮助您找到代码中最有可能出现的错误。不要对功能做任何假设;相反,根据需求规范文档编写测试用例。
结论
编写包含所有必要细节的有效测试场景是一项出色的工作。只要您记得考虑最终用户的观点,应用程序了解端到端流程,并且遵循我在本文中描述的编写测试用例的最佳实践,您就可以了。
那都是从我这边来的。我希望我编写有效测试用例的课程对你们中的许多人来说是相关的或知识渊博的。
常见问题 (FAQ)
编写有效测试用例的最佳实践是什么?
保持简单和基本。创建可重用的测试场景。保持测试用例 ID 分开。同行评审至关重要。在编写有效的测试用例时,应考虑最终用户或既定要求。描述预期的结果和假设。
一个好的测试用例应该包括什么?
测试名称、测试编号、参考、测试设置、目标、先决条件、测试步骤、结果
什么是编写测试用例?
测试用例是为确保应用程序的特定特性或功能正常工作而执行的一系列操作。测试用例是为给定的测试场景创建的一组测试步骤、测试数据、预处理和后处理,以验证任何需求。
卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价
部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲 电话:4006070568