VS 2005 Team Suite 轻松搞定白盒测试

【软件测试-实验-1】逻辑覆盖测试方法 一、实验目的 1、能熟练应用白盒测试技术(逻辑覆盖方法)进行测试用例设计。 2、对测试用例进行优化设计。 二、实验环境 操作系统:Windows XP,Windows 7,Windows 10 应用系统:Visual C++开发工具和Office工具 三、实验任务 题目一:使用逻辑覆盖测试方法测试以下程序段 说明: 程序段中每行开头的数字(1~10)是对每条语句的编号。 (1)画出程序的控制... 阅读详情

注:此文的Word版本首次发表于:

http://bbs.5etesting.com/viewthread.php?tid=18&highlight=%B0%D7%BA%D0%B2%E2%CA%D4

VS 2005 Team Suite轻松搞定白盒测试

(此文已于《测试天地》杂志发表,如需转载,请与作者联系:QuickTest@yahoo.cn)

(注:这里图片显示不出来,有兴趣的英雄可以联系我,共同切磋)

【摘要】本文将介绍VSTS强大的单元测试创建功能和具体实例,结合黑盒测试与白盒测试的测试用例设计方法,有效完成单元测试,在软件研发前期就发现缺陷,从而有力保证软件质量的具体操作方法。

 

关键词:  VSTS 单元测试 缺陷 软件质量

 

在开始本文之前,我们有必要先探讨几个问题:

²       为什么需要做单元测试?

²       单元测试应该让谁来完成?

²       做单元测试的工具有哪些?

 

一.引言

笔者就自己对于单元测试的认识,简单做如下回答:

ü        我们熟知的“软件测试的10大原则”中第一条就是“测试是一个持续进行的过程,而不是一个阶段”,就是说软件测试需要尽早的参与研发投入,V&V模型就很好的为我们描述了这个观点。根据缺陷放大理论,在白盒测试阶段发现BUG是投入成本最低也是最高效的。

ü        51testing的论坛上有一个贴,讨论过这个问题,笔者发现大多数的公司根本不进行白盒测试,或者进行白盒测试的也是开发人员完成的。更为奇怪的是,我在几年前参加的程序员考试竟然也认为应该把单元测试的任务移交给开发人员。

笔者认为,测试人员之所以选择测试,就是因为我们比开发人员更加具有对于缺陷的敏感性,并且对缺陷的认识程度远高于开发人员;另外,开发人员对于自己开发的程序具有很显著的思维定势,单元测试的职责理所应当让测试人员来完成。

ü        单元测试的工具主流的是XUnit,还有C++Test、Insure++、CompuwareDevParterner、Purify、PC-Lint、LogiScope、TestBed等也是很强大的单元测试工具,另外基于Java也有自己的工具:Agitator。此外,笔者曾用高级语言调用TCL编译器,在TCL脚本语言环境创建单元测试用例也是个不错的选择。

 

二.VSTS单元测试简介

Team版的VS2005里面包含了完整的Test功能,具体有:Unit Test,WebTest和LoadTest。这一整套的测试基本涵盖了软件开发会使用到的测试功能。

今天要介绍的是VSTS自带的单元测试工具(Unit Test),它最大的好处就是与开发的代码无缝连接,并且能自动创建单元测试环境,能够让不懂编程的测试人员也轻松进行单元测试。

 

三.测试实战

下面我们就通过一个实例来具体体验VSTS单元测试。

在测试过程中,将按照如下顺序进行:

被测系统简介->被测试函数分析->测试用例的编写(黑盒/白盒测试方法)->进行单元测试

 

1.     被测系统简介

被测系统是“快速价格查询系统”,通过选定座位号的两个值,系统自动算出价格(界面如下图)。“座位号”下拉框的可选范围分别为“A”~“F”和“0”~“9”

如上图所示,“应付价格”=“价格基数”ד座位号权值”

 

2.     被测试函数分析

我们需要测试的就是权值计算的函数,开发人员在函数申明中是这样描述的:

       //权值计算

       /// <summary>

       /// 如果X是A、F,则靠窗,纵向权值=1.8

       /// 如果X是B、E,则靠中间,纵向权值=1.2

       /// 如果X是C、D,则靠走廊,纵向权值=0.9

       /// 如果Y是0~2,则靠头部,横向权值=1.6

       /// 如果Y是7~9,则靠尾部,横向权值=0.7

       /// 如果Y是3~6,则靠中间,横向权值=1.1

       /// 权值=纵向权值*横向权值

       /// </summary>

        ///<param name="x">纵列值</param>

