• 0
  • 0
分享
  • 关于测试用例——软件测试圈
  • quinn 2022-07-21 11:43:52 字数 2445 阅读 1750 收藏 0

一.测试用例的基本要素

1.什么是测试用例

这个在前面其实已经说过了,具体可以看软件测试的基本概念 这篇博客,这里就简单介绍一下:测试用例是向被测试系统发起的一组集合,包括测试环境,测试步骤,测试数据,预期结果!

2.为什么软件测试人员要写测试用例?

这里有如下几个原因:

  • 测试用例是测试执行的依据;

  • 测试用例可以复用,在进行回归测试的时候就不用再重新编写了;

  • 测试用例可以衡量需求的覆盖率;

  • 后人可以借鉴;

  • 手工测试用例是自动化测试的依据

二.测试用例的设计方法

1.基于需求设计测试用例

需求是测试人员进行测试的依据,测试人员分析需求,验证需求的合理性和正确性,无二义性,从需求当中提取出测试项,根据测试项进行进一步的细分,提取出测试点,来编写测试用例,可以有以下方面的考虑:

  • 从界面开始进行测试(符合UI设计稿);

  • 验证软件的功能,把业务相关的功能穿起来进行测试(有相关性的功能),而不能只关注某一个孤立的功能;

  • 一个功能的不同的输入和相应的不同的输出;

  • 功能之间的交互性(同一个系统不同角色之间的交互类似于卖家和买家);

  • 异常功能的测试;

  • 功能用到的算法的验证(这个就需要去看代码层面了);

  • 从易用性,兼容性性能等几个方面去考虑.

  • 非功能性测试:非功能测试就是测试在软件本身有的功能之上做一些限制,非功能测试主要有易用性,兼容性,性能,安全性,可移植性,可靠性,可维护性;另外不同应用的软件对于这些非功能性的要求还是不太一样的:

假设是面向客户端的软件,类似于Word,对于性能,安全性要求一般都不太高,而对于兼容性,可移植性,稳定性就会比较高;

假设是面向企业内部的软件,类似于飞书,其对兼容性,性能要求就不是很高,但是对于功能性,可靠性要求就会很高;

假设是大型商用软件,类似于微信,QQ,其对性能,兼容性,可靠性,可移植性,安全性要求就会很高!

因此针对不同的软件,其非功能性上也是不一样的!

2.具体设计测试用例的方法

2.1.等价类

我们可以根据输入(特殊情况下才考虑输出),把输入划分成若干个等价类,然后从每一个等价类中选择一个或多个测试用例来进行测试,如果这个测试用例通过,我们就说这个测试用例代表的等价类测试通过!通过这样的方法,我们就可以解决测试用例无法穷举的情况!

另外等价类也可以分成有效等价类(符合用户需求数据规格说明的数据集合)和无效等价类(不符合用户需求数据规格说明的数据集合),而如果进行测试的话,有效等价类和无效等价类都是需要进行测试的,保证"万无一失"!

做一个简单的练习:假设一个用户名是必填的6-15个其字符类型为A-Z不区分大小写:
有效等价类:6~15个大写字符,6 ~15个小写字母.6 ~ 15个大小写混合
无效等价类:小于6个字符,大于15个字符,6 ~ 15个其他字符,数字+字母,数字+特殊字符,特殊字符+字母

2.2.边界值

针对输入和输出的边界进行测试用例的设计,假设是6 ~ 15位,5不合格,6,7合格,14,15合格,16不合格;因此边界值不仅要区边界上的值,而且要取边界两边的值,看另外边界值和等价类是结合在一起进行测试用的设计的!

2.3.错误猜测法

这个方法主要是根据测试人员的经验,以及知识的积累,猜测某一块功能是否存在问题,有针对性的进行测试用例的编写,这是一个探测性测试,针对性比较强,比较依赖测试人员的个人水平,例如搜索框中的空格问题,就需要测试人员来进行猜测测试!

2.4. 场景法

很多软件不同的场景,是基于不同的事件的触发,不同事件的触发,导致场景走向不同的事件流,而不同的功能点串起来形成一个场景,不同的功能点又有不同的输出,不同的输出导致不同的测试场景,这里可以模拟一个ATM的取款场景: 插卡 – 输入密码 – 输入取款钱数 – 取款 – 退卡,然后根据每一个功能就可以有很多的测试用例:

  • 插卡:插错卡(各种其他的卡,非银行卡),卡插反了,非本银行的银行卡,银行卡的磁条无法识别,卡损坏了,卡号冻结,账户锁死了,网络不好,无法识别…

  • 输入密码:不输密码直接确认,输入错误的密码,输入错误的密码,密码输入错误超过三次,账户锁定,密码输入框是否支持删除输入操作,测试密码是否加密…

  • 输入取款钱数:输入小于卡余额的钱数,输入大于卡余额的钱数,输入等于卡余额的钱数,不输入取钱按钮是否可以执行…

  • 取款:输入小于等于卡余额的钱数取款成功,输入大于卡余额的钱数取款失败并显示余额不足,超过每日取款余额的上限,超过每日取款次数的上限…

  • 退卡:取钱后正常退卡,操作超时吞卡…

  • ATM机:ATM一切正常,ATM机出现异常(ATM余额不足,ATM机断电,断网,硬件故障,软件系统崩溃)无法执行上面功能,发生异常情况ATM机是否支持事务回滚…

