使用Junit进行java代码单元测试。
Junit断言
assertEqual([String message],expected,actual,[tolerance])
assertNull([String message],object)
assertSame([String message],expected,actual) 验证是否引用同一对象
assertNotSame([String message],expected,actual)
assertTrue([String message],boolean condition)
assertFalse([String message],boolean condition)
fail([String message]) 使测试立即失败,可用来测试异常
如果测试失败,先修复失败的测试,再进行原代码新特性的编写
哪些内容需要被测试:
1.Right——结果是否正确?
2.B——是否所有的边界条件都是正确的?
3.I——能查一下反向关联吗?
4.C——能用其他手段交叉检查一下结果吗?
5.E——你是否可以强制错误条件发生?(使用mock,模拟内存耗光,磁盘用满等)
6.P——是否满足性能要求?
如何测试边界条件:
1.一致性——值是否符合预期的格式
2.有序性——一组值是该有序的,还是无序的
3.区间性——值是否在一个合理的最大值和最小值范围之内
4.引用,耦合性——代码是否引用了一些不受代码本身直接控制的外部因素
5.存在性——值是否存在
6.基数性——是否恰好有足够的值
7.时间性——所有的事情是否都是按顺序发生,是否在正确的时间,是否及时
好的单元测试遵循以下准则:
1.自动的
测试可以自动运行,并且自动分析测试结果
2.全面的
测试代码覆盖到每个可能出错的地方。可以使用nounit等工具分析测试覆盖率
3.可重复的
测试代码可以以任意顺序重复运行,不影响测试结果。这意味着每个测试必须独立,而且和环境无关
4.独立的
测试代码必须整洁、专注重点。每一个测试专门测试一件事情。测试必须彼此独立,和环境无关
5.专业的
测试代码必须和产品代码一样专业,包括该有的封装、继承、DRY原则等良好设计。但是不需要测试不太可能存在bug的方法,比如单纯的get/set方法。一般来说,测试代码和产品代码等量或者更多。
测试一个工程
经常测试,确保check in的代码都是测试通过。加强代码review,交流团队经验。
代码设计
1.面向测试的设计。如果一段代码不好进行测试,那么变更代码,使测试变得容易。
2.为测试而重构代码。作为回报,我们获得了一个简洁的设计。
3.测试类的不变性
4.测试驱动的设计
5.测试无效的参数。
分享到:
相关推荐
其中,SET主要负责支持开发人员编写单元测试代码,并提供测试框架;而TE则从用户角度出发,进行自动化测试用例代码编写,评估测试覆盖度并管理测试工作。 接着,书中介绍了软件开发工程师(SWE)在质量保证过程中的...
同步配套实测代码《单元测试的艺术-自学笔记01》第一章:单元测试基础 单元测试是软件开发中的一项基础且关键的实践,它涉及对代码库的各个单元...希望本自学笔记能够帮助学习者在单元测试的旅程上迈出坚实的第一步。
15. **单元测试和持续集成**:C#支持多种单元测试框架,如 MSTest、NUnit、xUnit等,配合持续集成工具(如Jenkins、TeamCity),可以确保代码质量。 在提供的学习笔记中,"20141031-C#高级编程-学习笔记"可能涵盖了...
学习笔记是中级软件设计师在职业发展过程中不可或缺的一部分,它不仅记录了个人在学习过程中的重点、难点和心得体会,也是复习和回顾的重要资料。 在学习笔记中,中级软件设计师需要关注的领域包括但不限于以下几个...
### 软件测试学习笔记知识点详解 #### 一、软件测试基础知识 1. **软件测试定义** - **理解**:软件测试是通过执行软件产品来评估其质量的过程。 - **目的**:确保软件产品能够满足用户的需求并达到预定的质量...
测试流程与方法: 使用Markdown的列表和代码块,详细描述软件测试的典型流程,包括需求分析、测试计划、测试设计、测试执行、缺陷管理等,同时介绍不同类型的测试方法,如单元测试、集成测试、系统测试等。...
在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...
.NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...
模块化编程是软件开发的最佳实践之一,它有助于减少代码重复,使程序更易于理解和测试。 Python提供了多种导入模块的方式。例如,我们可以使用`import`关键字来导入整个模块,如`import math`,然后使用`.`操作符来...
软件测试学习笔记个人总结 软件测试学习笔记是软件测试学习的重要组成部分,涵盖了软件测试的基础知识、测试类型、测试过程模型、测试策略等内容。下面是软件测试学习笔记的详细内容: 一、软件测试基础知识 软件...
其中,单元测试关注代码模块,集成测试验证不同模块的交互,系统测试检查整体功能,而验收测试则确保产品满足用户或客户的需求。 随着软件行业的不断发展,测试职业发展路径也日益丰富,如功能测试工程师、自动化...
UVM 实战学习笔记 UVM(Universal Verification Methodology)是一种通用的验证方法学,旨在提高验证的效率和质量。下面是根据给定的文件信息生成的相关知识点: 1. UVM 工厂机制(Factory Mechanism):UVM 中的...
8. **部署与测试**:最后,书中会讲解如何将开发的应用部署到生产环境,如使用Gunicorn和Nginx,以及如何编写和运行单元测试和集成测试,确保代码质量。 通过这份学习笔记,读者不仅可以了解Flask框架的基本用法,...
### 系统测试学习笔记 #### 一、系统测试概览 **系统测试**是一种重要的软件质量保证活动,旨在验证软件系统的功能、性能以及其他特性是否符合预期的需求规格说明。狭义上的系统测试主要指的是查找软件中的缺陷或...
### 软件测试训练营学习笔记:软件测试员面试问题详解 #### 一、SDLC与STLC的区别 **软件开发生命周期 (SDLC)** 是指为了设计、开发及测试高质量软件所遵循的一系列过程。其核心目标在于确保产出的软件能够满足或...
### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...
当熟练掌握基本模块后,可以探索更复杂的内建模块,如`threading`模块进行多线程编程,`queue`模块实现先进先出(FIFO)的数据结构,或`unittest`模块进行单元测试。 总之,Python的内建模块极大地丰富了其功能,...
pytest是一个功能强大的单元测试框架,支持自动化测试,而且还可以扩展到接口测试和功能测试。Appium是一个用于移动端UI自动化测试的工具,它支持iOS和Android平台上的原生、移动Web和混合应用。 除了测试工具,...
8. **测试与调试**: 使用单元测试、集成测试和UI测试来确保应用的质量。JUnit和Espresso等工具可以帮助开发者编写和执行测试用例,找出并修复潜在问题。 综上所述,“Android--极简笔记App”利用了Material Design...
7. **调试与测试**:掌握GWT的开发模式(Development Mode)和编译模式(Prod Mode),以及如何利用GWT的单元测试框架进行测试。 8. **国际化与本地化**:Gwt-ext支持多语言应用,理解如何实现应用的语言切换和资源...