///<param name="y">横列值</param>

staticdouble position(char x,int y)

{

……

}

 

3.     测试用例的编写(黑盒测试方法)

也许有人会产生疑问:单元测试怎么可以用黑盒测试方法设计测试用例呢?黑盒测试不是做系统测试的吗?

      其实我觉得测试方法都是一家,我们在设计用例的时候要秉承一个原则,那就是:测试是无穷尽的,我们要以尽量少(20%)的测试用例发现尽量多(80%)的缺陷。在设计用例的时候大可以集成天下,只要是为高效发现缺陷的用例设计思路都可以采纳,不必拘泥于特定的条条框框。我们只要把函数具体的实现方式抽象成一个黑盒,即可用黑盒设计思路。

      根据开发人员提供的描述,我脑海中即刻浮现出一幅图:

 

限于篇幅有限,且重点不在于用例设计上,笔者在这里象征性的用划分等价类的方法设计了5个测试用例:

 

注:实际测试过程中可以结合边界值、正交法、错误猜测、因果图等方法设计出更多测试用例进行测试

 

4.     测试用例的编写(白盒测试方法)

白盒测试用例设计方法少不了函数流程图:

 

限于篇幅有限,且重点不在于用例设计上,笔者在这里象征性的用语句覆盖的方法设计了3个测试用例:

 

注:实际测试过程中可以结条件覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等方法设计出更多测试用例进行测试

 

 

5.     进行单元测试

5.1创建单元测试

至此,我们简单设计了8个测试用例,接下来就要在VSTS里创建单元测试了

1.           首先,鼠标留在被测函数staticdouble position(char x,int y)上,点击右键,弹出如下图所示菜单:

2.           选择“创建单元测试”,弹出如下对话框:

 

 

在这里我们可以看到,无论开发的代码是用何种语言写的,只要是用VS2005创建的,我们测试的时候,可以选择C#、VB、C++都可以实现,这正是VS2005强大之处之一。

      

3.           勾选上我们需要测试的函数,点击“确定”,弹出如下对话框:

 

4.           输入测试项目名后,点击“创建”,在“解决方案资源管理器”中,我们可以看到创建成功了一个以我们刚才键入的名字命名的测试方案(如下图红框所示)

 

 

5.2代码分析

在自动生成的form1Test.cs里,有这么一段代码:

       /// <summary>

       ///position (char, int)的测试

       ///</summary>

        [DeploymentItem("WindowsApplication1.exe")]

        [TestMethod()]

       public void positionTest()

        {

           char x = '/0'; // TODO: 初始化为适当的值

           int y = 0; // TODO: 初始化为适当的值

           double expected = 0;

           double actual;

            actual = TestProject3.WindowsApplication1_Form1Accessor.position(x, y);

           Assert.AreEqual(expected, actual, "WindowsApplication1.Form1.position 未返回所需的值。");

           Assert.Inconclusive("验证此测试方法的正确性。");

        }

这就是单元测试的测试代码的主体部分,我们来详细分析一下:

     [TestMethod()]:说明了以下代码是一个测试用例,在form1Test.cs中的“#region附加测试属性”里还有很多带有中括号的方法我们在后文再讲述

    char x = '/0'; // TODO: 初始化为适当的值

    int y = 0; // TODO: 初始化为适当的值:这两句是被测函数的输入参数,需要我们去修改它的值,说白了,也就是我们输入测试用例的地方

在这里我们可以看到:VSTS自动为x赋了初值’/0’,为y赋了初值0,我们要做的,只是更改它的值就可以了,VSTS自动为char类型加上了单引号,显示出非常人性化和智能化

    double expected = 0;

    double actual;:这两句话浅显易懂,前一句话是定义了期望值和对它进行初始化,后一句话是定义了实际值。对expected进行了赋值=0实际上是在提醒我们:这里是需要测试人员在进行测试时需要更改的地方——多么的人性化!

      可能有人要问了:那么实际值actual改怎么去赋值?下面的这句语句就是在对它进行赋值:

