单元测试简介
从软件测试V模型,单元测试是软件测试的基础,四个方面看出单元测试的重要性:
1.时间方面—系统集成节约很多的时间
2.测试效果--单元测试是测试阶段基石,能够发现深层次的问题
3.测试成本--单元测试阶段问题容易发现
4.产品质量--单元测试好坏影响软件产品的质量.
图1:软件测试V模型
软件代码越來越多,软件单元越來越多,单元代码越來越复杂。现代编程语言是的单元测试自动化实现变得可能。XUnit框架是eXtreme Programming(XP) 的核心概念。
单元测试工具的一个重要的功能就是测试自动化,测试自动化的基础就是测试框架。最典型和最流行的单元测试是以JUnit测试框架为基础的xUnit测试框架。
XUnit根据语言不同可以分为:JUnit(Java),CppUnit(C++),DUnit(Delphi),NUnit(.Net),PhpUnit(PHP)
按类型不同可以分为:JFCUnit(GUI测试),HttpUnit(对web应用访问进行测试),JWebUnit(对HttpUnit的抽象封装),StrutsTestCase(基于JUnit的Struts应用测试框架),HtmlUnit
1 xUnit单元测试框架
测试软件开发过程中必不可少的一部分,是软件质量保证的重要手段。测试对象:代码,需求文档,设计文档.代码测试:单元测试,集成测试,系统测试和验收测试。eXtremeProgramming—单元测试—xUnit测试框架。TDD以测试为开发中心,XP开发者大多使用开源的测试框架-xUnit家族。
Xunit框架的主要优点是提供了一个自动测试的解决方案。自动测试概念很重要,有了自动测试,我们就可以在开发软件项目中实施持续集成。
1.1 xUnit介绍
KentBeck—Smalltalk Sunit—Erich Gamma-- Junit
框架结构表现的概念--->xUnit:一些简单的编写测试的规则--->移植到三十多种语言中(Python,C++,.NET,Html, JavaScript ,Ruby等)
xUnit是一个基于测试的单元测试框架,运行测试用例,反馈测试结果以及记录测试日志的一系列基础软件设施。TestCase,TestSuite,TestResult,xUnit.framework.Assert,TestResult,TestListener,TestRunner.
图2,xUnit 测试框架
Xunit的原则:
-
先编写测试代码,然后编写符合测试的代码
-
测试代码不需要覆盖所有的细节,但是需要覆盖主要的功能和可能出错的地方
-
发现Bug后,首先编写对应的测试用例,然后在进行调试
-
不断总结出现Bug的原因,