边界值的选择可以分为二值边界测试和三值边界测试。对于二值边界测试,应为每个边界选择两个输入,这些输入对应于边界上的值和等价划分边界外的增量距离;对于三值边界测试,应为每个边界选择三个输入,这些输入对应于边界上的值和等价划分边界的每一次的增量距离。增量距离应定义为对应的数据类型的最小有效值。
二值边界测试在大多数情况下是充分的;但是,在某些情况下可能需要进行三值边界测试(例如:测试人员和开发人员在确定被测软件中变量的边界没有发生错误时的严格测试)
1、二值基本边界值分析
边界值测试的另一个关键假设是认为:失效极少是由两个(或多个)缺陷的同时发生引起的,在可靠性理论上叫作“单缺陷”假设,这种依据“单缺陷”,这种依据“单缺陷”假设的边界值测试称为基本边界值分析。
在边界值测试时,我们通常使用二值边界,再辅助以正常值来设计输入变量的值。
对于只有x和y两个输入变量的软件,其输入域在二位坐标系中就是阴影所标示出来的部分。采用基本边界值分析得到的测试用例就是黑点所在位置,一共九个测试用例。

如果有一个n变量的软件输入域,使其中一个变量略小于最小值、最小值、正常值、最大值、略大于最大值这样五种选择,其余的所有变量取正常值。该N变量软件输入域的边界值分析会产生4n+1个测试用例。
2、三值基本边界值分析
对于只有x和y两个输入变量的软件,使每个变量略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值、略大于最大值这样七种选择,其余的所有变量取正常值。
对于一个n变量输入域,三值基本边界分析将会产生6n+1个测试用例。
3、最坏情况边界值分析
最坏情况边界值分析是在“多缺陷”假设的情况,即程序的失效是由于两个(或多个)变量在其边界值取值共同引起的,这在电子电路分析中称为“最坏情况测试”。
针对n个变量的输入域,最坏情况测试用例将是五元素集合的笛卡尔积,会产生5^n个测试用例。
4、健壮最坏情况测试
对于确实极端的测试,会采用健壮最坏情况测试,把略小于最小值、略大于最大值的两个无效值考虑在内,同时考虑最坏情况,使用七元素集合的笛卡尔积,会产生7^n个测试用例。
5、边界值的获取
依据产品产品说明书/需求规格说明等中的输入域范围可以明显地获得一些数值型参数的边界,或者在使用软件的过程中可以容易找到。一些常见的边界值包括:屏幕光标的最左上、右下位置,报表的第一行和最后一行,数组元素的第一个和最后一个,循环的第0次、第1次和最后1次,等等。
上点:边界上的点(即范围上的点)
离点:离上点最近的点,如果输入域是封闭的,则离点在范围外;如果输入域是开区间,则离点在域的范围内
内点:在输入域内任意一个点(一般取中间值)
软考试题
用边界值分析法,假定1<x<10,那X在测试中应该取的边界值是(A)
A.X=1,X=2,X=9,X=10
B.X=2,X=9
C.X=1,X=10
D.X=1,X=5,X=6,X=10
上点:边界上的点,范围为(1,10),上点就是1,10
离点:由于都是开区间,即要向内取值,取得值为2,9
内点:范围内取一个值,一般取中间值
1)我想按单词自动换行,使每行不超过56个字符。有没有办法做到这一点,还是我需要自己动手?@comment_text="Loremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua."我的看法:将呈现:Loremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua.2)我想将文本缩进4个空格,
我在IE中看到一些奇怪的行为,试图通过function.apply()调用另一个页面中的函数。这是一个简单的测试用例:test1.html:varopened=null;functionapplyNone(){opened.testFunc.apply(opened);}functionapplyArgs(){opened.testFunc.apply(opened,["appliedarray"]);}functioncall(){opened.testFunc("calleddirectly");}functionremoteApply(){opened.testApply(["u
我正在编写代码,为二维(不一定是凸的)多边形构建定向边界框(obb)树。到目前为止,我可以通过找到凸包并在凸包上使用旋转卡尺来找到多边形的面积最小obb。下图就是一个例子。带有红线和红点的黄色填充多边形描绘了原始多边形。凸包显示为蓝色和黑色线条,obb显示为紫色线条。(编辑)按要求:InteractiveVersion-仅在chrome中测试现在我想扩展我的代码来构建一个OBB树,而不仅仅是一个OBB。这意味着我必须切割多边形,并为多边形的每一半计算新的OBB。执行此操作的推荐方法似乎是通过将OBB切成两半来切割多边形。但是,如果我将obb从它的任一轴的中间切开,看起来我必须在多边形上
我正在尝试找到以屏幕像素为单位获取任意SVG元素边界框的最佳方法,以便正确覆盖HTML元素。到目前为止,我的方法是使用.getBBox()和.getCTM()检索对象的边界框和变换矩阵,然后将变换应用于边界框点如thisquestion的已接受答案中所述.//gettheelementvarel=$(selector)[0],pt=$(selector).closest('svg')[0].createSVGPoint();//gettheboundingboxandmatrixvarbbox=el.getBBox(),matrix=el.getScreenCTM();pt.x=bbo
我正在渲染带有标签的SVG组件。这些标签组件需要根据它们的文本内容(以及它们的大小)正确布局,以避免相互重叠。要获得每个标签的真实大小,似乎每次更新标签内容时都需要双重渲染。在标签组件级别,我需要第一次渲染检索真实SVGDOM节点的边界框出于性能原因缓存边界框重新渲染组件以根据其缓存的边界框调整标签位置然后,在每次重绘时:根据缓存的边界框渲染比较之前和更新的props之间的标签内容,如果有变化:更新并缓存标签边界框根据更新和缓存的边界框重新渲染到目前为止,这是我实现标签组件的方式:varLabel=React.createClass({updateBBox:function(){//T
我正在开发一个基于网络的编辑器,可以在其中拖动元素和调整元素大小。我遇到了关于显示1px边框和元素的问题:我得到了一条模糊线,而不是像素到像素显示(例如1px实线)。我发现,如果我使用末尾带有.5的坐标(例如10.5、124.5)和整数大小,一切都是像素完美的。这里是例子。在我改变它的坐标之前的元素:之后(每个整数大小末尾有“.5”):问题是我如何强制Raphael.js以清晰的方式显示所有内容? 最佳答案 我不确定如何在Raphael中执行此操作,但一点点CSS可以帮助您:.your_lines{shape-rendering:c
我使用的代码与我在类似项目中成功使用的文件上传代码相同,但出于某种原因,边界从未添加到请求header中的内容类型属性中。这导致我的C#web-api函数无法检测到图像。这是我使用angularjs的发布请求:varformData=newFormData($('#testform')[0]);$http({url:serviceBase+'api/Client/'+item.practiceID+'/SavePhoto',method:"POST",data:formData,headers:{'Content-Type':false},transformRequest:functi
我看过一些类似标题的问题,但它们似乎指的是x和y像素坐标。我要从GooglemapgetTile()函数中询问x和y的实际图block编号:澄清问题...给定getTile()函数中的x、y和缩放参数,如何找到图block的纬度和经度边界?CoordMapType.prototype.getTile=function(coord,zoom,ownerDocument){varx=coord.x,y=coord.y,url="http://mt1.google.com/vt/lyrs=y&x="+x+"&y="+y+"&z="+zoom;//otherstuff}目前我需要这个的唯一原因
目前,我通过find()在Javascript/Node中使用正则表达式,这适用于查找模式的开头。但我也希望能够找出模式的结束位置。这可能吗? 最佳答案 如果您使用RegExp.exec()方法,您可以获得所需的信息。varpattern=/\d+\.?\d*|\.\d+/;varmatch=pattern.exec("thenumberis7.5!");varstart=match.index;vartext=match[0];varend=start+text.length;/\d+\.?\d*|\.\d+/等同于newRegE
我正在使用v7BingMapsJavascript“控件”(我不知道为什么它被称为“控件”...)。我正在调用Microsoft.Maps.Map.setView({bounds:bounds})但它没有像我期望的那样工作。我有一组多边形,其点跨越第180条子午线。一个例子是新西兰岛屿的边界——其中一些位于180度经线以西,一些部分(查塔姆群岛)位于东经。当我用这些边界创建多边形并调用setView()时,mapwaaaaaay缩小。为什么?以及如何避免?Thispage提供问题的演示。这是代码。varmap,MM=Microsoft.Maps;functionshowMap(m){v