actual = TestProject3.WindowsApplication1_Form1Accessor.position(x, y);

    太棒了,现在期望值和实际值都已经获取到了,该对他们进行比对了吧?没错,下面的这句语句就实现了这个功能:

Assert.AreEqual(expected, actual,"WindowsApplication1.Form1.position 未返回所需的值。");

    Assert在这里可以理解成断言:在VSTS里做单元测试是基于断言的测试。在MSDN网站上,有这样的描述:“可定义为“实或您相信为事实的内容”。从逻辑角度看,请考虑该语句“when I do {x}, I expect {y} as a result”。”查阅帮助文档,可以看到有以下这些断言:

 

      乍看起来有点摸不着头脑,举个简单的例子,你就会明白:比如说,我们在刚才的测试用例1中,输入的是(A,0),预期输出是2.88,那么现在expected=2.88,实际值是actual,我们认为expected=actual测试才算通过,如果不相等的话,把“测试用例不通过”这句话纪录进测试结果,那么我们就把这句语句改为:Assert.AreEqual(expected, actual, "测试用例不通过");

简单的说,断言就是我们去定义为测试通过的准则

帮助文档里有各个断言的描述:

现在再来看最后一句话:

Assert.Inconclusive("验证此测试方法的正确性。");

对照上表就很容易看懂了,是指“表示无法证明为 true或 false 的测试结果。”

如果在创建单元测试之初点击“设置”,把“默认情况下把所有测试结果标记为没有结论”这个钩去掉(见下图)

那么创建出来的单元测试就没有Assert.Inconclusive("验证此测试方法的正确性。");这句话。没关系,我们手动把它删除

 

5.3进行测试初体验

   根据刚才的语句分析,我们现在就更改测试代码,输入第一个测试用例:

        [DeploymentItem("WindowsApplication1.exe")]

        [TestMethod()]

       public void positionTest()

        {

           char x = 'B'; // TODO: 初始化为适当的值

           int y = 7; // TODO: 初始化为适当的值

           double expected = 0.84;

           double actual;

            actual = TestProject3.WindowsApplication1_Form1Accessor.position(x, y);

            Assert.AreEqual(expected, actual,"实际值:"+actual+" "+"期望值:"+expected);       

}

用例输完了,我们先试一下,看看结果:点击菜单栏“测试”->“启动选定的测试项目(不调试)”(如下图)

 

然后我们在最下面的“测试结果栏”可以看到如下图所示的测试结果:

 

双击它可以看到更详细的测试结果(如下图):

 

      测试成功通过了,耶!真是激动人心!

      不相信自己?好的,那我们改一下代码,把double expected = 0.84;改成double expected = 8.88;,然后再执行一遍测试,看看是什么结果:

双击它:

哈哈,VSTS明察秋毫,这回相信自己了吧!

 

5.3输入测试用例和进行测试

现在我们要把刚才的8个测试用例全部输入

测试用例:

 

 

怎么输呢?很简单,只要把刚才那段测试代码复制、粘贴一下,更改输入值和预期值就可以了。需要注意的是测试函数名不能相同。我这里写两个测试用例来举个例子:

 

测试代码:

        [TestMethod()]

       public void positionTest1()

        {

           char x = 'A'; // TODO: 初始化为适当的值

           int y = 0; // TODO: 初始化为适当的值

           double expected = 2.88;

           double actual;

            actual = TestProject3.WindowsApplication1_Form1Accessor.position(x, y);

           Assert.AreEqual(expected, actual, "实际值:"+actual+" "+"期望值:"+expected);

        }

 

        [TestMethod()]

       public void positionTest2()

        {

           char x = 'B'; // TODO: 初始化为适当的值

           int y = 3; // TODO: 初始化为适当的值

           double expected = 1.32;

           double actual;

            actual = TestProject3.WindowsApplication1_Form1Accessor.position(x, y);

           Assert.AreEqual(expected, actual, "实际值:" + actual +" " + "期望值:" + expected);

        }

就是这样,把所有的测试用例全部输入后,进行测试,根据测试结果,填写《测试报告》。

      大功告成,让我们举杯庆祝一下吧!

 

四.“附加测试属性”的实践

在Form1Test.cs中有这么一个功能,这又是VSTS单元测试之强大的地方。

