• 0
  • 3
分享
  • 浅谈测试案例的设计方法
  • 恬恬圈 2020-07-01 13:09:25 字数 2156 阅读 8539 收藏 3

1.概述

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。测试案例作为测试执行的依据在软件测试工程中发挥着重要的作用。

本文从测试案例的设计意义出发,剖析了测试案例的设计策略、原则和分类,帮助测试人员在进行测试案例设计时,找到案例的设计方向和方法。

2.什么是测试案例设计

测试案例的设计简单说的就是设计一个测试场景,通过这个测试场景中的输入、执行条件和输出,来判断应用系统是否存在系统缺陷和不足;即通过执行测试案例,来判断系统是否能够正常运行并且达到程序所设计的执行结果。

根据测试案例的性质划分,测试案例在设计上可以分为正向测试案例和反向测试案例。

正向测试案例:是指系统功能正常运行的测试用例,验证系统是否能够完成它应该完成的操作。主要依据需求规格说明书,详细设计文档等完成正向测试的设计。反向测试案例:是指相对正案例而言,设计异常场景的测试案例,验证系统是否对不该完成的操作做出正确的控制。主要依赖测试人员的逆向思维和测试经验。

3.测试案例设计的综合策略

测试案例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法,功能图法等。应该说,这些方法是比较实用的,但采用什么方法,在使用时自然要针对开发项目的特点对方法加以适当的选择。

每种类型的软件有各自的特点,每种测试案例设计的方法也有各自的特点,针对不同软件如何利用这些案例设计方法是非常重要的,它能极大地提高测试效率和测试覆盖度,认真掌握这些方法的原理,有效提高测试水平,积累更多的测试经验,这是测试人员最宝贵的财富。

而测试用例的设计方法不是单独存在的,具体到每个测试项目里都会用到多种方法,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,在实际测试中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖度。这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效地提高测试水平。

以下是各种测试方法选择的综合策路,可供读者在实际应用过程中参考。

①首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。

②在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。

③可以用错误推测法追加一些侧试用例,这需要依靠测试工程师的智慧和经验。

④对照程序逻辑,检查己设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

⑤如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法。

⑥对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。

⑦功能图法也是很好的测试用例设计方法,可以通过不同时期条件的有效性设计不同的测试数据。

⑧对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。

根据不同测试场景,选择不同的测试策略;在选择好我们案例设计的策略和方法后,就可以展开思路进行测试案例的设计。

4.测试案例设计的思路与原则

我们在设计测试案例时,通常包含正向测试案例和反向测试案例,反向测试案例通常是指,系统不支持的输入或者状态。根据常规测试案例的设计方法,测试用例设计时通过反向思维进行设计,能更快的发现缺陷或更有可能发现潜在缺陷,提高测试效率。

4.1设计思路

设计测试用例时,要寻求系统设计、功能设计的弱点。

设计正面的测试用例。

设计反面的、异常的测试用例。

4.2设计原则

功能测试案例的编制总原则是:根据测试范围,设计足够的测试案例,要求每一条测试功能都必须被测试案例所覆盖。对于测试场景,要求对基本事件流达到百分之百覆盖。对于备选事件、异常事件、逆向验证等,针对输入数据、业务规则等进行分析,设计足够的测试案例。要综合选取、灵活运用多种测试案例设计方法:等价类划分法、错误推测法等。

4.2.1测试用例的代表性

能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。

4.2.2测试结果的可判定性

即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。

4.2.3测试结果的可再现性

即对同样的测试用例,系统的执行结果应当是相同的。

5.测试案例设计分类

笔者依据以上测试案例的设计策略和原则,通过多年的测试案例设计实践,可将常用的测试案例的设计总结分为以下类型:

5.1基本要素类验证

5.2权限类验证

5.3数据类验证


5.4业务规则类验证

 

5.5报表类验证


6.总结

