测试用例的管理

2020年发表于《测试技术与质量管理》

摘要

随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。而软件测试工作复杂度的直接体现,就是测试用例编写、维护、执行和管理,所以编写易读、易维护和易管理的测试用例可以有效的降低测试工作的复杂度。

本文主要系统的介绍了测试用例的几种管理方法,包括每种的特点,适用场景以及实例。帮助不同的项目和团队,根据自己的情况选择适合的测试用例编写和管理方法,从而降低测试工作的复杂度,提高测试工作的效率。

正文

在软件测试工作中,测试用例是其最为重要的基础。一个良好的测试用例可以帮助测试人员更容易阅读,理解,修改并管理它,从而提高测试工作的质量和效率。

要编写一个好的测试用例,首先需要对业务需求和验收条件(AC)进行深入的分析,并确定业务需求和验收条件的正确性和合理性。然后对其进行测试分析,并完成整体测试用例的设计和编写,其中包括功能测试用例,E2E测试用例,异常测试用例等等。

对于设计好的测试用例需要进行分类并管理,然后根据不同的分类进行分层测试。通常情况下可以将测试分为端到端测试(E2E Testing),功能测试(Functional Testing),集成测试(Integration Testing),单元测试(Unit Testing)等。根据这个分类方法,可以方便进行测试分层管理,就是某些测试用例放在端到端测试类型里面,而有些测试用例则放到集成测试类型里面。

而根据测试用途还可以将某些类型的测试分类成回归测试(Regression Testing),验收测试(Acceptance Testing), 健全测试(Sanity Testing)以及冒烟测试(Smoke Testing)等。由于一个测试用例可能既属于回归测试,又属于冒烟测试,所以这种情况下就需要一个良好的测试管理系统或者管理方法来对大量的分类后的测试用例进行管理。

编写和管理测试用例是测试用例工作中工作量最大,最为繁琐的部分。其质量的高低直接影响到测试工作是不是能高效和顺利的进行和完成。所以结合产品的类型和团队的情况,选择适合自己团队的用例编写和管理方式,从而事半功倍。

测试用例的管理

测试用例需要具有以下特性:易阅读,易维护,易执行,易管理。而难点也比较突出,其中包括语言的歧义性和多样性导致的不易阅读和理解;手动测试和自动化测试用例很难统一管理和统一执行。

当测试数量很大的时候,如果测试用例管理系统不易用,测试用例的复用性也不高,则会导致测试用例不易维护,从而会极大的增加了其管理成本。

测试用例管理是一项繁琐的工作,现在业界存在四种经典方法,分别是文件管理,系统管理,代码活文档和系统活文档。与编写用例一样,没有一种用例管理方法是银弹,适合所有不同的团队和不同的项目。所以了解它们的特点,再根据自己团队和项目的实际情况,选择适合的才是最佳实践。

方法一:使用如Excel,Word,Mindmap等文件管理

本方法是中小型项目中比较常见的测试用例管理方法。其优势是简单易用,而劣势是需要自己对测试用例模版进行定制,并且当测试用例过多的时候管理成本会急剧增加。其次对于本地文件模式,则很难让多人进行协作编写(Google Sheets这种在线文档没有这个问题)。下面是一个Excel实例。

[caption id="attachment_14653" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/1-how-to-manage-testcases.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/1-how-to-manage-testcases-768x575.png" alt="" width="700" height="524" class="size-medium_large wp-image-14653" /></a> Excel管理实例图[/caption]

方法二:使用itest,TestLink等系统管理

本方法一般是中大型项目中最为常用的管理方法。它的优势是管理系统提供了强大的管理和协作功能,比如协作编写用例,协作执行用例,测试步骤管理,截图管理,测试迭代管理以及丰富的测试用例和测试结果报表等。所以它有一定的学习曲线,并且基本上都是界面操作,相对比较繁琐,有些修改很难跟踪,比如测试步骤和测试数据的更改等。

其次这种系统一般需要一个独立服务器来部署和运行,如itest,TestLink等。下面三张图是itest最为典型的支持执行管理、用例管理和用例编排管理的界面。

[caption id="attachment_14654" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/2-how-to-manage-testcases.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/2-how-to-manage-testcases-768x435.png" alt="" width="700" height="396" class="size-medium_large wp-image-14654" /></a> itest 用例管理实例图1[/caption]

[caption id="attachment_14655" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/3-how-to-manage-testcases.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/3-how-to-manage-testcases-768x348.png" alt="" width="700" height="317" class="size-medium_large wp-image-14655" /></a> itest用例管理实例图2[/caption]

[caption id="attachment_14677" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/9-2-how-to-manage-testcases.jpeg"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/9-2-how-to-manage-testcases-768x428.jpeg" alt="" width="700" height="390" class="size-medium_large wp-image-14677" /></a> itest用例管理实例图3[/caption]

方法三:使用Cucumber,RF,SVN和GIT等代码活文档、自动化测试框架和代码版本工具

本方法适合于有足够软件技术工程实践的团队和个人,因为它需要使用到代码版本管理工具,集成开发环境(IDE),自动化测试框架,持续流水线等实践才能高效的编写,维护,执行,管理测试用例,测试日志和测试结果。

本方法的优势是可以同时管理自动化测试用例和手动测试用例,并且更容易跟踪测试用例和测试数据的更改。而劣势是需要测试工程师有足够的工程技术能力来实现。下面是用Cucumber写的一个Demo的截图,左边是集成开发环境中测试用例的管理文件,每个Feature文件就是一套测试用例。而右图是通过Jenkins生成的测试用例活文档(Test Case Living Document),通过它可以统一的展示出手动测试用例和自动化测试用例的测试结果。

[caption id="attachment_14656" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/4-how-to-manage-testcases.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/4-how-to-manage-testcases-768x286.png" alt="" width="700" height="261" class="size-medium_large wp-image-14656" /></a> Cucumber测试用例管理和活文档示例图[/caption]

方法四:使用系统活文档

本方法是将代码活文档和系统管理结合,通过测试管理系统编写和管理测试用例,然后会自动生成代码模式的测试用例。也可以只编写代码模式的测试用例,然后自动同步到测试管理文档中。自动化测试在持续集成流水线执行,通过流水线进行展示并同步到测试管理系统中。

手动测试人员执行了手动测试后,将测试结果通过测试管理系统或者在测试代码中进行记录,并最终汇总到测试管理系统的进行统一展示,从而实现了让不同人员可以一起协作分析,设计,管理,和执行测试用例的工作。下面是本方法的架构设计图。

[caption id="attachment_14661" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/7-how-to-manage-testcases-1.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/7-how-to-manage-testcases-1-768x579.png" alt="" width="700" height="528" class="size-medium_large wp-image-14661" /></a> 系统活文档架构图1[/caption]

[caption id="attachment_14662" align="aligncenter" width="700"]<a href="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/8-how-to-manage-testcases-1.png"><img src="https://insights.thoughtworks.cn/wp-content/uploads/2021/08/8-how-to-manage-testcases-1-768x497.png" alt="" width="700" height="453" class="size-medium_large wp-image-14662" /></a> 系统活文档架构图2[/caption]

总结

测试用例是测试工作的根本,不管是手动测试还是自动化测试的成功,都十分依赖于测试用例的质量。但是只有充分的做好测试分析,设计,编写和管理才能产出一套合格甚至优秀的测试用例套件。从而保证测试工作可以高效正确的进行,为产出高质量软件保驾护航。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容