我们可以点开它,点开后我们看到如下的代码:

        #region附加测试属性

       //编写测试时,可使用以下附加属性:

       //使用 ClassInitialize在运行类中的第一个测试前先运行代码

       //[ClassInitialize()]

       //public static void MyClassInitialize(TestContext testContext)

       //{

       //}

       //使用ClassCleanup 在运行完类中的所有测试后再运行代码

       //[ClassCleanup()]

       //public static void MyClassCleanup()

       //{

       //}

       //使用 TestInitialize在运行每个测试前先运行代码

       //[TestInitialize()]

       //public void MyTestInitialize()

       //{

        //}

       //使用 TestCleanup在运行完每个测试后运行代码

       //[TestCleanup()]

       //public void MyTestCleanup()

       //{

       //}

        #endregion

这是干什么的呢?呵呵,其实它已经说的很明白了,这是“附加测试属性”。默认都是被注释掉的,只要我们取消注释就可以使用了。具体的属性有:[ClassInitialize()]、[ClassCleanup()]、[TestInitialize()]、[TestCleanup()]。他们的作用在它们上面的注释里都已经讲的很明白了,笔者在这里就不展开叙述了。

微软之所以加进来这么个功能,以我之所见,是为了加大测试的灵活性。

我举一例,大家就会看得很明白:现在我们打算把测试报告输出到外部文档去,这样方便日后的缺陷跟踪。可以修改代码如下:

        #region附加测试属性

       //编写测试时,可使用以下附加属性:

       //使用 ClassInitialize在运行类中的第一个测试前先运行代码

        [ClassInitialize()]

       public static void MyClassInitialize(TestContext testContext)

        {

           StreamWriter m_streamWriter = new StreamWriter(@"C:/log.txt",true); 

            m_streamWriter.Write("Test Time,");

            m_streamWriter.WriteLine(DateTime.Now);

            m_streamWriter.Flush();

            m_streamWriter.Close();

        }

       //使用 ClassCleanup在运行完类中的所有测试后再运行代码

        [ClassCleanup()]

       public static void MyClassCleanup()

        {

            StreamWriter m_streamWriter =new StreamWriter(@"C:/log.txt",true);

            m_streamWriter.WriteLine("");

            m_streamWriter.Write("Total Passed:,");

            m_streamWriter.WriteLine(Convert.ToString(Passed) +",");

            m_streamWriter.Write("Total NotPassed:,");

            m_streamWriter.WriteLine(Convert.ToString(NotPassed) +",");

            m_streamWriter.Flush();

            m_streamWriter.Close();

        }

       //使用 TestInitialize在运行每个测试前先运行代码

        [TestInitialize()]

       public void MyTestInitialize()

        {

           StreamWriter m_streamWriter = new StreamWriter(@"C:/log.txt",true);

           if (actual == expected)

            {

                m_streamWriter.WriteLine("Test Passed");

                Passed++;

            }

           else

            {

                m_streamWriter.Write("Test NotPassed,");

                m_streamWriter.Write("Input X:,");

                m_streamWriter.Write(Convert.ToString(x) +",");

                m_streamWriter.Write("Input Y:,");

                m_streamWriter.Write(Convert.ToString(y) +",");

                m_streamWriter.Write("Expected:,");

                m_streamWriter.Write(Convert.ToString(expected) +",");

                m_streamWriter.Write("Actual:,");

                m_streamWriter.Write(Convert.ToString(actual));

                m_streamWriter.WriteLine("");

                NotPassed++;

            }

            m_streamWriter.Flush();

            m_streamWriter.Close();

        }

       //使用 TestCleanup在运行完每个测试后运行代码

       //[TestCleanup()]

       //public void MyTestCleanup()

       //{

       //}

        #endregion

同时引用:using System.IO;

申明变量:staticint Passed=0;

       static int NotPassed=0;

       static double expected;

       static double actual;

       static char x;

       static int y;

并且把测试用例里的对于x、y、actual、expected的申明删除

这时候我们再点击进行测试后,就会在c:/下面生成log.txt,内容如下:

Test Time,2007-7-7 23:29:57

Test Passed

Test NotPassed,Input X:,B,Input Y:,3,Expected:,1.31,Actual:,1.32

Test Passed

Test NotPassed,Input X:,A,Input Y:,0,Expected:,8.88,Actual:,2.88

