没有想到《数据结构、算法与应用》一书如此之强调测试,曾经以为只有在Kent Beck的书中,才会将测试摆在一个极其重要的位置。尽管书中对于测试与调试的讲述并不是太多,却将要点讲述得特别的清楚,让自己对于测试和调试有了些许的顿悟。
测试是为了尽可能的发现错误,这个是一定要牢记的。为了实现这个目标,测试数据的选择就显得尤为重要了。毕竟能够作为一个函数的输入条件的数据集合实在是太大了。在选择测试数据的时候应该遵循以下三个覆盖原则:
1、语句覆盖:选择足够多并且合适的测试数据使得每一条语句都能够被执行;
2、分支覆盖:选择测试数据集使得每一个条件都出现true和false两种情况;
3、子句覆盖:子句覆盖与分支覆盖有类似的地方,只是子句覆盖的测试粒度会更细,因为通常一个条件语句有可能会包含多个条件子句,那么子句覆盖就是让条件语句中包含的每一个条件子句都出现true和false两种情况。
以上提到的这些覆盖原则是用在白盒测试中的。白盒测试是针对代码本身的,而与白盒测试相对应的则是黑盒测试。黑盒测试常用的方式是I/O类,也就是分析代码会出现哪几类输入和输出(通常输入类和输出类是一一对应的),然后根据输入类的不同选择合适的测试数据,并且检验输出类的正确性。
测试是为了能够发现错误,那么定位错误并且修改错误的过程则是调试(debug)。调试也需要遵循几个原则:
1、在修改错误的同时一定要避免引入新的错误;
2、不能够通过异常来掩盖错误;
3、增量测试和调试原则(incremental test and debug)。测试与调试应该从相对独立的函数开始,继而依次引入其他函数进行测试。在一个相对独立的函数测试通过之后,引入另外的一个函数进行测试,如果发生了错误,就可以很容易地确定错误出现在新引入测试的函数中了。
分享到:
相关推荐
《Android应用测试与调试实战》高清完整版是Android应用测试与调试领域最为系统、深入且极具实践指导意义的著作,由拥有近10年从业经验的资深软件开发工程师和调试技术专家撰写,旨在为广大程序员开发高质量的...
**DSP系统的测试和调试** 数字信号处理(DSP)系统在通信、音频处理、图像处理、自动化和许多其他领域中扮演着关键角色。测试和调试这些系统是确保其性能和可靠性的核心步骤。以下是对该主题的详细阐述: 1. **...
安全自动装置:安全自动装置的测试与调试.docx 安全自动装置:安全自动装置的测试与调试all.docx 安全自动装置:安全自动装置的测试与调试v1.docx 安全自动装置:安全自动装置的测试与调试_(10).安全自动装置的...
整体来看,PCB的单板测试和硬件调试是一个系统而细致的过程,需要工程师具备丰富的知识和经验。测试仪表的选择和使用是测试成功的关键因素,但同样重要的是对测试流程的了解以及对细节的关注,这会直接影响到最终的...
嵌入式系统测试与调试
软件测试调试技术
在ASP测试过程中,调试工具是不可或缺的辅助软件,能够帮助开发者定位和修复代码中的错误,提高开发效率。"网页测试|asp调试工具"这个主题正是关注于这类工具的使用。 在ASP开发中,调试是一项关键任务,因为错误...
在ACM(国际大学生程序设计竞赛)中,调试和测试是至关重要的环节,因为只有确保程序的正确性才能在竞赛中取得成功。以下是一些关键的调试和测试策略: 1. **输入输出格式错误**:确保你的程序按照题目要求的格式...
本书是Android应用测试与调试领域最为系统、深入且极具实践指导意义的著作,由拥有近10年从业经验的资深软件开发工程师和调试技术专家撰写,旨在为广大程序员开发高质量的Android应用提供全方位指导。它从Android...
Workbench3.0-vxworks6.6 仿真测试和调试指南 本文主要介绍了 Workbench3.0-vxworks6.6 仿真测试和调试指南,涵盖了 VxWorks6.6 的基本概念、动态库生成步骤、RTP 程序测试等内容。同时,本文还对 VxWorks6.6 的...
USB调试软件和USB测试软件在IT领域中扮演着至关重要的角色,特别是在硬件设备开发、驱动程序编程以及系统集成测试方面。USB(通用串行总线)作为一种通用接口,广泛应用于各种电子设备,如电脑、手机、打印机、...
"私藏多年 webservice测试调试工具"指的是专门用于测试和调试Web服务的软件工具,这类工具可以帮助开发者检查和验证Web服务的功能,发现并修复潜在的问题。在描述中提到的“珍藏”,意味着这类工具可能具有很高的...
安可信ESP-12F资料,包括串口调试助手,tcp测试工具,手机端和电脑端都有 安可信ESP-12F资料,包括串口调试助手,tcp测试工具,手机端和电脑端都有 安可信ESP-12F资料,包括串口调试助手,tcp测试工具,手机端和电脑...
在IT行业中,尤其是在Web开发领域,测试和调试是至关重要的环节。"IE测试工具和调试工具"这个主题聚焦于在Internet Explorer(IE)浏览器中进行兼容性和功能测试的专用工具。由于IE曾经是广泛使用的浏览器,尽管现在...
在电子工程领域,充电器的调试与测试流程是确保产品质量和安全的重要环节。这份名为"资料-充电器的调试和测试流程.zip"的压缩包文件包含了一份详细的PDF文档,它可能详细阐述了充电器从设计到出厂的整个过程中的调试...
"CALL调试测试工具"是一种专为测试和调试程序中的CALL指令而设计的实用工具。CALL指令在编程语言中通常用于调用子程序或函数,是程序执行流程控制的重要组成部分。这种工具的独特之处在于它不依赖于代码注入,这意味...
格西调试精灵是一款多功能的基于串口和网口的通信测试软件,能够快捷地定制任意通信规约,主要解决电子研发过程中调试和测试软件定制化过多的问题。 1、支持串口,网络接口,支持UDP、TCP客户端、TCP服务器协议类型...
SocketTool是一个常用的网络调试工具,用于测试网络通信和调试TCP/IP连接。它提供了一系列工具和功能,用于创建、发送和接收TCP和UDP数据包,以及进行HTTP、SMTP、FTP等协议的测试。 SocketTool的主要功能包括: ...
在此基础上,他分享了关于软件测试和调试的重要观点。 张银奎开篇即提出了自己对软件测试和调试的重视程度,他指出这些环节对于确保软件质量和可靠性有着决定性作用。在国内软件开发的环境中,他观察到一个普遍存在...