上面都只是一些简单的测试点,不是具体的测试用例,如果测试用例的话,需要更加具体,而这个就是场景法的具体用处!

2.5.因果图法

因果图法是一种逻辑图,恒等,与,或,非,用因果图来设计测试用例,叫做因果图法,其的使用场景:当我们有很多输入,不同的输入或者不同的输入组合针对有不同的输出,此时我们就可以用因果图法来进行测试用例的设计,下面来看一下各种因果图:

恒等:

1.png

与:多个不同的输入为真的时候,输出才为真(类似于有车有房->结婚其他情况都是不可以的,但是其他的情况也需要考虑到):

2.png

或:多个输入其中一个为真,输出为真(类似于有车有房其中一个为真就能结婚,但是其他的情况也需要考虑)

3.png

非:

4.png

而因果图设计测试用例的步骤:

  1. 分析出所有的输入和输出;

  2. 找出输入和输出之间的关系;

  3. 根据关系图画出因果图;

  4. 根据因果图画出判定图;

  5. 根据判定图写出测试用例~

2.6.正交法

根据正交法来设计测试用例,就是从大量的试验数据(测试数据)来根据正交原则取出最优的数据的组合,根据最优的数据组合试验的结果,来分析整个测试的结果,这个使用的不多,因此就不过多介绍了!


作者:栋zzzz

原文链接:https://blog.csdn.net/qq_58266033/article/details/125567348

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • QQ登录界面功能点:登录、设置、最小化、关闭、头像、登录-下拉框、登录-软键盘、注册账号、找回密码、记住密码、自动登录、多账号登录、二维码等。1:查看界面排版是否和UI保持一致;预期:与UI保持一致。2:获取输入后,查看背景字是否消失不可见;预期:消失不可见。3:失去焦点后,查看背景字是否出现;预期:失去焦点后背景字出现。4:输入正确的账号、正确的密码,点击“登录”查看是否弹出正确的QQ登录界面;预期:正确弹出QQ登录界面。5:查看账号、密码输入框是否过滤非法输入;预期:过滤非法输入且给出提示信息。6:单个为空,查看是否顺序提示信息;预期:顺序提示信息。7:全部为空,查看是否提示信息;预期:提...
            0 0 8232
            分享
          • 3.你是如何进行项目级检查首先,我们需要知道项目级的角色有哪些,包括项目经理、需求、设计、开发、测试等,再针对每个角色工作过程和产品进行检查。项目经理角色:根据《过程检查单》对项目经理过程进行检查,包括监控、评审、度量过程监控:项目有偏差时,是否做了相应的措施,是否编写了变更需求矩阵评审:评审前、中、后期的工作,如前期(5w),中期记录,后期跟踪,评审是否按照计划进行,是否编写的评审报告度量:是否每个里程碑进行了度量分析,度量分析的数据是否一致性、及时性、准确性根据《产品检查单》对项目经理产品进行检查,《项目计划》是否按照模板编写,项目计划内容是否(包括组织的结构和职责、是否有软件规模估算、已...
            0 0 2062
            分享
          •   在日常的测试工作中,不知道大家是否会有梳理自己测试业务的习惯。我个人觉得这个事情是值得做的,最好还可以培养成一个习惯。  一、为什么要梳理业务?  因为在业务测试中,作为测试人员,熟悉负责的业务是非常重要的,而通过阶段性的梳理总结,可以让你的业务知识系统化的沉淀下来。  当被问起这个业务系统的测试重点在哪里?难点如何克服?为什么要这样设计等等问题,可以有条不紊的进行输出。  又或者,当你任务需要交接,或者需要别人支援你的业务,你可以自信的把文档丢过去,拍拍胸脯说:看一遍你就知道了。  同样大家平时都在做业务,同样并没有多少别的技术层的产出,这也是为什么有人能拿A,有人却只能拿C的原因之一。...
            0 0 1012
            分享
          • 读者提问:什么是自动化测试,自动化测试的动机和时机是什么 ?阿常回答:一、自动化测试的概念自动化测试的本质是先写一段代码,然后去测试另一段代码。所以实现自动化测试用例本身属于开发工作,需要投入大量的时间和精力,并且已经开发完成的用例还必须随着被测对象的改变而不断更新,你还需要为此付出维护测试用例的成本。二、自动化测试的动机1、自动化测试可以替代大量的手工机械的重复操作,QA可花更多的时间在更全面的用例设计和新功能的测试上。2、自动化测试可以大幅提升回归测试的效率。3、自动化测试可以更好的利用无人值守时间,非工作时间执行测试,工作时间分析失败用例。4、自动化测试可以高效实现某些手工测试...
            0 0 1048
            分享
          • 一、分层的自动化测试1、传统自动化测试基于产品 UI 层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。在目前的大多数研发组织当中,都存在开发与测试团队割裂(部门墙)、质量职责错配(测试主要对质量负责)的问题,在这种状态下,测试团队的一个“正常”反应就是试图在测试团队能够掌控的黑盒测试环节进行尽可能全面的覆盖,甚至是尽可能全面的 UI 自动化测试。这导致,一方面测试团队规模急剧膨胀;另一方面,因为 UI 是非常易变的,所以 UI 自动化测试维护成本相对较高。2、测试金字塔由敏捷大师 Mike Cohn 在他的 Succeeding with Agile 一书中首次提出。...
            12 12 2436
            分享
      • 51testing软件测试圈微信