Test Passed

 

Total Passed:,3,

Total NotPassed:,2,

可能大家在以上文本或者代码中感到奇怪:为什么要加进去那么多的逗号?

原因在此:把log.txt更名为log.csv,那么,就可以用excel来打开它(如下表): (这里放不进来)

     这样清晰多了吧?而且更加易于维护

      笔者在这里只是拿外部文件的输出作为一个例子,“附加测试属性”的其它有意义的用途欢迎大家共同探讨

 

结束语

       VSTS的单元测试的功能之强大由此可见一斑,本人更希望以此文能召唤起更多的国内公司能更加重视软件测试,更加规范软件测试,把我国的软件测试行业做强、做精!

 

参考文献:

郑人杰 .计算机软件测试技术 .清化大学出版社,1990

古乐 .软件测试技术概论 .清化大学出版社,2004

http://www.microsoft.com/china/MSDN/library


鄙人微博:http://weibo.com/quicktest,愿与大家一起探讨

 

vs2012 C# 黑盒测试,白盒测试,UI测试 在解决方案中点新建测试 阅读详情

相关推荐

用Python进行GEO数据挖掘(学习笔记四):富集分析

该笔记详细解释了富集分析的工作原理,并简要地利用gseapy在python中进行富集分析的操作。

m0_64111502的博客 5649

Microsoft Visual Studio 2005 Team Suite 简体中文版 序列号 注册码

Microsoft Visual Studio 2005 Team Suite 简体中文版 序列号 注册码 序列号:KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J  (可用)   添加/删除程序 - Microsoft Visual Studio 2005 Team Suite 简体中文版 - 卸载 - 下一步 - KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J  ...

weixin_34097242的博客 387

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 227

第一次上机实验

第一次上机实验 VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。它是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE ...

weixin_30650039的博客 141

用Arduino+ESP32复现TDOA定位:低成本实现厘米级精度的完整教程

本文提供了一套利用Arduino和ESP32平台,结合NRF24L01+模块与GPS/PPS时间同步方案,低成本复现高精度TDOA(到达时间差)定位系统的完整教程。教程详细阐述了从硬件选型、天线阵列设计、时间同步实现到核心算法与多径抑制的实战步骤,旨在帮助开发者和硬件爱好者以可控成本实现厘米级精度的定位演示系统。

weixin_29084111的博客 162

Cocos Creator Android打包:NDK版本选择与配置全攻略

在Android原生开发中,NDK(Native Development Kit)是编译C/C++代码的核心工具链,它决定了代码如何被编译为不同CPU架构(如ARMv7、ARM64)的动态库。其工作原理在于提供了一套完整的交叉编译环境,将高级语言代码转化为设备可执行的二进制指令。这一技术对于游戏引擎和性能敏感型应用至关重要,因为它能直接调用硬件资源,提升运行效率。在实际工程中,NDK版本必须与Android Gradle插件(AGP)版本、项目依赖的C++标准库精密匹配,否则会导致编译失败或运行时崩溃。特别

weixin_33725270的博客 490

安装 visual.studio.2005

本文介绍使官方下载的180天试用的VS2005团队开发版突破时间和功能上的限制成为正式版。整理了网络上找到的方法和key1.下载visual.studio.2005.team.suite.    你可以从微软官方下载或从网络上下载,我在emule网络上找到的是一个3.8G的visual.studio.2005.team.suite +MSDN。2. 编辑安装文件.vs/setup目

Hobby 的天空 876

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例

COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。

qq_36130719的博客 157

VS2005 Team Suite SP1

VS2005 Team Suite SP1简体中文版下载地址:点这里

chy710's Tech Space----优快云 742

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3769

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3103

Visual Studio 黑盒测试实验截图

新建编码的UI测试项目-- 打开APP和录制菜单-- 点击开始录制-- 再次点击暂停-- 生成代码-- 测试刷新-- 测试点击咨询-- 测试咨询内部点击浏览-- 成功通过测试-- 转载于:https://www.cnblogs.com/summer23/p/4420562.html...

weixin_30650859的博客 290

c++ webrtc基础(1) :webrtc源码下载与编译、项目模块介绍、学习资料推荐