测试案例的设计质量对于测试执行的结果至关重要,有效的测试案例设计方法能帮助测试人员提高测试工作的准备和执行效率;通过对以上测试案例设计的分析笔者总结出了一套测试案例设计的有效方法,意在帮助测试人员在测试实践中取文中精华,灵活解决测试案例设计上的问题,做到测试案例设计的高效率和高质量工作呈现。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   之所以写这一篇文章,是突然想起来曾经在测试过程中被开发嘲讽过,事情是这样的,当时发现了一个疑似前端的Bug就草草提交到了禅道,结果刚来的女前端看到了就有点生气地问我为啥不查清到底是前后端问题就直接派给她前端了,因为那个问题其实是后端的。而且她还抛出了一句,她们以前公司的测试都是能准确分清前后端的问题再指派的。从那之后我就长了个记性,凡是遇到的Bug都尽量搞清楚到底是前后端哪边的问题再具体指派到开发。相信很多人应该也有过类似的经历,但是可能为了快速测试或者因为不太会定位前后端问题而直接将Bug随便挂到了某个开发头上,聪明一点的呢直接挂到了开发组长头上让他重新指派!其实这样对自身的成长以及塑造...
            0 0 643
            分享
          •   APP测试是一个广泛的概念,根据每个APP的应用场景不一样,测试的方向也略微的不同,在测试过程中需要灵活应用自身所知的测试手段。  安装测试  软件在不同操作系统(Android系统和IOS系统)上是否正常安装。  软件在不同版本的操作系统(如Android 5.0、Android 6.0、Android 7.0、Android8.0和iOS 9.0、iOS 10.0、iOS 11.0、iOS 12.0)上是否正常安装。  软件在不同的品牌手机(华为、三星、OPPO、VIVO等其他品牌手机)上是否正常安装。  卸载旧版本再安装。(这个操作可以排插新版本的安装包是否丢失库,如果是覆盖安装的话...
            0 0 1042
            分享
          •   当地时间周四,美国司法部对美国一家联邦法院表示,如果不是谷歌垄断搜索市场,ChatGPT和其他技术创新本可能在几年前就已经出现。  在微软宣布将把OpenAI的人工智能聊天技术纳入必应搜索引擎的几天后,谷歌也宣布将发布自己的会话式人工智能产品。  美国司法部谷歌反垄断案的首席律师KennethDintzer对法官AmitMehta表示,这表明“真正的竞争将会带来什么”。律师表示:“过去12年来,谷歌一直在维持垄断地位。我们会在6年前看到ChatGPT吗?我们会看到其他5家竞争对手在搜索领域展开竞争吗?这些都是我们无法回答的问题。”  谷歌希望法庭驳回美国司法部和各州总检察长提起的两起反垄断...
            0 0 573
            分享
          • 前言今年是笔者本科毕业的第6年,在接近三十而立的年龄里,回首自己从毕业到现在的职业生涯,可以说是一波三折。趁着自己现在有时间,就做一个复盘和总结,分享给曾经和我一样迷茫的朋友,希望能够带给你一些启发。一、考研失利,“捡到”一个国企的offer笔者是某末流211大学电子信息工程专业科班出身的,大四那年有些不知道“天高地厚”地拒绝了本校保研,准备跨考复旦大学的金融专业研究生,结果当然是华丽丽地当了一回“分母”。话说那时候考研还不是很卷,如果我坚持考自己专业,应该也是可以上岸一所不错的学校的,但是造化弄人.......于是乎,完美地错过了当时的秋招,只能急匆匆地追赶春招的步伐。地球人都知道春招无论是...
            11 11 958
            分享
          • 1) 基于最终用户/系统测试被测系统可能有许多组件,当它们耦合在一起时,可以实现用户场景。在示例中,客户场景将包括诸如 HRMS 应用程序加载、输入正确凭据、转到主页、执行某些操作和注销系统等任务。对于基本业务场景,此特定流程必须无任何错误地工作。下面给出了一些示例:无概括先决条件测试用例这是如何针对情况编写测试用例的基本示例。上述格式也适用于以下所有测试。为了牢固的概念基础,我只在上面和下面进行了一些简单的测试。2) 等价测试在Equivalence partitioning中,测试数据被分成不同的分区,称为等价数据类。每个分区中的数据必须以相同的方式运行,因此只需要测试一个条件。同样,如果...
            0 0 1699
            分享
      • 51testing软件测试圈微信