测试用例中的细节

funtester funtester     2023-04-24     569

关键词:

编写测试用例是在实际测试执行开始之前进行的软件测试活动的重要组成部分。因此,在编写测试用例时必须头脑清晰地理解需求。测试执行阶段的顺利程度主要取决于测试用例的编写质量,还取决于对需求的理解程度。理论上来讲应避免在测试用例中放入不必要或不需要的细节,但放入必需和重要的细节反而又会起着重要的作用。

具有所需详细细节的测试用例优点:

良好的测试用例可以减少对测试人员的依赖

想象一下这样的情况,编写测试用例的人在完整的测试执行阶段或部分测试执行阶段都不可用。在这种情况下,如果测试用例本质上是独立的,并且包含成功完成测试执行所需的所有相关测试详细信息,那么很容易让其他测试人员参与执行活动。另外,当其他团队成员直接参与执行阶段时,可以帮助您编写良好的测试用例,从而减少对主测试人员的依赖。

查看编写良好的测试用例要容易得多

在理想的测试环境中,所有测试用例都必须由利益相关者进行评审,以防止最终出现测试用例遗漏的情况。如果用简单的语言编写测试用例而不跳过任何步骤,那么它们将易于理解并提供反馈。

详细的测试用例有助于开发重现缺陷

如果一个测试用例执行失败并引发缺陷,则将编写良好的测试用例与缺陷ID链接也可以帮助开发人员重现缺陷并了解问题所在。这将缩短解决BUG的时间,从而加快总体测试速度。

良好的测试用例可以作为培训资源

如果没有足够的培训材料来培训新的团队成员,并使他们更快地入职,那么具有适当详细信息的测试用例将有助于新测试人员轻松浏览应用程序并获得所需的资料。这再次减轻了高级测试人员的负担,可以培训新成员接受有关正在测试的应用程序的次要主题的培训。

良好的测试用例中应包括的相关细节:

  • 精确的测试用例名称–测试用例名称不应太长,但应简要定义和说明测试用例的用途
  • 测试ID –应该为测试用例分配唯一的测试ID
  • 先决条件–如果在开始执行测试用例之前需要满足任何先决条件,则应提及
  • 测试步骤–应编写清晰明了的测试步骤,因为这些步骤类似于测试人员需要遵循的命令。对于需要做什么,应该清楚地遵循。
  • 测试数据–如果有任何特定的测试数据应作为应用程序的输入提供。它可能用于边界值分析,也可能用于测试某些计算是否由应用程序正确完成。
  • 预期结果–完成测试步骤并提供所需的测试数据后,应清楚说明应用程序的期望值或应用程序应如何响应。
  • 实际结果–实际结果是执行测试步骤时观察到的行为。应该对此进行记录并与预期结果进行比较。
  • 最终结果–根据实际结果是否与预期结果相符,应将测试步骤标记为通过/失败
  • 缺陷ID –如果测试步骤失败,则应针对该缺陷提出缺陷,并在测试步骤中注明缺陷ID。这对跟踪缺陷很有帮助。
  • 注释–如果在特定测试步骤中有任何后续项目可用,则可以输入注释
  • 需求ID –在适用的情况下,应在测试步骤/案例中放置需求ID,这也有助于确保测试案例涵盖了所有需求。

更有利于自动化

如果需要将应用程序的某些或大部分部分自动化,则带有详细细节的测试用例将非常有用。自动化团队通常在组织中的不同测试团队之间共享。因此,与手动系统测试员不同,自动化测试员对被测试的应用程序没有深入的了解。因此,需要对它们进行指导,或者必须将足够的详细信息传递给它们,以便他们能够成功创建自动化脚本。编写良好的测试用例有助于指导自动化测试人员,并节省大量时间和沟通成本。

测试用例可作为证据

