文档介绍:DbTools DbTools 工具介绍工具介绍--- ---崔崔双佳双佳@ @ c 概要说明概要说明?? DbTools DbTools 开发背景介绍开发背景介绍??软件开发过程中可能出现的软件开发过程中可能出现的 15 15 个案例个案例?? DbTools DbTools 工具开发目的工具开发目的?? DbTools DbTools 带来的效益带来的效益?? DbTools DbTools 画面画面?? DbTools DbTools 视频教程视频教程 DbTools DbTools 开发背景介绍开发背景介绍以前的以前的 batool batool 项目,单体测试时,造数据,导数据麻烦,只要修改项目,单体测试时,造数据,导数据麻烦,只要修改过过 IOT IOT 文件,就需要担当者重新将所有测试点跑一遍文件,就需要担当者重新将所有测试点跑一遍。。我和我的同事们深受导数据的痛苦。我和我的同事们深受导数据的痛苦。单体测试如右图所示: 单体测试如右图所示: 因为需要不停的复制数据,粘贴数据,提交数据。因为需要不停的复制数据,粘贴数据,提交数据。因因为为单体测试试样书单体测试试样书里已经有数据了, 里已经有数据了, 为何不实现将试样书的里数据自动同步到数据库中。为何不实现将试样书的里数据自动同步到数据库中。所所以以为为了了一劳永逸,要进行工具化,减轻体力活。一劳永逸,要进行工具化,减轻体力活。案例案例 1 1 ??小小A A小小B B在同一个数据库用户下操作数据, 在同一个数据库用户下操作数据, 小小A A发现自己插入发现自己插入 X X表中的数据总是过一段表中的数据总是过一段时间被别人删除。小时间被别人删除。小 B B发现发现 X X表中的数据总表中的数据总有新增加的脏数据,删除完了还有新插入有新增加的脏数据,删除完了还有新插入的进来。两人就这样死循环下去。若是两的进来。两人就这样死循环下去。若是两人异地远程防问数据库,如何解决人异地远程防问数据库,如何解决? ? ??问题: 问题: 如何知道某一时刻,谁动了我的表数据? 如何知道某一时刻,谁动了我的表数据? 案例案例 2 2 ??某银行系统需要测试性能,没有给数据, 某银行系统需要测试性能,没有给数据, 让开发人员自己造百万数据,由于是多表让开发人员自己造百万数据,由于是多表连接,通过多个主连接,通过多个主 key key 关联的。关联的。??问题: 问题: 如何造出上百万条附合条件的数据? 如何造出上百万条附合条件的数据? BATCH BATCH ? ? VBA VBA ? ? CSV CSV ?。。。?。。。案例案例 3 3 ??某保守项目,发现程序错误了,但不巧的某保守项目,发现程序错误了,但不巧的是原担当出差了。是原担当出差了。??问题: 问题: 如何减少新担当,改错现象的发生? 如何减少新担当,改错现象的发生? 案例案例 4 4 ??异地开发时,检收者根据业务需求,自己异地开发时,检收者根据业务需求,自己重新造了数据,发现了错误,但是担当因重新造了数据,发现了错误,但是担当因没有检收者新造的数据,再现不出错误。没有检收者新造的数据,再现不出错误。??问题: 问题: 如何快速将检收者造的数据传给担当者? 如何快速将检收者造的数据传给担当者? 案例案例 5 5 ??大多数时,一本机能离不开业务, 大多数时,一本机能离不开业务, 业务离不开表结构。在写试样书时,会把该业务离不开表结构。在写试样书时,会把该机能用到的所有表名写在设计书中。机能用到的所有表名写在设计书中。??问题: 问题: 如何让担当者快速掌握表结构和表与表之间如何让担当者快速掌握表结构和表与表之间的关系? 的关系? 案例案例 6 6 ??不管什么项目,大多数无非就是增删改查不管什么项目,大多数无非就是增删改查数据库中的数据,所以在单体测试的时候数据库中的数据,所以在单体测试的时候都要对程序执行前执行后的数据进行比较。都要对程序执行前执行后的数据进行比较。??问题: 问题: 程序执行前后数据库状态会发生哪些变化程序执行前后数据库状态会发生哪些变化是手动标出变化的项目和记录吗? 是手动标出变化的项目和记录吗? 案例案例 7 7 ??某项目中,客户要求提供每本机能,每个某项目中,客户要求提供每本机能,每个 case case 点的数据点的数据 SQL SQL (数据的(数据的 INSERT INSERT 文)。文)。测试者,每个测试者,每个 case case 都需要手动导出都需要手动导出 SQL SQL 文文(体力活)。(体力活)。??问题: 问题: 有数据库,有数据, 有数据库,有数据, SQL SQL 不可以自动生成吗? 不可以自动生成吗?