• 软件测试-测试用例


    软件测试-测试用例

    1.什么是测试用例

    为了实施测试而向被测系统提供的一组集合。这组集合包括测试环境、操作步骤、测试数据、预期结果等要素。

    举例:对一个垃圾桶设计测试用例

    在这里插入图片描述

    2.设计测试用例的万能公式

    设计测试用例的万能公式:功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试

    功能测试:对产品的功能设计测试用例(根据需求文档、经验)

    性能测试:对各种参数进行校验等等,涉及比较广。

    界面测试:对每个元素的大小、颜色、形状、跳转等都需要进行测试。

    兼容性测试:软件是否否兼容不同浏览器、不同系统版本、数据兼容性等。

    易用性测试:产品或软件是否具备简单易上手的特性。

    安全测试:用户的隐私数据是否加密(接口返回值,请求参数),越权问题(垂直越权、水平越权)。

    使用万能公式对垃圾桶设计测试用例:

    在这里插入图片描述

    对登录功能设计测试用例:

    在这里插入图片描述

    兼容性测试的注意事项:

    1. 测试后台用户使用大多数使用的浏览器和系统。

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

    3.1基于需求的测试方法

    首先要分析需求是否正确、完整、不矛盾,并且逻辑恰当。确认无误后,在对需求进行进一步的细化,提炼出测试点或者测试项。对每一个测试点/测试项进行测试样例的设计。

    3.2等价类

    根据需求将输入数据划分为若干个等价类,从等价类中选出一个测试用例,如果一个用例通过,则认为该等价类类测试通过。等价类又分为有效等价类和无效等价类。这样可以达到用较少测试用例尽量多的功能覆盖。

    例如注册时密码的长度要求为6-16位,如何根据等价类来设计测试用例呢?

    1.明确等价有效类和无效等价类

    1. 有效等价类:密码长度位6-16位
    2. 无效等价类:密码长度小于6位,密码长度大于16位

    2.编写测试用例

    1. 输入长度位6-16的密码,具体为10位。
    2. 输入长度位小于6位的密码,具体为3位。
    3. 输入长度大于16位的密码,具体为18位。

    3.3边界值

    对输入/输出数据的边界值进行测试的一种黑盒测试方法,最长、最短或者最小、最大,边界值右分为有效边界和无效边界。

    有效边界:有效等价类中的边界。

    无效边界:无效等价类中的边界。

    例如注册时密码长度位6-16位,如何对边界值测试用例呢?

    1.明确有效边界和无效边界

    1. 有效边界:密码长度为6、16位时。
    2. 无效边界:密码长度为5、17位时。

    3.设计测试用例

    1. 当密码长度位6、16位时是否能注册成功。
    2. 当密码长度位5、17位时是否能注册成功。

    3.4因果图

    因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况

    需求:是否是优惠订单,订单金额超过200、无门槛红包,当订单金额超过200或使用无门槛红包为优惠订单,否则为非优惠订单。

    1.确认输入条件和输出条件

    1. 输入条件: 订单支付>200 使用红包 支付订单。
    2. 输出条件:优惠订单、非优惠订单。

    2.找出输入条件和输出条件的关系

    对输入条件进行组合:A B C AB AC BC ABC 非ABC

    3.绘制判定表

    在这里插入图片描述

    4.根据测判定表编写测试样例

    1. 当订单金额>200元,无红包,不提交订单,则该订单为无优惠订单。

    3.5场景设计法

    思路引导作用,场景测试通常用于测试一个应用程序的主要功能或业务流程。它们可以帮助测试人员理解用户如何与软件进行交互,以及当出现错误或异常情况时的用户体验。

    在这里插入图片描述

    3.6正交法

    主要解决判定表如果输入条件过多,穷举的情况太多,测试用例会很多。正交法是从大量的实验中挑选出有代表性的的点,合理的设计测试用例。是一种基于正交表的、高效率、快速、经济的试验。

    正交表:L=行数(水平数^因素数)

    正交表特性:

    在这里插入图片描述

    1. 在每一列中,每种水平出现的次数相同。
    2. 任意两列中的水平组合排列方式是齐全且均衡。

    因素:表示我们的输入条件(预考察的的变量)

    水平:表示输入的可能选项(因素的取值)

    实验:表示总实验次数。

    举例:对订单是否是优惠订单设计测试用例

    1.找出因素数和水平数。

    因素数:支付、支付>200元、使用红包

    水平数:是、不是

    2.生成正交表

    使用allpairs工具生成正交表。

    在这里插入图片描述

    3.根据正交表编写测试用例

    1. 支付、订单金额大于200元,使用红包。
    2. 支付、订单金额小于200,不使用红包。
    3. 不支付、订单金额大于200、不使用红包。
    4. 不支付、订单金额小于200,使用红包。

    4.补充可能存在遗漏和非常重要的测试用例。

    1. 支付、金额大于200,不使用红包。
    2. 支付、金额小于200,使用红包。

    3.7错误猜测法

    根据需求中给出的范围,凭借个人的经验和直觉设计测试用例

    4.测试的分类

    4.1可靠性测试

    可靠性=(正常运行时间)/(正常运行时间+异常运行时间)* 100%,基本至少要达到4个9要求,也就是99.99%。

    4.2容错性测试

    程序中某个功能出现错误,但是它不会影响整个系统的整体运行。

    4.3内存泄漏测试

    1. 人工检查,查看代码查找未被回收的内存。
    2. 自动工具法:借助相应的测试内存泄漏工具,如Visual Leak Detector,记录每一次的内存分配,便以观察内存泄漏情况。

    4.4弱网测试

    设定在特定的网络下、程序功能是否正常。使用一些工具将网络调整到2G或3G的状态。

    调整原理:如果调整到2G,2G的上行速率是2.7Kb/s,通过控制发送1KB的时间,将网络速率调整的2G的速率。

    设发送1KB的时间为Xms

    (2.7Kb/8)*X = 1KB

    X = 1KB*1000/(2.7Kb/8)

    4.5按照是否关系代码的具体实现进行测试

    1.黑盒测试

    黑盒测试指的是不关心程序的内部逻辑和结构,也就是不关心代码,检查系统的功能是否正常。只注重软件的功能。

    优点:

    1. 从用户的角度出发设计测试用例,更好地满足用户的需求。
    2. 基于软件需求文档,不容易遗漏软件需求文件中需要测试的功能。
    2.白盒测试

    又称为结构测试或逻辑测试,它一般用例分析程序的内部结构,针对程序的逻辑结构设计测试用例。

    主要包含:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

    3.灰盒测试

    灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输

    出、输入的正确性,同时也关注程序内部的情况。

    4.6按照开发阶段进行划分

    1. 单元测试:此单元是程序员自己定义的,可以是一个方法、也可以是多个方法。
    2. 集成测试:对多个单元同时进行测试。
    3. 回归测试:对历史的版本、历史功能进行测试,保证更新后的功能不影响原来版本功能的使用。
    4. 系统测试:对完整的系统进行全方面测试
    5. 冒烟测试:开发任意完成任务之后,交给测试人员进行测试的第一步,评估软件系统是否具备可测试的条件。
    6. 验收测试:部署软件前的最后一次测试操作,也称为交付测试。

    4.7安装卸载测试

    软件能够正常安装,卸载之后也能正常安装。

    5.面试题

    1. 为何不能用灰盒测试替代白盒和黑盒测试。
      测试:对历史的版本、历史功能进行测试,保证更新后的功能不影响原来版本功能的使用。
    2. 系统测试:对完整的系统进行全方面测试
    3. 冒烟测试:开发任意完成任务之后,交给测试人员进行测试的第一步,评估软件系统是否具备可测试的条件。
    4. 验收测试:部署软件前的最后一次测试操作,也称为交付测试。

    4.7安装卸载测试

    软件能够正常安装,卸载之后也能正常安装。

  • 相关阅读:
    100G.的DDoS高防够用吗?
    HTML+CSS+JS实现【别踩鸡块】,ikun粉快来瞅瞅(含源码链接在文末+思路)
    数据分析三剑客
    品味布隆过滤器的设计之美
    基于Pyflwdir实现流域的提取(参照官网例子)
    【推荐系统】ESMM:一种有效估算后点击转换率的方法
    最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)
    IDOC是什么
    Android | ArcGIS入门
    antd-vue a-transfer 中 a-tree接口异步加载问题
  • 原文地址:https://blog.csdn.net/qq_52763385/article/details/133323404