测试用例不仅在测试执行阶段被编写为指导,而且具有长期服务的目的。最重要的目的之一是充当测试人员进行的测试的证据。如果在生产环境或更高的测试环境中遇到过缺陷,它还有助于追溯缺陷。测试人员还可以通过找出导致产品缺陷的真正原因。

虽然写下具有适当数量的详细信息的测试用例具有许多长期利益,但是在某些情况下,在测试用例中放置过多的详细信息可能会产生不利影响,例如:

时间紧迫的情况

在实际测试时,并非所有情况都是理想的。因此,可能存在这样的情况,即测试人员没有足够的时间来记录粒度的测试用例。可能是因为时间紧迫。在这种情况下,一旦理解了需求,测试人员就必须立即执行。因为只有在执行过程中才会发现缺陷。

临时或一次性测试

如果必须以最少的预算进行一次性测试或临时测试,则主要重点应放在测试执行上。

重要的是不要失去对不必要细节的关注

具有不必要细节的测试用例往往失去对测试用例主要目标的关注。无论在测试用例中输入的详细信息如何,都应始终与测试用例的主要目标相关联。

总结

编写测试用例的行为应该是一个平衡的活动,并且应该牢记重要点,例如可以写下测试用例的时间,需要重用测试用例,利益相关者的期望以及其他可用文档与项目等。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

技术类文章精选

非技术文章精选

java示例代码_比较JUnit测试用例中的文件

java示例代码_比较JUnit测试用例中的文件 查看详情

如何模拟酶测试用例中的拖放?

】如何模拟酶测试用例中的拖放?【英文标题】:HowdoIsimulatedraganddropinenzymetestcase?【发布时间】:2018-04-2615:23:28【问题描述】:我正在尝试创建一个测试来模拟将图像拖动到div中。我对如何实现这一点一无所知。非常感谢任何帮... 查看详情

测试用例中的分段错误

】测试用例中的分段错误【英文标题】:Segmentationfaultintestcases【发布时间】:2016-01-2609:33:17【问题描述】:所以,问题如下:给定任何整数数组(相当大),返回数组中任意两个元素之间的最大差异,使得较大的元素出现在比... 查看详情

Xcode UI 测试用例中的延迟/等待

】XcodeUI测试用例中的延迟/等待【英文标题】:Delay/WaitinatestcaseofXcodeUItesting【发布时间】:2015-09-1920:50:57【问题描述】:我正在尝试使用Xcode7beta2中提供的新UI测试编写一个测试用例。该应用程序有一个登录屏幕,它会调用服务... 查看详情

plpgsql 测试用例中的 SELECT 查询未返回数组

