zoukankan      html  css  js  c++  java
  • 软件測试基本方法(三)之黑盒測试

    黑盒測试:

    • 概念:也称功能測试,它是通过測试来检測每一个功能是否都能正常使用。

      在測试中,把程序看作一个不能打开的黑盒子。在全然不考虑程序内部结构情况下,在程序接口进行測试。它仅仅检查程序功能是否依照需求规格说明书的规定正常使用,程序能否适当地接收输入数据而产生正确的输出信息。黑盒測试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行測试。

    • 分类:黑盒測试有非常多详细方法。这里仅仅选取两种最经常使用的——等价类划分法和边界值分析法。

    等价类划分法:
    定义:分为有效等价类和无效等价类。

    有效等价类是合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反。


    例1:
    输入日期。如200001,前四位代表年,后两位代表月,限制条件为日期由年月的6位数字组成,日期限制在2000年1月至2045年12月(奇点时刻,有兴趣的朋友參见超链接:))。以下就是等价类划分的一个实例。



    例2:

    问题:针对国内18位身份证号码验证,通过等价类划分法设计測试用例。

    先了解一下18位身份证,拿370686199211204618来说:

    37——所在省

    06——所在地级市

    86——所在县级市

    19921120——出生年月日

    461——顺序码。表示你在该地区与你同年同月同日生的人群中的序号,奇数表示男,偶数表示女

    8——对前17进行加权求和并mod11。假设结果为10。用‘X’表示



    总之依据输入要求,先明确合理等价类是什么,然后再找出不合理等价类。以前有位scrum master说这是最重要最主要的測试方法,但某些測试人员却不遵守。


    边界值分析法:
    定义:确定边界情况(输入或输出等价类的边界),选取正好等于、刚刚大于或刚刚小于边界值作为測试数据。

    例3:
    如上面例1,假设用边界值法,会有例如以下測试用例:
    • 200001(边界有效最小值)、204512(边界有效最大值)
    • 199901、199912、204601、204612(边界无效值)
    边界值分析法常被看做是等价类划分法的一种补充。二者结合起来使用更有效。


    例4:
    对于一个排序程序,设计它的边界值。

    其边界条件有:
    • 排序序列为空
    • 排序序列仅有一个数据
    • 排序序列为最长序列
    • 排序序列已经按要求排好序
    • 排序序列的顺序与要求的顺序恰好相反
    • 排序序列中的所有数据所有相等
    例5:
    一个文本输入的測试过程。字符编码採用ASCII码。假设输入0~9。那么这个输入的边界字符为/(斜杠)和:(冒号)。

    总结:

    除了以上两种。还有判定表法、因果图法等。事实上全部的白盒和黑盒,终于都要生成測试用例,关于測试用例,例如以下:

    • 測试用例:为某个特殊目标而编制的一组測试输入、运行条件以及预期结果,以便測试某个程序路径或核实是否满足某个特定需求。

    • 一个測试用例用于证明该需求已经满足。通常称作正面測试用例。还有一个測试用例反映某个意外的条件,用于论证仅仅有在所需条件下才可以满足该需求,这个測试用例称作负面測试用例
    • 測试用例是软件測试的核心。

  • 相关阅读:
    ios 人脸检测
    改善用户体验的几个alert提示效果(收集整理)
    asp.net中关于《%=》《%#》《%》 的用法——(转帖)
    flash学习网址
    网页数据表格自动填充序号
    <%#..%>与<%=..%>的区别
    用Margin还是用Padding
    由浅入深漫谈margin属性
    css中导入样式表和链接样式表有什么区别,我不是问语法,而是问内在区别,还有我怎么才能体会到他们的区别
    ASP.NET Eval如何进行数据绑定
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5390972.html
Copyright © 2011-2022 走看看