﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-咚咚咚-文章分类-AutomatedTesting </title><link>http://www.cnitblog.com/tab1002/category/1549.html</link><description>静静聆听内心世界的声音　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
常常有令人欢喜的旋律响起




　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　可以简单、可以深沉





　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　可以抒情、可以喧哗</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 08:34:42 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 08:34:42 GMT</pubDate><ttl>60</ttl><item><title>回归测试</title><link>http://www.cnitblog.com/tab1002/articles/5176.html</link><dc:creator>咚咚咚</dc:creator><author>咚咚咚</author><pubDate>Mon, 05 Dec 2005 03:23:00 GMT</pubDate><guid>http://www.cnitblog.com/tab1002/articles/5176.html</guid><wfw:comment>http://www.cnitblog.com/tab1002/comments/5176.html</wfw:comment><comments>http://www.cnitblog.com/tab1002/articles/5176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tab1002/comments/commentRss/5176.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tab1002/services/trackbacks/5176.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%"><SPAN class=smalltxt1><B><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 10.5pt; mso-ansi-font-size: 10.5pt"><FONT size=2>软件回归测试及其实践</FONT></SPAN></B></SPAN><B><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><BR></SPAN></B><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">来源：赛宝软件评测中心</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">作者：信息产业部电子第五研究所</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">李丹</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">刘杰</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>摘要：本文描述了软件回归测试的概念和进行回归测试的基本步骤，介绍了可用于回归测试的测试用例库的维护方法，给出了几种可以可保证回归测试效率和有效性的回归测试策略，总结了回归测试时应该注意的一些实际问题。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>关键词：回归测试；测试用例；基线测试用例库</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>Software Regression Testing and It’s Practice <BR>Abstract</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>：</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">The article present the conception of regression testing and the step of executing this testing. Introduce how to maintenance the test case library which used in regression testing ,and provide the method of ensure regression testing’s validity. Finally, it gives some problem must be careful in the period of regression testing. <BR>Keywords</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">：</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">regression testing</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">；</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">test case</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">；</SPAN></FONT><FONT size=2><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">baseline test case library <BR></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">作者简介：李丹（</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">1978-</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">），女，江苏如东人，信息产业部电子第五研究所助理工程师，从事软件可靠性研究及测试工作。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">一、</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">概述</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B></FONT><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><BR></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>在软件生命周期中的任何一个阶段，只要软件发生了改变，就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改，也有可能是因为在集成或维护阶段加入了新的模块。当软件中所含错误被发现时，如果错误跟踪与管理系统不够完善，就可能会遗漏对这些错误的修改；而开发者对错误理解的不够透彻，也可能导致所做的修改只修正了错误的外在表现，而没有修复错误本身，从而造成修改失败；修改还有可能产生副作用从而导致软件未被修改的部分产生新的问题，使本来工作正常的功能产生错误。同样，在有新代码加入软件的时候，除了新加入的代码中有可能含有错误外，新代码还有可能对原有的代码带来影响。因此，每当软件发生变化时，我们就必须重新测试现有的功能，以便确定修改是否达到了预期的目的，检查修改是否损害了原有的正常功能。同时，还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">回归测试在软件生命周期中扮演着重要的角色，因忽视回归测试而造成严重后果的例子不计其数，导致阿里亚娜</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">5</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">型火箭发射失败的软件缺陷就是由于复用的代码没有经过充分的回归测试造成的。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>回归测试作为软件生命周期的一个组成部分，在整个软件测试过程中占有很大的工作量比重，软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中，新版本的连续发布使回归测试进行的更加频繁，而在极端编程方法中，更是要求每天都进行若干次回归测试。因此，通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">二、</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">回归测试策略</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B></FONT><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><BR></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">对于一个软件开发项目来说，项目的测试组在实施测试的过程中会将所开发的测试用例保存到</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">“</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">测试用例库</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">”</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">中，并对其进行维护和管理。当得到一个软件的基线版本时，用于基线版本测试的所有测试用例就形成了基线测试用例库。在需要进行回归测试的时候，就可以根据所选择的回归测试策略，从基线测试用例库中提取合适的测试用例组成回归测试包，通过运行回归测试包来实现回归测试。保存在基线测试用例库中的测试用例可能是自动测试脚本，也有可能是测试用例的手工实现过程。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>回归测试需要时间、经费和人力来计划、实施和管理。为了在给定的预算和进度下，尽可能有效率和有效力地进行回归测试，需要对测试用例库进行维护并依据一定的策略选择相应的回归测试包。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>1</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、测试用例库的维护</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>为了最大限度地满足客户的需要和适应应用的要求，软件在其生命周期中会频繁地被修改和不断推出新的版本，修改后的或者新版本的软件会添加一些新的功能或者在软件功能上产生某些变化。随着软件的改变，软件的功能和应用接口以及软件的实现发生了演变，测试用例库中的一些测试用例可能会失去针对性和有效性，而另一些测试用例可能会变得过时，还有一些测试用例将完全不能运行。为了保证测试用例库中测试用例的有效性，必须对测试用例库进行维护。同时，被修改的或新增添的软件功能，仅仅靠重新运行以前的测试用例并不足以揭示其中的问题，有必要追加新的测试用例来测试这些新的功能或特征。因此，测试用例库的维护工作还应包括开发新测试用例，这些新的测试用例用来测试软件的新特征或者覆盖现有测试用例无法覆盖的软件功能或特征。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>测试用例的维护是一个不间断的过程，通常可以将软件开发的基线作为基准，维护的主要内容包括下述几个方面。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(1)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、删除过时的测试用例</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>因为需求的改变等原因可能会使一个基线测试用例不再适合被测试系统，这些测试用例就会过时。例如，某个变量的界限发生了改变，原来针对边界值的测试就无法完成对新边界测试。所以，在软件的每次修改后都应进行相应的过时测试用例的删除。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(2)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、改进不受控制的测试用例</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>随着软件项目的进展，测试用例库中的用例会不断增加，其中会出现一些对输入或运行状态十分敏感的测试用例。这些测试不容易重复且结果难以控制，会影响回归测试的效率，需要进行改进，使其达到可重复和可控制的要求。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(3)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、删除冗余的测试用例</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>如果存在两个或者更多个测试用例针对一组相同的输入和输出进行测试，那么这些测试用例是冗余的。冗余测试用例的存在降低了回归测试的效率。所以需要定期的整理测试用例库，并将冗余的用例删除掉。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(4)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、增添新的测试用例</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>如果某个程序段、构件或关键的接口在现有的测试中没有被测试，那么应该开发新测试用例重新对其进行测试。并将新开发的测试用例合并到基线测试包中。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>通过对测试用例库的维护不仅改善了测试用例的可用性，而且也提高了测试库的可信性，同时还可以将一个基线测试用例库的效率和效用保持在一个较高的级别上。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>2</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、回归测试包的选择</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>在软件生命周期中，即使一个得到良好维护的测试用例库也可能变得相当大，这使每次回归测试都重新运行完整的测试包变得不切实际。一个完全的回归测试包括每个基线测试用例，时间和成本约束可能阻碍运行这样一个测试，有时测试组不得不选择一个缩减的回归测试包来完成回归测试。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时，有可能删除了将揭示回归错误的测试用例，消除了发现回归错误的机会。然而，如果采用了代码相依性分析等安全的缩减技术，就可以决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>选择回归测试策略应该兼顾效率和有效性两个方面。常用的选择回归测试的方式包括：</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(1)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、再测试全部用例</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>选择基线测试用例库中的全部测试用例组成回归测试包，这是一种比较安全的方法，再测试全部用例具有最低的遗漏回归错误的风险，但测试成本最高。全部再测试几乎可以应用到任何情况下，基本上不需要进行分析和重新开发，但是，随着开发工作的进展，测试用例不断增多，重复原先所有的测试将带来很大的工作量，往往超出了我们的预算和进度。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(2)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、基于风险选择测试</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>可以基于一定的风险标准来从基线测试用例库中选择回归测试包。首先运行最重要的、关键的和可疑的测试，而跳过那些非关键的、优先级别低的或者高稳定的测试用例，这些用例即便可能测试到缺陷，这些缺陷的严重性也仅有三级或四级。一般而言，测试从主要特征到次要特征。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(3)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、基于操作剖面选择测试</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>如果基线测试用例库的测试用例是基于软件操作剖面开发的，测试用例的分布情况反映了系统的实际使用情况。回归测试所使用的测试用例个数可以由测试预算确定，回归测试可以优先选择那些针对最重要或最频繁使用功能的测试用例，释放和缓解最高级别的风险，有助于尽早发现那些对可靠性有最大影响的故障。这种方法可以在一个给定的预算下最有效的提高系统可靠性，但实施起来有一定的难度。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(4)</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、再测试修改的部分</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>当测试者对修改的局部化有足够的信心时，可以通过相依性分析识别软件的修改情况并分析修改的影响，将回归测试局限于被改变的模块和它的接口上。通常，一个回归错误一定涉及一个新的、修改的或删除的代码段。在允许的条件下，回归测试尽可能覆盖受到影响的部分。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>再测试全部用例的策略是最安全的策略，但已经运行过许多次的回归测试不太可能揭示新的错误，而且很多时候，由于时间、人员、设备和经费的原因，不允许选择再测试全部用例的回归测试策略，此时，可以选择适当的策略进行缩减的回归测试。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>3</FONT></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>、回归测试的基本过程</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>有了测试用例库的维护方法和回归测试包的选择策略，回归测试可遵循下述基本过程进行</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">: <BR>(1). </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">识别出软件中被修改的部分；</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(2). </FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">从原基线测试用例库</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">中，排除所有不再适用的测试用例，确定那些对新的软件版本依然有效的测试用例，其结果是建立一个新的基线测试用例库</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T0</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(3). </FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">依据一定的策略从</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T0</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">中选择测试用例测试被修改的软件。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(4). </FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">如果必要，生成新的测试用例集</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T1</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">，用于测试</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T0</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">无法充分测试的软件部分。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>(5). </FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">用</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">T1</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">执行修改后的软件。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">第</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">(2)</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">和第</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">(3)</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">步测试验证修改是否破坏了现有的功能，第</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">(4)</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">和第</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">(5)</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">步测试验证</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">修改工作本身。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">三、</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">回归测试实践</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN></B></FONT><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><BR></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>在实际工作中，回归测试需要反复进行，当测试者一次又一次地完成相同的测试时，这些回归测试将变得非常令人厌烦，而在大多数回归测试需要手工完成的时候尤其如此，因此，需要通过自动测试来实现重复的和一致的回归测试。通过测试自动化可以提高回归测试效率。为了支持多种回归测试策略，自动测试工具应该是通用的和灵活的，以便满足达到不同回归测试目标的要求。</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> <BR></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">在测试软件时，应用多种测试技术是常见的。当测试一个修改了的软件时，测试者也可能希望采用多于一种回归测试策略来增加对修改软件的信心。不同的测试者可能会依据自己的经验和判断选择不同的回归测试技术和策略。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>回归测试并不减少对系统新功能和特征的测试需求，回归测试包应包括新功能和特征的测试。如果回归测试包不能达到所需的覆盖要求，必须补充新的测试用例使覆盖率达到规定的要求。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">回归测试是重复性较多的活动，容易使测试者感到疲劳和厌倦，降低测试效率，在实际工作中可以采用一些策略减轻这些问题。例如，安排新的测试者完成手工回归测试，分配更有经验的测试者开发新的测试用例，编写和调试自动测试脚本，做一些探索性的或</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">ad hoc</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">测试。还可以在不影响测试目标的情况下，鼓励测试者创造性地执行测试用例，变化的输入、按键和配置能够有助于激励测试者又能揭示新的错误。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>在组织回归测试时需要注意两点，首先是各测试阶段发生的修改一定要在本测试阶段内完成回归，以免将错误遗留到下一测试阶段。其次，回归测试期间应对该软件版本冻结，将回归测试发现的问题集中修改，集中回归。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>在实际工作中，可以将回归测试与兼容性测试结合起来进行。在新的配置条件下运行旧的测试可以发现兼容性问题，而同时也可以揭示编码在回归方面的错误。</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR></SPAN></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2>参考文献：</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>[1] Glenford J.Myers</FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">，计算机软件测试技巧，清华大学出版社，</SPAN><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">1985</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>[2] Robert V. Binder</FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">，面向对象系统的测试，人民邮电出版社，</SPAN><?xml:namespace prefix = st2 ns = "Tencent" /><st2:RTX w:st="on"><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">2001</SPAN></st2:RTX><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">。</SPAN></FONT><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><FONT size=2> </FONT><SPAN lang=EN-US><BR><FONT size=2>[3] Rex Black</FONT></SPAN></SPAN><FONT size=2><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">，</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">测试流程管理，北京大学出版社，</SPAN><st2:RTX w:st="on"><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt">2001</SPAN></st2:RTX><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma; mso-bidi-font-size: 10.5pt">。</SPAN></FONT><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt"><BR><FONT size=2>[ Last edited by songfun on <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="6" Year="2004">2004-6-30</st1:chsdate> at 14:25 ]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P><img src ="http://www.cnitblog.com/tab1002/aggbug/5176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tab1002/" target="_blank">咚咚咚</a> 2005-12-05 11:23 <a href="http://www.cnitblog.com/tab1002/articles/5176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试自动化</title><link>http://www.cnitblog.com/tab1002/articles/5175.html</link><dc:creator>咚咚咚</dc:creator><author>咚咚咚</author><pubDate>Mon, 05 Dec 2005 03:22:00 GMT</pubDate><guid>http://www.cnitblog.com/tab1002/articles/5175.html</guid><wfw:comment>http://www.cnitblog.com/tab1002/comments/5175.html</wfw:comment><comments>http://www.cnitblog.com/tab1002/articles/5175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tab1002/comments/commentRss/5175.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tab1002/services/trackbacks/5175.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 测试自动化的意义　　软件测试的工作量很大，据统计，测试时间会占到总开发时间的40%，一些可靠性要求非常高的软件，测试时间甚至占到总开发时间的60%。但测试却是在整个软件过程中极有可能应用计算机进行自动化的工作，原因是测试的许多操作是重复性的、非智力创造性的、需要细致注意力的工作，而计算机就最适合于代替人类去完成这些任务。　　测试自动化是通过开发和使用一些工具自动测试软件系统，特别适合于测试...&nbsp;&nbsp;<a href='http://www.cnitblog.com/tab1002/articles/5175.html'>阅读全文</a><img src ="http://www.cnitblog.com/tab1002/aggbug/5175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tab1002/" target="_blank">咚咚咚</a> 2005-12-05 11:22 <a href="http://www.cnitblog.com/tab1002/articles/5175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自动化测试实例分析</title><link>http://www.cnitblog.com/tab1002/articles/5174.html</link><dc:creator>咚咚咚</dc:creator><author>咚咚咚</author><pubDate>Mon, 05 Dec 2005 03:17:00 GMT</pubDate><guid>http://www.cnitblog.com/tab1002/articles/5174.html</guid><wfw:comment>http://www.cnitblog.com/tab1002/comments/5174.html</wfw:comment><comments>http://www.cnitblog.com/tab1002/articles/5174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/tab1002/comments/commentRss/5174.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/tab1002/services/trackbacks/5174.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">软件测试是对创造力和智力非常有挑战性的任务。测试一个大型软件需要的智能要超过设计这个程序的智能。软件在它发行之前应当通过彻底的测试，以保证它的可靠性和功能性，不幸的是，测试工程师要覆盖一个大型程序的所有情况会感到太麻烦和太费时。确实，软件的每个部分如能被分别测试到，同时一些指定的路径也能被测试，这对总的软件质量的保障是非常有效的。</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">一般的说，没有测试覆盖分析工具，软件在发行前仅有</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">50%</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">的源程序被测试过。在差不多有一半源代码没有被测试的情况下，大量的故障（</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">bug</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">）随软件一道被发行出去。在这种情况下，软件的质量、性能和功能不可能得到保障。此外，什么时候测试结束？或是否要对该程序作进一步的测试？对于测试工程师和测试管理人员来说是不知道的，通过引进测试覆盖的概念，问题就可以得到解决。</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=1><B><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">项目测试管理</SPAN></B><B><SPAN style="COLOR: black; mso-bidi-font-size: 10.5pt"> </SPAN></B></FONT><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><BR></SPAN><FONT size=1><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">　　</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">1.</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">帮助软件管理者准确地测算开发组的效率的，通过提供多层分析</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">,</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">包括系统</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">/</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">文件</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">/</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">类</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">/</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">函数的能力。</SPAN></FONT><FONT size=1><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"> <BR></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">　　</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">2.</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">提供管理人员测算工程开发进度与质量分析的能力，允许在被生成的类继承图和函数调用图上，直接反显所有在规定的日期或一个小组</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">/</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">单个员工完成的模块，在这些图上带有覆盖在每个类</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">/</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">函数框上以条形图方式显示的相关质量信息，比如大小、复杂性、数据性能、代码测试覆盖等。</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=1><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">3. </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">结合软件系统质量分析能力和系统开发管理能力，提供给管理人员的带有质量数据的有关开发效率和工程开发进度信息总是即时的和精确的，因为它们是直接从源代码得来的第一手信息。　　</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=1><B><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">测试计划</SPAN></B><B><SPAN style="COLOR: black; mso-bidi-font-size: 10.5pt"> </SPAN></B></FONT><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><BR></SPAN><FONT size=1><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">　　软件系统不仅变得越来越庞大，但是也变得越来越复杂。复杂的代码是很难阅读、理解和修改的；必须化更多的精力去测试、维护和再测试。测试复杂性分析能帮助软件工程师容易并精确地去计划他们的测试活动。</SPAN><SPAN style="COLOR: black; mso-bidi-font-size: 10.5pt"> </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">提供系统级复杂性分析和过程级复杂性分析去精确地测量复杂性，帮助工程师更好地计划他们的测试活动。帮助工程师更好估计和使用测试复杂性度量，为满足不同层次的测试覆盖的要求，必需提供：块测试复杂性、分支测试复杂性、段测试复杂性、条件</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">-</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">判定测试复杂性、条件</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt">-</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">段测试复杂性。测试复杂性的值取决于用于记录对应的测试覆盖数据的插装点的点数</SPAN><SPAN lang=EN-US style="COLOR: black; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>　　<B>测试用例管理 </B></FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　<SPAN lang=EN-US>1. OO-Test</SPAN>提供了在国内外市场上最全面的测试覆盖分析能力，去满足不同的测试覆盖需求：<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●类的测试覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●函数的测试覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●块的覆盖</FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　●循环边界的覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●分支的覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●段的覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●条件（判定）的覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>●段<SPAN lang=EN-US>--</SPAN>条件的覆盖<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><FONT size=1><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">2</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">．<SPAN lang=EN-US>TCA</SPAN>能确定每一个测试用例作用的范围，通过给出的测试用例就能确定被测试的类，或函数，或段。这种功能对于评估测试用例的效率，和对于修改以后指定的类或函数或段的再测试是非常有用的。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><FONT size=1><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">3</SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">．此外，<SPAN lang=EN-US>TCA</SPAN>能从初始测试用例中自动地抽取最小测试用例集，并对基于类的、函数的、分支的、块的、段的覆盖等等各自分别进行划分。它可以对系统级的再测试节省大量的时间和费用。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>训练新成员<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></B></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><FONT size=1><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">1. </SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">提供全面的静态和动态系统分析的能力，能抽取各种信息及自动生成系统文档，并且可以使被抽取的信息让新成员联机访问，大大的节省了设计人员和工程师的时间。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>2.</FONT></SPAN><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>通过提供最新的和精确的各种系统概貌图和流程图<SPAN lang=EN-US>(</SPAN>包括数据结构、类继承图、函数调用图和程序树<SPAN lang=EN-US>)</SPAN>，全局数据分析的详细报告，详细的程序逻辑图和源代码的控制流程图，帮助他们了解系统和深入地理解代码。</FONT><FONT size=1><SPAN lang=EN-US> <BR></SPAN>　　<SPAN lang=EN-US>3.</SPAN>使用的<SPAN lang=EN-US>GUI</SPAN>接口<SPAN lang=EN-US>,</SPAN>使开发组的新成员容易自我训练；具有一个从顶层到详细的代码系统动态的和图形化的表达能力；具有链接不同层次的结构图和流程图在一起的能力。 </FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　<SPAN lang=EN-US>4.</SPAN>提供基于函数分析和流程图化的能力与基于类分析和流程图化的能力，使得一个面向对象的系统很容易被透彻地了解。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>单元测试的考虑单元测试是要检验程序最小单位（模块）有无错误，它是在编码完成后，首先要施行的测试工作。一般由编码人员自己来完成，因而通常把单元测试看成是编码步骤的附属品。单元测试大多从程序的内部结构出发设计测试用例，即采用白盒测试方法，多个程序模块可以并行地独立开展测试工作。　　<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>单元测试是针对每个程序模块，解决<SPAN lang=EN-US>5</SPAN>个方面的问题：模块接口、局部数据结构、边界条件、独立的路径和错误处理。 </FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　<SPAN lang=EN-US>1.</SPAN>模块接口<SPAN lang=EN-US>:</SPAN>　　<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>对模块接口的测试，是检查进出程序单元的数据流是否正确。对模块接口数据流的测试必须在任何其他测试之前进行，因为如果不能确保数据正确地输入和输出的话，所有的测试都是没有意义的。</FONT><FONT size=1><SPAN lang=EN-US> <BR></SPAN>　　<SPAN lang=EN-US>2.</SPAN>局部数据结构</FONT><FONT size=1><SPAN lang=EN-US>:<BR></SPAN>　　在模块工作过程中，必须测试其内部的数据能否保持完整性，包括内部数据的内容、形式及相互关系不发生错误。</FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　<SPAN lang=EN-US>3.</SPAN>独立的路径</FONT><FONT size=1><SPAN lang=EN-US>:<BR></SPAN>　　在单元测试中，最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。</FONT><FONT size=1><SPAN lang=EN-US> <BR></SPAN>　　<SPAN lang=EN-US>4.</SPAN>边界条件</FONT><FONT size=1><SPAN lang=EN-US>:<BR></SPAN>　　软件常常在边界地区发生问题。</FONT><SPAN lang=EN-US><BR></SPAN><FONT size=1>　　<SPAN lang=EN-US>5. </SPAN>错误处理<SPAN lang=EN-US>:<o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>测试出错处理的要点是模块在工作中发生了错误，其中的出错处理设施是否有效。</FONT><FONT size=1><SPAN lang=EN-US> <BR></SPAN>　　<B>单元测试的过程</B>　　<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>单元测试常常和代码编写同步进行，在完成了程序编写、复查和语法正确性验证后，就应进行单元测试用例设计。在对每个模块进行单元测试时，不能完全忽视它们和周围模块的相互联系。为模拟这一联系，在进行单元测试时，需设置若干辅助测试模块。辅助模块有两种，一种是驱动模块（<SPAN lang=EN-US>driver</SPAN>），用以模拟被测模块的上级模块。驱动模块在单元测试中接受测试数据，把相关的数据传送给被测模块，启动被测模块，并打印出相应的结果。另一种是桩模块（<SPAN lang=EN-US>stub</SPAN>），用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用，它们一般只进行很少的数据处理，例如打印入口和返回，以便于检验被测模块与其下级模块的接口。<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="BACKGROUND: white; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><FONT size=1>　　驱动器和桩都是额外的开销，这两种模块虽然在单元测试中必须编写，但却不作为最终的软件产品提供用户。如果驱动器和桩很简单的话，那么开销相对较低，然后，使用“简单”的模块是不可能进行足够的单元测试的，模块间接口的全面检验要推迟到集成测试时进行。 <SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P><img src ="http://www.cnitblog.com/tab1002/aggbug/5174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/tab1002/" target="_blank">咚咚咚</a> 2005-12-05 11:17 <a href="http://www.cnitblog.com/tab1002/articles/5174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>