】plpgsql测试用例中的SELECT查询未返回数组【英文标题】:ArraynotbeingreturnedbySELECTqueryinsideplpgsqltestcase【发布时间】:2015-12-1006:04:48【问题描述】:我正在使用的SELECT查询:SELECTARRAY[table_name,pg_size_pretty(table_size)]FROM(SELECTtable_name,pg_t... 查看详情

使用 Java 反射访问测试用例中的受保护方法

】使用Java反射访问测试用例中的受保护方法【英文标题】:AccessingprotectedmethodintestcaseusingJavaReflection【发布时间】:2011-06-0713:03:07【问题描述】:我正在尝试使用Java反射获取和调用驻留在不同类和不同包中的受保护方法。包含... 查看详情

Google Kickstart 2018,测试用例中的回合错误

】GoogleKickstart2018,测试用例中的回合错误【英文标题】:GoogleKickstart2018,Rounderrorintestcase【发布时间】:2019-10-2004:39:37【问题描述】:我正在尝试解决GoogleKickstart2018第A轮中的ScrambledWords问题。我无法生成输入字符串。这是他们给... 查看详情

在代码中的 Chech 括号中的测试用例中得到错误的输出

】在代码中的Chech括号中的测试用例中得到错误的输出【英文标题】:GettingwrongoutputinatestcaseinChechbracketsincode【发布时间】:2020-08-0800:28:49【问题描述】:booleanMatch(charc)if(this.type==\'[\'&&c==\']\')returntrue;if(this.type==\'\'&&c=... 查看详情

如何解决 Jest 测试用例中的“TypeError: Cannot set property 'innerHTML' of null”?

】如何解决Jest测试用例中的“TypeError:Cannotsetproperty\\\'innerHTML\\\'ofnull”?【英文标题】:Howtosolve"TypeError:Cannotsetproperty\'innerHTML\'ofnull"inJesttestcase?如何解决Jest测试用例中的“TypeError:Cannotsetproperty\'innerHTML\'ofnull” 查看详情

java示例代码_获取传递给运行时的值。getRuntime。JUnit测试用例中的exit(value)

java示例代码_获取传递给运行时的值。getRuntime。JUnit测试用例中的exit(value) 查看详情

Spock:可以在测试用例中替换 setup() 中定义的交互吗?

】Spock:可以在测试用例中替换setup()中定义的交互吗?【英文标题】:Spock:cananinteractiondefinedinsetup()bereplacedinatestcase?【发布时间】:2014-04-0814:00:46【问题描述】:我很难理解Groovy单元测试中的Spock交互。我有以下几种:publicinterfa... 查看详情

未捕获的错误:useNavigate() 只能在赛普拉斯单元测试用例中的 <Router> 组件的上下文中使用

】未捕获的错误:useNavigate()只能在赛普拉斯单元测试用例中的<Router>组件的上下文中使用【英文标题】:UncaughtError:useNavigate()maybeusedonlyinthecontextofa<Router>componentincypressunittestcases【发布时间】:2021-12-2513:00:44【问题描述... 查看详情

Swift 包资源颜色在 CI 测试用例中返回为零。但是在本地测试用例中返回正常

】Swift包资源颜色在CI测试用例中返回为零。但是在本地测试用例中返回正常【英文标题】:SwiftPackageresourcecolorscomingbackasnilinCItestcases.Butreturnfineduringlocaltestcases【发布时间】:2020-12-1104:25:44【问题描述】:奇怪的是,这只发生在C... 查看详情

执行测试用例应注意啥?

当测试用例编写完成,并通过审核后,就进入到软件测试最主要的阶段,就是执行测试用例,进行软件测试。我们公司一直使用日事清进行软件测试,并取得了较好的效果。日事清用起来很方便的,网络版更简单,还能随意修改... 查看详情

Sysdate 的 H2 限制,因此无法在功能测试用例中使用

】Sysdate的H2限制,因此无法在功能测试用例中使用【英文标题】:H2limitationswithSysdateandhencecantuseinfunctionaltestcases【发布时间】:2021-11-2805:17:33【问题描述】:我正在使用SpringBoot和SpringDataJPA。在我的应用程序中,应用程序运行在O... 查看详情

如何在 iOS Xcode UI 测试用例中启动系统应用

】如何在iOSXcodeUI测试用例中启动系统应用【英文标题】:HowtolaunchsystemappsinaniOSXcodeUItestcase【发布时间】:2016-01-1521:33:57【问题描述】:我有一个应用程序,其主要目的是将数据输入HealthKit。我想编写一些XcodeUI测试来验证它是否... 查看详情

JUnit 测试用例中“失败”的实际用途是啥?

】JUnit测试用例中“失败”的实际用途是啥?【英文标题】:What\'stheactualuseof\'fail\'inJUnittestcase?JUnit测试用例中“失败”的实际用途是什么?【发布时间】:2011-04-2115:52:53【问题描述】:JUnit测试用例中“失败”的实际用途是什么... 查看详情

无法在测试用例中打开捆绑文件

】无法在测试用例中打开捆绑文件【英文标题】:Cannotopenbundlefileintestcase【发布时间】:2020-05-1918:17:40【问题描述】:我有一个读取.stringsdict文件的测试用例。导入XCTest@testable导入CheminDeLaVieSwift类TestChemin:XCTestCasefunctestCheminParDe... 查看详情