本篇博客介绍webrtc源码的下载与编译,以及推荐webrtc学习资料。 源码下载 电脑环境:win10/win11 64bit,合理的上网环境,没有合理的网络环境无法拉取、下载webrtc代码和工具,宽带速度要快,尽量50M. 主要步骤如下: (1) 安装git (2) 打开cmd控制台,下载google开发工具depot_tools: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git (3) 新建一个目

琅嬛福地 3295

《51测试天地》第六期电子杂志下载

《51测试天地》电子杂志目 录刊首语如何在MANTIS中增加需要统计的字段性能测试项目总结RATIONAL在自动化测试中的应用VS2005 TEAM SUITE 轻松搞定白盒测试软件测试新手的感受BUG不能重现的原因分析及其对策CUNIT FRAMEWOR介绍测试职业经历随谈浅谈软件测试工具在工作中的作用软件企业中测试的组织与实施 下载地址 ...

weixin_34038652的博客 86

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

软件测试代码覆盖率

在“代码覆盖率结果”列表里双击每个函数名,你可以看到具体的代码覆盖信息,青绿色的代码是完全被覆盖到的,红色的代码是从来没有执行过的,而黄色的代码表示这一行有一部分代码被执行过—之所以说有一部分通常是因为一行代码有多个判断条件,有些条件执行了,有些却没有。有了代码块的概念之后,在实现代码覆盖率这个功能时,我们可以用一个大的布尔数组来保存有多少块代码被执行这个信息,而布尔数组的长度呢,就是程序的代码块的个数(因为一块代码可以看成一行代码)。为什么需要特意开启代码覆盖率测试是有原因的,这个在文章的最后会讲到。

2301_77645573的博客 360

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

白盒测试方法

一、概述: 白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为: 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。 穷举路径测试不可能查出程序因为...

努力进阶的小菜鸟 8万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用Visual Unit 4对函数进行黑盒、白盒测试

1.选择合适的黑盒测试方法设计测试用例套集;利用 VU 执行单元测试。如果发现有软件缺陷,利用调试画板调试,确定错误具体位置,修改代码排除缺陷,在作业中要标明代码中错误的具体位置以及如何改;打开边界测试开关,做进一步测试;2.完成白盒测试,使得语句覆盖、条件覆盖、分支覆盖、C/DC、MC/DC、路径覆盖均达到 100%并且无失败断言,打开速度测试开关完成性能测试。1.left函数:设计函数实现提取左边的字符串。/*参数:des:存储结果字符串size:目标字符串des的最大长度,包括结束符\0。

qq_45382917的博客 1398

【转】白盒测试及其基本方法

一、 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一...

weixin_30242907的博客 274

《visual studio 2005 team suite 简体中文版》(visual studio 2005 team suite)2005[ISO], eMule下载

中文名称:visual studio 2005 team suite 简体中文版英文名称:visual studio 2005 team suite别名:visual studio 2005 team suite 简体中文版资源类型:ISO版本:2005发行时间:2006年01月制作发行:微软地区:美国语言:普通话简介:新工具将帮助您迎接各种软件开发的挑战。Visual Studio 2005 提

Gentoo-shaker的专栏 7740

vs2005 Team Suite安装备忘

我安装的是微软网站上下载的3.22G的180天试用版+更改Key+Sp1。 1.=========================VS2005 Team Suite版(3.22G)=========================下载来源:微软官方网站下载地址为http://www.microsoft.com/downloads/info.aspx?na=90&p=&Src

cellair的专栏 864

对网上流传的各个VS2005 Team Suite版比较及个人安装体会

原文:http://hi.baidu.com/nash1974/blog/item/06db875051184362843524da.html 觉得他把几个下载地址整理的挺好的,省的再四处找了。 说明:为了安装VS2005,折腾了我很多宝贵时间,写下体会,为将要安装VS2005的朋友提供一些方便,少走弯路。以 前一直用VS2003做开发,最近想换成VS2005,于是网络上搜

码农的菜园子 2416

Microsoft Visual Studio 2005 Team Suite下载

Microsoft Visual Studio 2005 Team Suite 简体 1、Microsoft Visual Studio 2005 Team Suite DVD 简体下载 SN:KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J http://www.microsoft.com/downloads/details.aspx?familyid=5677DDC4-503...

crm 356
下一篇: QuickTest底层VB脚本驱动
Wally_Yu
博客等级 码龄19年 71粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值