数据驱动测试(一) – 开篇
(Note: 本篇讨论的是基于数据库的系统的单元测试问题)
这个话题说起来应该是一个老生常谈的话题了,再开此帖是想与大家探讨大家的处理方式,同时也来验证我们团队4年来的做法是不是可以有更多的改进。
在实践的过程中,很多项目并不能有效地坚持单元测试,即使书写了,也不能够持续也去维护这些单元测试,最后,这些单元测试代码将被废弃不再使用。长此以往,团队将不再愿意去写单元测试。
咎其原因,在我看来最重要的不外乎两点。
第一点,也是最重要的一点,团队并没有意识到书写单元测试是一件非常有必要,有意义,有价值的事。这个话题就不展开探讨了,网上一搜一大把。在这里,我分享我最最最喜欢的一句话:越好的单元测试会让我们的老板和我们自己能够睡得越踏实。
第二点,单元测试比较麻烦,编写单元测试麻烦,维护单元测试麻烦。
以我实际工作的经验来看,第二点是确确实实存在的,说是麻烦,还是比较客气的,有的时候在受压于项目进度和项目成本的情况下,几乎可以用做不到来形容。
举两个例子来说明
1. A表的STATUS字段从PENDING改成ACCEPTED
2. 关连A, B, C, D表后实现查询功能
大家会怎么做?
大家的项目中会对这两种情况进行完整的单元测试,并有效地维护了这些单元测试用例吗?
我们项目的做法是
1. 准备数据
2. 每次跑单元测试之前导入这些数据
3. 跑完单元测试之后清理这些数据
欢迎大家一起探讨,特别是结合自己项目中的实际情况一起探讨。
我在接下来的文章中也将我实际使用的方法和工具和大家分享。
大体思路是设计一个工具能基于具体的业务需求方便地准备数据,从而能让单元测试在这些数据的基础上能够有效和低成本地实现。
工具的设计要求是:
1. 能方便地设计和准备测试数据
2. 在数据库变更的情况下能方便地维护已存在的测试数据
3. 测试团队和开发团队都能够方便都使用
4. 所有团队成员之间设计的数据要能够避免冲突
具体实现是:
1. 在Excel中设计数据
2. 能使用一些API在集成工具中导入数据,如Hudson, Ant, Maven
3. 能在图形界面中导入全部或特定测试用例的数据
4. 能自动同步数据库表结构的变更到Excel中
5. 分配指定的主键区间给每一个团队成员
分享到:
相关推荐
在当今时代,数据驱动型企业成为了一个热门话题,尤其在数字经济迅速发展的背景下,数据驱动型企业的重要性愈发凸显。这份报告详细阐述了数据驱动型企业成长路径的研究成果,并对行业发展趋势进行了展望。 首先,...
报告还分析了数据驱动型企业的成长路径,认为这一路径通常遵循数据产生、管理、分析到应用的模式,各个阶段相互影响和促进。技术革新与组织文化的变革是并行不悖的,只有从战略层面推动,才能确保数据驱动高效落地。...
【数据治理实践】第一期:银行业数据治理实践难点及应对系列文章开篇,揭示了在全球范围内,数据治理已经成为高层讨论的重要议题,特别是在金融行业中,尤其是银行业。随着互联网金融的发展和新兴技术的推动,银行业...
测试方案的概述是测试方案的开篇部分,主要介绍测试的目的、范围和基本原则。测试的目的通常是为了验证系统的正确性、可靠性和性能,而范围则是明确测试的对象和边界。基本原则则是确保测试的公平、公正和独立。 被...
开篇——数据结构在学什么? 数据结构是计算机科学中的一个重要分支,它是研究如何在计算机中组织和存储数据,以便高效地访问和处理这些数据的学科。数据结构的学习旨在帮助我们理解和解决现实世界中的问题,将复杂...
【标题】和【描述】提及的是一个关于"任务驱动型作文"的教学材料,特别是针对权衡类开篇的写作指导。这种类型的作文要求学生在给定的新闻事件中进行选择,考虑哪个事件更能体现人性的温暖和社会的温情,并在文章中...
本书开篇首先介绍了软件测试的基本概念和技术,包括但不限于: - **黑盒测试**:关注软件的功能性需求,不考虑内部结构。 - **白盒测试**:深入了解软件内部结构,对代码进行细致检查。 - **灰盒测试**:结合黑盒和...
该课程的开篇部分通常会介绍驱动程序的基本概念和分类,包括系统驱动、设备驱动、用户模式驱动和内核模式驱动。系统驱动主要处理系统级的服务,而设备驱动则针对特定硬件设备。用户模式驱动运行在用户空间,安全性较...
本报告针对一个特定的图书管理系统进行了详尽的测试分析,覆盖了测试的目的、环境、人员、进度、参考文档、数据以及最终的总结与建议。以下是对报告中关键知识点的深入解读。 ### 一、测试目的明确 报告开篇即明确...
4. **量化分析**:这一部分提供了测试数据的量化展示,如缺陷数据(总数、新发现的、已修复的、未解决的等)、偏差原因分析(对比预期结果与实际结果的差距及其原因)以及对策或调整措施(针对测试过程中发现的问题...
基本信息是系统集成测试报告的开篇部分,涵盖了项目的基本信息,包括项目名称、版本号、开始测试日期、结束测试日期、测试负责人、参加测试人员姓名、邮件地址、MSN 联系方式等。这些信息为读者提供了项目的概况,...
引言是测试计划模板的开篇,它的主要作用是对测试计划的背景、目的、范围和定义进行介绍。引言中通常包括测试计划的编写目的、背景、定义和参考资料等信息。 测试任务安排是测试计划模板的核心部分,它对测试任务的...
手机软件测试报告是软件开发过程中不可或缺的一个环节,它详尽记录了软件在不同阶段的测试结果,帮助开发者和管理者了解产品的质量状况,发现并解决潜在问题。以下是对这份"XXX 手机软件测试报告"模板的详细解读: ...
以下是一份规范的测试报告模板的详细内容: 1. 项目简介 这部分是测试报告的开篇,主要介绍被测试项目的背景、目标、范围以及在项目开发过程中的重要里程碑。它应包括项目的名称、开发团队、项目负责人、测试团队等...
机器学习是计算机科学的一个分支,它涉及数据驱动的模型构建,通过分析大量数据来学习规律并做出预测或决策。在“01 机器学习开篇1”中,我们主要探讨了两种主流的方法论:频率主义派和贝叶斯派,以及它们在统计机器...
这一步骤是将理论转化为实际操作的关键,涉及模型验证、数据加载测试等一系列活动。 ### 四、架构与基础设施 #### 7. 数据仓库架构概览 第八章至第十二章,详细解析数据仓库的架构设计,涵盖了从后端技术架构到...
通过提问三部曲:WHAT->HOW->WHY,可以帮助我们一步步地从事物的表象深入到事物的本质。比如学习一个新的技术框架,需要逐步搞清楚她是什么、如何使用、为什么这样设计,由浅入深。“WHY+HOW+WHAT”,是笔者最钟爱的...
松下伺服电机驱动器使用手册是一份详细指导用户如何正确安装、配置和操作松下伺服电机驱动器的文档。手册详细介绍了伺服电机的工作原理、工作过程以及驱动器的控制方式。同时,针对不同的工作模式,提供了如何对伺服...