zoukankan      html  css  js  c++  java
  • 功能测试小结(一)

      功能测试是所有测试的基础,不管是自动化、性能、安全还是其他方面的测试工作,都需要在功能测试的基础上进行。至今工作七八年了,为以后工作能够更顺利的进行,准备做一个小结。

      测试基本上是从界面、功能、性能、安全性、易用性、兼容性六个方面进行考虑。

      简单来讲,以一个简单的软件作为例子:

        外观界面测试:主要是测试软件界面功能模块的布局是否合理、整体风格是否一致、界面中文字是否正确、命名是否统一,页面是否美观、文字、颜色、图片组合是否完美等;

        功能测试:测试软件所呈现给用户的所有功能点是否都能正常使用和操作,主流程分支流程能否完整运行,对于异常流程能否正确做出反应,是否满足软件需求规格说明书的要求;

        易用性测试:测试软件是否易操作,主观性比较强,站在用户的角度体验软件产品好不好用;

        兼容性测试:测试该软件与其他软件或者不同平台上的运行情况是否正常,例如比较常见的平台兼容性、浏览器兼容,更深一些的软件本身的功能和功能之间,软件和第三方之间的兼容性;

        安全性测试:测试该软件防止非法入侵的能力;

        性能测试:测试软件在不同环境的压力下是否能正常运转,很重要的一个指标是系统响应时间,例如多人同时访问某个网页时,网页是否能在规定时间内打开等指标;

      当然,与之相对的测试用例设计方法也存在不少,举几个比较常用的方法比如:

        等价类划分法:就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。

          例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
          我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字(特殊字符或者汉字英文),数字和非数字混合。
          然后从每个子集选出若干个有代表性的值:
          空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
          1-7位数字:”234” (无效等价类实例)
          8位数字:”00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
          9位或以上数字:”1234567890” (无效等价类实例)
          非数字:”abc&!!!” (无效等价类实例)
          数字和非数字混合:“ab123dc2”(无效等价类实例)
          他们6个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
          等价类的划分,最关键的是子集的划分。

        边界值分析法:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,           例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。

          例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
          注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。

        错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

        判定表法(策略表),基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。

          例如,某公司对客户分类标准如下:
          顾客每次订货额在1000元以上(含1000元),信誉好的,订单设“优先”标志;
          信誉不好,但是老客户的,订单设“优先”标志;
          信誉不好,但是新客户的,订单设“正常”标志;
          每次订货额在 1000元以下,订单设“正常”标志。
          绘制的决策表如下:

          
          这里写图片描述
          此表分两大行,两大列,分别用不同的颜色区别。
          浅蓝:列出所有条件(或称为输入)
          浅灰:列出所有结果(或称为输出,行动或决策)
          浅黄:穷举所有条件的组合
          浅绿:根据每一列的条件,判断出结果

        正交实验法:用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。

          其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
          虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。正交表的讲解和图解网上都有不少,属于比较常用的方法,这里就不多述了。

        功能测试用例设计方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
      实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
        
        如果被人问到,在测试这个行业中,最重要的能力是什么,相信会存在很多不同的答案,但是在我心中,测试最重要的其实还是业务分析能力,不管是做功能也好,自动化也好,性能也好,安全也好,最最基础的都是必须要将被测产品的业务理解完全,才能开展 后续的工作,上面所说的测试点考虑方面、用例设计方法,如果不是建立在业务吃透的情况下,就算测试通过了,估计上线后也是会存在不少问题,更有可能出现重大测试事故。为了提醒自己不要忘记这个重点,提笔写下了这篇总结,后续将会对测试点的六个方面进行详解,也是对自己的一个总复习吧。

        

        

  • 相关阅读:
    了解 NoSQL 的必读资料
    关于什么时候用assert(断言)的思考
    这次见到了一些大侠
    NetBeans 时事通讯(刊号 # 87 Jan 12, 2010)
    动态链接库dll,静态链接库lib, 导入库lib
    新女性十得 写得了代码,查得出异常
    记录系统乱谈
    新女性十得 写得了代码,查得出异常
    fullpage.js禁止滚动
    RunningMapReduceExampleTFIDF hadoopclusternet This document describes how to run the TFIDF MapReduce example against ascii books. This project is for those who wants to experiment hadoop as a skunkworks in a small cluster (110 nodes) Google Pro
  • 原文地址:https://www.cnblogs.com/keima/p/14812339.html
Copyright © 2011-2022 走看看