软件测试-测试用例

软件测试-测试用例

1.什么是测试用例

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

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

软件测试-测试用例_第1张图片

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

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

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

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

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

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

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

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

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

软件测试-测试用例_第2张图片

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

软件测试-测试用例_第3张图片

兼容性测试的注意事项:

  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张图片

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

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

3.5场景设计法

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

软件测试-测试用例_第5张图片

3.6正交法

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

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

正交表特性:

软件测试-测试用例_第6张图片

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

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

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

实验:表示总实验次数。

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

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

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

水平数:是、不是

2.生成正交表

使用allpairs工具生成正交表。

软件测试-测试用例_第7张图片

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安装卸载测试

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

你可能感兴趣的:(软件测试,测试用例)