文档详情

VS2010-单元测试入门.pptx

发布:2018-02-09约2.87千字共26页下载文档
文本预览下载声明
Visual Studio 2010 单元测试入门 ;2;按开发阶段分 单元测试、集成测试、系统测试、验收测试 按测试技术分 白盒测试、黑盒测试、灰盒测试 按实施主体分 开发方测试、用户测试、第三方测试 按执行状态分 动态测试、静态测试;它浪费了太多的时间? 它仅仅是证明这些代码做了什么? 不管怎样, 系统测试将会抓住所有的Bug? 成本效率不高? ;1.不要让你的客户发现令人尴尬的bug。编写单元测试能让你覆盖大部分的应用案例,并且发现常见的问题。 2.感觉更安全。通过反复的测试,你在添加新功能的时候不会影响程序已有的功能。 3.避免写不必要的代码。这样可以让代码更简洁,更容易维护,同时也节省开发时间。 4.具有回归性。你不用为相同的代码重复的进行测试。 5.保证代码的可读性。单元测试能让你代码的目的性和逻辑性更容易被理解。 6.保证代码的可维护性。单元测试能强制让你对功能进行封装。 7.无忧的进行重构。在你重构以后,跑一遍测试,你就知道重构是否对程序的功能造成了破坏。 8.节省测试的时间。测试是自动进行的,速度的快慢取决于你的CPU。;Visual Studio 2010 测试架构;白盒测试-基于源代码的测试方法 静态方法:代码走查 动态方法:生成测试用例,驱动程序运行;示例代码;类;自动化测试:; using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] public class TestClass1 { // 执行该类别中第一项测试前,使用 ClassInitialize 执行程序代码 // [ClassInitialize()] // public static void MyClassInitialize(TestContext testContext) { } // 在类别中的所有测试执行后,使用 ClassCleanup 执行程序代码 // [ClassCleanup()] // public static void MyClassCleanup() { } [TestMethod] public void TestMethod1() { // 在此加入测试逻辑 } };针对Search类建立测试类SearchTest,标记为[TestClass] 针对BubbleSort方法建立测试方法BubbleSortTest,标记为[TestMethod] 一个测试用例主要包括输入参数和输出结果,以及实际输出结果和预计结果的比较;AreEqual 验证指定的两个对象是否相等 AreEqualT验证两个泛型资料是否相等 AreNotEqual验证指定的两个对象是否不相等 AreNotEqualT验证两个泛型资料是否不相等 AreNotSame验证两个对象变量是否引用不同对象 AreSame验证两个对象变量是否引用相同对象 IsFalse验证指定的条件是否为false IsTrue 验证指定的条件是否为true IsNotNull 验证指定的对象是否不为Nothing IsNull 验证指定的对象是否为Nothing;通过“测试”菜单进入“测试清单编辑器” 选择测试名称,点击“执行核取的测试”按钮,执行测试。 单元测试过程同样可以单步调试。 ;测试用例执行的同时会显示“测试结果” 测试结果分“成功”和“失败”两种。 失败1:测试方法 BinarySearchTest 掷回例外状况: ... 失败1:Assert.AreEqual 失败。预期: 1。实际: -1;语句覆盖 每条语句至少被执行一次 判定覆盖 每个while/if判定条件取得True/False值一次 条件覆盖 每个布尔表达式均取得True/False值一次 完全的条件覆盖不能保证完全的判定覆盖 条件判定组合覆盖 判定覆盖和条件覆盖的组合 路径覆盖 所有可能的路径均被执行 ;首先在菜单“测试”中选择“编辑测试设定”,如右图: 勾选“程序代码涵盖范围”,点击“设定”。勾选要测试的成品,如右图:;Visual Studio自动计算的测试覆盖为语句覆盖;单元测试针对局部代码,功能测试可能针对整体系统系统 与本程序相关的其他程序还没有完成。 有些模块是用户不可见的 单元测试无法测非功能性要求,功能测试难以满足足够的条件 单元测试目的在于确认代码是否满足设计要求,功能测试目的在于确认系统是否满足用户需求 程序是否按照设计的架构要求来编写,如数据访问? 同样的功能可以有不同的设计
显示全部
相似文档