PICT用例设计工具介绍

本文对PICT工具的描述以及基本使用做出介绍

文章目录

  • PICT用例设计工具介绍
    • 0.成对测试
    • 1.PICT工具获取
    • 2.PICT工具基本功能使用
      • 2.1 基本使用
      • 2.2 添加约束
    • 4.总结

0.成对测试

在我们进行接口测试时,如果遇到一些入参规模比较庞大的接口,通常会采用等价类划分法和边界值分析法来减小测试用例的规模. 但是当被测接口会被多个入参因子共同影响时,使用穷举测试依旧会造成测试用例过于庞大的问题. 而成对测试的思想可以有效的解决测试用例规模过大的问题.

成对测试主要是将多个入参因子进行两两正交,得到测试用例集合.可以保证不同入参的任意两个因子能同时包含在一个用例里边.

根据统计研究发现,两两正交生成的测试用例,可以发现70%以上的bug.三三正交可以发现90%以上的bug.

对于本文所要讲述的PICT工具,正是基于成对测试的思想,用来设计测试用例的工具.

1.PICT工具获取

PICT是微软开源的用例设计工具,使用C++编写. git地址为:

https://github.com/microsoft/pict

可以将其下载下来编译后生成pict工具.此工具支持在Windows/Linux环境下进行编译

  • Linux 下安装g++等编译工具在代码根目录执行 make指令即可编译
  • Windows 下运行根目录下执行编译的bat脚本即可

在此本文使用Linux下来编译此工具:

框住的即是编译处的PICT工具

2.PICT工具基本功能使用

2.1 基本使用

比如我们设定如下几个入参类型以及对应的值:

Name Gender Age Hight Phone
Tony male 20 160 apple
Mac female 30 170 samsung
John 40 180 huawei
Lucy 50 xiaomi
Marry oppo
vivo

我们要新建一个txt,讲这些值写入:

Name:Tony,Mac,John,Lucy,Marry
Gender:male,female
Age:20,30,40,50
Hight:160,170,180
Phone:apple,samsung,huawei,xiaomi,oppo,vivo

基本的格式为:

入参类型:入参因子1,入参因子2,...   # 注意入参类型与因子之间用":"隔开,因子与因子间用","隔开

编写好后将其保存为txt文件,在此我将其保存为"test.txt",之后运行pict工具:

会得到如上的结果,我们可以从里边找出包含任意两个不同类型参数的因子的组合的用例.

2.2 添加约束

从上面生成的测试用例中,我们会发现其实有些是不合逻辑的,比如 Marry 是一个女性的名字,但是有些用例会将其生成为男性(male),或者John是男性名字,但有用例将其生成为女性.

如果我们手动删掉这些不合理的用例,是万万不可行的.因为这些所谓"不合理"的用例,里边可能包含了其他的两两组合,如果直接手动删掉,会导致漏测的风险

比如上面生成的第3条用例,Mac对应的是female,40岁,170身高,使用samsung. 假如在这个接口中Mac + samsung会导致一个bug出来,而我们手动删掉这条后,就会造成此bug没有被查出.

所以我们需要手动在txt中添加约束来规范化这些用例,假设我们添加如下几个约束:

  • 姓名为 Tony,Mac,John 均为男性
  • 姓名为 Lucy,Marry 均为女性
  • 女性身高 < 170 (拳师们手下留情,只是随便举一个不恰当的例子来演示此工具)
  • 使用apple的年龄 < 40

那么对应的test.txt需要改为这样:

Name:Tony,Mac,John,Lucy,Marry
Gender:male,female
Age:20,30,40,50
Hight:160,170,180
Phone:apple,samsung,huawei,xiaomi,oppo,vivoIF [Gender] = "male" THEN [Name] = "Tony" or [Name] = "John" or [Name] = "Mac";
IF [Gender] = "female" THEN [Name] = "Lucy" or [Name] = "Marry";
IF [Gender] = "female" THEN [Hight] < 170;
IF [Phone] = "apple" THEN [age] < 40;

这样,在此运行工具,就生成了如下的用例:

从上述用例可以看出,均已满足了约束条件.

如果我们想将用例导入到Excel表格中,只需要在执行生成用例时将结果重定向到Excel表中即可,如;

./pict test.txt > aaa.xls

打开生成的Excel文件,会得到如下结果:

4.总结

从上面的例子可以看出,共生成了30条用例,如果我们使用穷举测试的策略,会生成 5x2x4x3x6 = 720条用例,而使用成对测试可将用例条数减少95%,而且随着入参规模的增加,生成用例占比会更低:

