JavaGUI练习 - 正交测试用例生成小工具
正交表生成小工具
说明
小工具的适用对象主要是测试人员,他们日常工作中手动设计大量测试用例,工作繁杂甚至还存在覆盖不全面等问题。
为了提高他们的测试效率,该小工具可以通过输入一组多因素多水平的数据,然后查询到相应的正交表,同时映射出这组数据的测试用例。
为了方便使用,还增加了帮助、导入文件和保存结果的功能。
思路
同样需要构思布局,先分为上中下三大块
其次对每一块进行细化,上方是用户的操作区域
中间和下方显示数据

逐个实现按钮监听的事件类
完善一些异常处理,进行软件测试
打包上交
注意事项
- 使用合适的布局格式
- 获取/修改界面的数据
- 数据文件的路径应使用相对路径!
- 事件监听使用内部类可以非常方便的操作界面数据。
使用效果
- 首先点击
帮助按钮,查看使用说明 复制例子的内容,粘贴到小工具的输入框- 点击
生成按钮生成正交表和映射表。

成功映射3^4的正交表
- 点击
选择文件按钮 - 找到符合输入规范的
文本文件,点击打开 - 会自动将文本文件的内容填充到输入框
- 点击
生成按钮生成正交表和映射表。


成功映射2^3的正交表
遇到的问题
- 小工具打成jar包之后,数据文件路径失效
// 通过类名的相对路径获取数据文件,Table.txt与MyGenerator类在同一个包下
URL table = MyGenerator.class.getResource("Table.txt");
File file = new File(table.toURI());
InputStreamReader input = new InputStreamReader(new FileInputStream(file));
BufferedReader bf = new BufferedReader(input);
// 处理数据
修改成输入流即可解决
// 包中使用的方式
InputStream in = MyGenerator.class.getResourceAsStream("Table.txt");
InputStreamReader input = new InputStreamReader(in);
BufferedReader bf = new BufferedReader(input);
- 不能生成混合正交表,处理混合因素时出了点问题
解决思路:
- 首先将输入框的数据拆分成行,得到的行数就是因子数
- 每一行数据冒号前面是条件名称,冒号后面是水平名称列表
- 对每一行的水平列表进行统计,将每行的水平数存入一个数组counts中
- 对counts数组中每个数字出现的次数进行统计,将结果拼接成字符串数组
举例输入
服务器:Tomcat Apache
操作系统:win10 Linux
插件:小程序 微信插件
浏览器:Chrome Firefox
VPN:proxy6 Sockshub Luminati NewIPNow
将输入数据按行拆分得到5行数据,即结果由5个条件决定,因子数为5。
每一行冒号前的数据存到head数组,冒号之后的数据按空格的拆分。得到二维字符串数组
{
{"Tomcat", "Apache"},
{win10", "Linux"},
{小程序", "微信插件"},
{Chrome", "Firefox"},
{"proxy6", "Sockshub", "Luminati", "NewIPNow"}
}
对每一行统计的结果存入输入counts
{2, 2, 2, 2, 4}
再对counts数组进行统计,将结果拼接成字符串数组
{"2^4", "4^1"}//表示2水平的因子有4个,4水平的因子有1个 服务器:Tomcat Apache //0 1
操作系统:win10 Linux //0 1
插件:小程序 微信插件 //0 1
浏览器:Chrome Firefox //0 1
VPN:proxy6 Sockshub Luminati NewIPNow //0 1 2 3查表的时候,要同时包含以上数组的每一段字符串。
数据文件
2^3 n=4
000
011
101
110 2^4 4^1 n=8
00000
00112
01011
01103
10013
10101
11002
11110 3^4 n=9
0000
0121
0212
1022
1110
1201
2011
2102
2220
锁定到
2^4 4^1 n=8这一行拆分等号后面的数值,往后读取n行得到正交表最后映射正交表就完成核心功能。

保存为Excel文件
- 参见POI操作

总结
解决完混合正交表之后,发现Java语言的可扩展性真的强,通过重载方法扩展查表方式,使用不同参数得到不同结果。
最后发现自己对Java常用API还不够熟悉,很多高级的数据结构都没用到。
不过相比于以前的面向百度编程, 如今已经可以通过有限的知识得到可行的解决方案。
还有为了导出Excel文件,项目升级为maven模式,引入大量依赖,打包时META-INF文件一定要与src同级
接下来学习常用API和Java高级应用。
JavaGUI练习 - 正交测试用例生成小工具的更多相关文章
- PyQt5-GUI生成随机生成小工具
自己修改了代码:实现了自动生成SSN,手机号和姓名的功能 import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from ...
- SQL查询条件生成小工具
最近运维数据,经常遇到需要在sql条件中个In('',''....)个字符串的情况,于是在网上找了个小工具改造一下,先用着: 效果如图: using System; using System.Coll ...
- InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具
这是一个简单易用的图片数据集生成小工具,基于OpenCV和UWP Ink API,它可以根据指定的手写轨迹生成一系列各个角度的图片.每张图片的尺寸和总体数量都是可以指定的,均存放在统一的生成目录中.h ...
- 【xmind converse excel】测试用例定制化小工具
背景 公司使用jira, jira写测试用例,jira可以通过execl导入进jira, 生成测试用例,但是模板很不统一,如果只是再execl中修改,又觉得及其的麻烦,所以写了一个xmind 转化为定 ...
- WPF根据Oracle数据库的表,生成CS文件小工具
开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...
- JSON生成c#类代码小工具
JSON生成c#类代码小工具 为什么写这么个玩意 最近的项目中需要和一个服务端程序通讯,而通讯的协议是基于流行的json,由于是.net,所以很简单的从公司代码库里找到了Newtonsoft.dll( ...
- Wix 安装部署教程(八) 自动生成XML小工具
这个功能类似于Heat.exe,指定文件夹,生成对应的WIX标签.Winform做的,代码简单,生成的标签需要粘贴到对应的目录才能使用,并不是一步到位. 需要设定两个参数,一个是文件夹路径,一个是文件 ...
- Java生成验证码小工具
无意中看到一个生成简易验证码的小工具类(保存学习): 工具类代码: import java.awt.BasicStroke; import java.awt.Color; import java.aw ...
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
随机推荐
- java实现第三届蓝桥杯提取子串
提取子串 [代码填空](满分16分) 串"abcba"以字母"c"为中心左右对称:串"abba" 是另一种模式的左右对称.这两种情况我们都称 ...
- java实现第七届蓝桥杯路径之谜
路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士要从西北角走到 ...
- (七)DVWA之SQL Injection--SQLMap测试(Low)
目录结构 一.测试需求分析 二.SQLMap利用SQL注入漏洞,获取数据库信息 1.判断是否存在注入点 2.获取DBMS中所有的数据库名称 3.获取Web应用当前连接的数据库 4.列出数据库中的所有用 ...
- [bx] and loop
1.[bx] 表示一个内存单元,它的偏移地址在bx中 mov al,[bx] 2.描述符号() 来表示一个寄存器或一个内存单元中的内容. 约定符号idata表示常量. 3.loop 标号 CPU在执行 ...
- Android数据库框架-ORMLite
参考资料 Android ORMLite 框架的入门用法 Android 快速开发系列 ORMLite 框架最佳实践 添加依赖 compile 'com.j256.ormlite:ormlite-an ...
- InstallShield 2015 Limited Edition 打包教程
InstallShield 2015 Limited Edition 打包教程 右键解决方案,新增项目,选择其他项目类型,安装和部署. InstallShield2015可以免费使用,但需要下载.安装 ...
- 传递函数-微分方程-差分方程-Matlab阶跃响应曲线
Transfer function: 1 ------- 5 s + 1 写成微分方程: 5y'(t)+y(t)=u(t) 向前差分: 5y(k+1)+(T-5)y(k)=Tu(k) T:Sample ...
- 学而思Java开发岗位面试
去学而思培优面试了. 有四道笔试题,后面会整理做法. 1.给一个文件夹,用递归的方式统计这个目录及其子目录不同文件类型的个数. 如,输出:jpg:几个文件,txt:几个文件... 2.不适用加减乘除, ...
- Python正则式 - re
目录 1. 相关概念 1.1. rstring 1.2. 元字符 2. 模式Pattern 2.1. re.flag 3. API 4. 其他 4.1. 单词边界 '\b' 4.2. 贪婪和非贪婪 4 ...
- Jupyter notebook中的Cell and Line Magics
参考资料: https://www.jianshu.com/p/81ada9234788 https://my.oschina.net/u/2306127/blog/832510 首先,Cell an ...