`

[转]测试要考虑成本、粒度 和角度问题

    博客分类:
  • Java
阅读更多
作者:sharedata
来源:http://www.matrix.org.cn/blog/X-Brave/


测试是需要成本的,也需要考虑当时当地的实际情况的,这就是一方面我非常强调测试,但也可能在特定的情况下完全没有传统意义的测试的原因。
另一方面,对测试的理解和实践是因人而异的(或者说存在某种进阶,这种进阶由软件实践的经验和能力相对决定),根据进阶不同,对其理解和实践就会不同。在这里,包括单元测试究竟是不是设计以及在细致区分单元测试和测试用例都可以有不同的理解和实践。这些理解和实践没有绝对的对与错,而只是在粒度和看问题的角度上有所不同,或者说软件实践经验的不同。

但,尽管存在不同的理解和实践,我们却可以把分歧统一在一个前提下:那就是一切为了更好的软件实践。从这个基本点出发,测试可以被看作传统意义的测试,也可以看作是设计的一部分或者是辅助设计,根据测试粒度的不同产生的其他的分歧也不再是问题,甚至是更具挑战性的理解和实践:测试可以看作测试,传统意义的代码本身也可以看作测试(从这里也可以引申为设计和代码实践的随意性或者也可以说是一种非常自然的更高级的软件实践)。在我的软件实践里,我更喜欢这种实践模式,当然,这是有前提的,他必须和具体软件项目、人员、时间和其他辅助资源相适应,而不是一种必然选择。显然,在很多软件环境下,我会采用适当保守的做法来保证我的队伍可以轻松而且可靠地完成工作,这就是软件赋予我们的灵活性。

实际上,讲到这里,怎么做可能是更好的实践已经有了答案,尽管这个答案不是明确意义的对错或者第1条第2条的方式给出的。我也试图谈论更多来更清晰这些回答,当然这些具体看法根据个体实践经验不同会存在不同的理解,这都是正常的。记住,这里没有绝对性质的对错,凡是能够更好的辅助完成软件实践就是成功的。

我们时常提到测试驱动开发,但实际上真正符合的不多,通常所称的“测试驱动开发”只是有了单元测试而根本没有驱动的意味。很多问题由此产生,在很多时候我们谈论的差不多是两个不同的概念。正常的情况下,测试是可以作为主要设计手段的,至少是极好的辅助设计手段,根据粒度和规模的不同,就体现为不同的具体实践,包括传统意义的单元测试来测试单个的对象或者更大规模的对象群,这都是正确的实践。在这里,也可能存在测试转化问题,也就是开始作为设计的实践到后期的更趋向传统的测试,这是更具体的实践。

测试成本的要素包含很多方面,是否写了测试代码只是其中一个重要部分,是否采用JUint以及Mock对象更加不是对其评价的决定性因素。对测试的更好评价应该是额外代码、测试可重复性、测试范围和边界值识别等综合构成(测试对设计的作用是更高级的判断)。

对于涉及到数据库持久方面的测试、涉及到UI(浏览器或者富客户端)交互的测试以及多对象多方法过程的测试(也可体现为UI交互,这里是指独立性质的)等,以及上面说到的一些问题(不再重复),是我们现实测试实践要面临的问题。对这些问题的解决,就会更多的涉及到项目具体情况的选择和具体项目和团队的情况来作最佳判断,这就是成本的意义。我在这里还想提醒在关注这些具体的项目因素的同时,还要注意下面的问题:
对象的所有者和使用者问题;
不要单纯意义上理解测试,有些测试可以采用单元测试之外的手段完成;
项目在不同进展阶段测试的便捷性(也可体现为大分层概念)。

测试,是一个理解和实践都可能差异很大的软件实践,它包含了具体的代码实践,也是需要和项目管理和设计相适应的方法论,当然,也是体现实用哲学的软件思想。

在方便的时候,我很乐意详细阐述我在测试上的实践经验和教训(如讲座),也可以就我正在实践和思考的更具挑战性的思考和实践进行探讨。
分享到:
评论

相关推荐

    测试用例的粒度

    日常测试工作中,测试人员在编写TestCase时,经常会碰到这样一个问题:TestCase应该需写成什么样的粒度才好,个人觉得测试用例的粒度没有特定的标准,需依据项目实际情况而定,若时间充足,可以把测试用例写的细一些...

    软件测试用例的粒度的讨论

    在项目时间紧张的情况下,往往留给测试人员的时间很有限,测试工作的重点就是多测试,早发现问题,这时候我认为测试用例的粒度是可以放粗一些的,但是“粗”不代表随意,虽然可以放“粗”一些,但是要能明确测试要点...

    也谈测试用例的粒度

    在项目时间紧张的情况下,往往留给测试人员的时间很有限,测试工作的重点就是多测试,早发现问题,这时候我认为测试用例的粒度是可以放粗一些的,但是“粗”不代表随意,虽然可以放“粗”一些,但是要能 ...

    测试成本敏感的多粒度粗糙集:模型和最小成本选择

    但是,这三个多粒度粗糙集没有考虑测试成本,这是数据挖掘和机器学习中的重要问题。 为解决这一问题,本文提出了一种测试成本敏感的多粒度粗糙集模型。 我们表明,测试成本敏感的多粒度粗糙集是乐观,悲观和b多重...

    颗粒粒度测试介绍

    颗粒粒度测试各种方法介绍,相关的算法及程序控制参考

    低变质煤的密度与粒度对可磨性和能耗的影响

    采用哈氏可磨性指数测定仪和激光粒度仪分别对某电厂4种不同粒度和4种不同密度低变质煤样的可磨性指数(HGI)和研磨后的粒度分布进行了测定,并用功耗模块测试了不同煤样研磨过程中的能耗,分析了煤样粒度与密度特征对其...

    砂岩粒度分析计算机方法研究与对比

    文章简述砂岩计算机下薄片粒度分析思路与测试方法,应用1/250000阿亚克库木湖幅的10个薄片,并将测试结果与已知数据进行了对比,粒度参数数据基本一致,认为此方法具有科学性和实用性。在计算机下进行粒度分析工作的方法...

    软件测试技术JUnit和单元测试入门简介

    回归测试——软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用 软件测试技术JUnit和单元测试入门简介 软件测试 1、几个相关的概念 白盒测试——把测试对象看作一个打开的盒子,程序内部的...

    人造水雾粒度测试及红外消光因子计算分析

    在大型半密闲空闻内发生具有不同拉度分布的水雾体系,用喷 雾激光粒度仪测试粒度分布规律并采用Van Igor Hulst公式计算不同 大小水雾粒子对红外辐射的散射效率因子

    煤炭粒度筛分人工采样方法和物流过程中粒度分布变化规律研究

    结合粒度筛分人工采样方法的偏差试验原理,从...同时对物流环节过程中的煤炭粒度分布变化规律进行研究,确定煤种各粒度级别比例在不同的运输环节中的变化规律和原因,为煤炭物流过程中粒度分布变化的控制提供重要的依据。

    现代沉积物粒度分析

    本文介绍和探讨现代粒度测试技术的基本 概念(§2), 粒度测试结果的表达(§3、 §4) , 各种常用的现代粒度测试仪器的原理和性能特 点(§5、 §6) 以及用好这些仪器的基本要点 (§7)

    一种基于MATLAB的碎屑岩粒度分析方法.pdf

    利用MATLAB图像处理与统计计算功能对碎屑岩进行粒度分析,可以较好地解决传统粒度分析方法中存在的测量结果不精确、费时费力等问题。首先对碎屑岩镜下图像进行灰度化、二值化、图像增强等处理,准确测量出碎屑岩中各类...

    超线程技术和粗粒度多线程技术

    超线程技术和粗粒度多线程技术

    粒度计算研究综述粒度计算研究综述

    粒度计算研究综述粒度计算研究综述粒度计算研究综述

    岩石粒度分析教程

    用于学习对沉积岩岩石粒度分析,对股沉积相、沉积环境的恢复很有帮助

    论文研究-优势关系下的多粒度粗糙集.pdf

    通过对经典粗糙集的比较,得到了二粒度和多粒度下粗糙集的一些性质和结论。并在二粒度和多粒度下,对粗糙集里的边界、近似精度、优势度和综合优势度进行了研究。通过地震数据的例子说明了单粒度和多粒度之间的差异。

    内存里面粒度的说明

    但是从机器角度更具体的说从CPU角度看呢,CPU发出的指令是一个字节一个字节读写内存吗?答案是'否'。CPU是按照'块(chunk)'来读写内存的,块的大小可以是2bytes, 4bytes, 8bytes, 16bytes甚至是32bytes. 这个CPU访问...

    粒度对半焦和焦炭气化行为的影响

    利用STA449F3同步热分析仪,在50℃1 500℃温度下,对4种粒度的半焦和焦炭进行CO2气化实验.结果表明,粒度对半焦和焦炭的反应性影响不大,粒度越小,半焦和焦炭的气化反应温度越低,反应越易进行.粒度变化对半焦中挥发分析...

    论文研究-基于容差关系的不完备可变精度多粒度粗糙集.pdf

    在不完备信息系统中, 为了融合可变精度粗糙集和多粒度粗糙集的各自优点, 提出一种基于容差关系的不完备可变精度多粒度粗糙集模型。研究了基于容差关系的可变精度乐观多粒度粗糙集和悲观多粒度粗糙集的相关性质。通过...

Global site tag (gtag.js) - Google Analytics