从刚才的例子中,通过5%的用例检测出70%的bug,测试投入产出比还是相对较高的.

下一篇
PICT工具算法图解

PICT用例设计工具介绍相关推荐

  1. Axure原型设计工具介绍

    Axure原型设计工具介绍 1759230茅杭斌 目录 1.前言 2.下载与激活 3. Axure相关功能介绍 4.Axure案例演示 5.结语 一.前言 在我们进行程序开发的时候,原型图是必不可少的 ...

  2. 用例设计工具PICT — 输入组合覆盖

    1 成对测试简介 成对测试(Pairwise Testing)又称结对测试.两两测试,是一种正交分析的测试技术.成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的.是当不可能遍 ...

  3. 根据数据库表结构生成Excel表设计——工具介绍

    根据数据库表结构生成Excel表设计 最近又接手了一些老系统,库表设计啥的都没有,十来个系统,每个系统都几十张表,一个个的补感觉太难了,合计了一下感觉还是搞个工具比较好. 在系统运维的过程中,很多时候 ...

  4. 基于界面交互展开的用例设计思路

    测试用例是测试人员日常最重要的输出之一,对用例的评价标准一般有三个维度:结构清晰易读.可执行性强.覆盖度高.站在质量维度,最为重要的要属高覆盖度.如何写出高覆盖度的设计用例,离不开以下几个角度的分析. ...

  5. PICT测试用例设计工具的介绍和使用

    一.PICT是什么❓ "PICT工具"是针对"pairwise testing"实现的测试用例设计工具.通过他,我们可以直接将"正交表"转换 ...

  6. 【测试设计】基于正交法的测试用例设计工具--PICT

    前言 我们都知道成对组合覆盖是一种非常有效的测试用例设计方法,但是实际工作过程中当成对组合量太大,我们往往很难做到有效的用例覆盖. PICT是微软公司出品的一款成对组合命令行生成工具,它很好的解决了上 ...

  7. 第三次作业-介绍一款原型设计工具

    课程:软件工程综合实践专题  学号:1759214 介绍一款原型设计工具:Mockplus http://www.mockplus.cn 如今是一个快节奏的社会,每一天都会有无数的软件发布,每一款软件 ...

  8. 原型设计工具——“墨刀”的介绍与基本教程

    一.产品介绍 (1)产品简介: 墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理.设计师.开发.销售.运营及创业者等用户群体,能够搭建为产品原型,演示项目效果. (2)产品logo: (3)发展历 ...

  9. 国外一些好用的UX/UI设计工具和资源介绍

    你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.以下就是各种工具的介绍入口,当您点击标题就会看到各种很好的工 ...

最新文章

  1. Java练习 SDUT-1230_平方和与立方和
  2. 悠然乱弹:我的开源观
  3. bzoj2091: [Poi2010]The Minima Game DP
  4. 数据库跟尾过多的错误,能够的原因阐发及处置惩罚设备
  5. 排序算法(7)----桶排序
  6. php 嵌入手机百度地图,C# 程序中嵌入百度地图
  7. deebot扫地机器人使用_石头扫地机器人T7 Pro使用体验 避障更加“聪明”
  8. matlab中ezplot和plot, fplot这3
  9. 正态分布的前世今生(上)
  10. 再谈KMP/BM算法(I)
  11. 计算机操作基本技能知识,计算机基本操作技能考核知识点
  12. 网宿科技边缘计算之直播应用
  13. 手把手带你做一个Python打飞机游戏
  14. Python爬虫实战(1):抓取毒舌电影最新推送
  15. DevData Talks | 张乐、茹炳晟、应阔浩、任晶磊:研发效能实践的2022年复盘和展望
  16. Beta产品测试报告:那周余嘉熊掌将得队、为了交项目干杯队
  17. 个人站——关于我页面设计
  18. Java培训四个月能学会吗
  19. JQurey操作dom
  20. VNC client

热门文章

  1. 【js】vue跳出for循环
  2. Git 配置环境变量
  3. Win10最后免费升级路线被封
  4. Linux GDB调试完全教程
  5. 像FBIF一样做会展数字化,你也有可能吸引数万观众
  6. vue2+vue3——107+
  7. 字典树与01字典树详解
  8. debian 重启mysql_如何重启MySQL服务,正确重启mysql的方法
  9. vscode 编辑器中间一条竖线去除方法
  10. vscod边调试html,答应你们的VSCO手机调色教程第二弹来啦~最近发的一些照片用了下面...