海是我向往的地方,吸纳和咆哮是他的魅力!!!

转:关于测试的一些技巧和经验

上一篇 / 下一篇  2008-07-02 10:33:56

  • 转:关于测试的一些技巧和经验

    2008-07-01 22:59:51

    在制定测试计划的时候,就要考虑到测试的风险,并抉择要执行哪些测试,并放弃哪些测试;测试计划的评审应该让开发人员参与;测试模型的制作应该尽可能贴近用户,或者站在用户的使用立场上来观测软件,此时应该能发现更多的问题。

     由于测试发现问题,在解决问题后还要重新测试,因此测试的时间可能会比实际更长一些

     识别和注意少数重要的方面,而忽略多数次要的方面,有时候少数的问题足以致命,这些问题将是软件测试结果中重要性最高的错误。

     错误的定位有时是很难的,要找出必然发生的前因后果,而不至于因为描述错误而误导开发人员。有时候确实存在错误不能重建的问题。解决办法之一是在错误报告中给予说明。

     对错误的描述,应该是准确、完整而简练。因为描述的问题或者不完整的描述会引起开发人员的误解,其后果是可以想见的。

     有时有经验的测试人员凭借直觉就可以发现一些问题,这可称为“错误猜测”。

     测试人员容易犯2种错误:一是测试人员发生判断错误,将本没有错误的系统行为报告为错误,或者将错误指定了过高的严重级别,或者过高估计了问题的严重性,这样会引起开发人员的不信任,产生一种象“狼来了”一样的效果;二是测试人员将错误的严重性或优先级定得过低,从而产生“测试逃逸”,这样会造成产品质量的风险。以上两种错误应该尽量避免
  • 转载:应该考虑进行何种测试

    2008-07-01 22:54:04

    黑盒测试(Black box testing) ____不考虑内部设计和代码,根据需求和功能进行测试

    白盒测试(White box testing)──根据应用软件的代码的内部逻辑,按照代码的语句、分支、路径和条件进行测试。

    部件测试(Unit testing)——最小范围的测试,针对特定的函数和代码模块进行测试。因为需要了解程序的设计和代码的细节才能进行,所以部件测试一般是程序员。而不是由测试人员来做。除非应用软件的结构设计良好,而且代码也写得清楚,否则部件测试并非易事。也许需要开发测试驱动模块或测试工具

    递增的综合测试(incremental integration testing)——不断进行的测试过程,每增加一个新的功能模块,都进行测试。这要求一个应用软件在最终完成之前,各功能模块要相对独立,或者已根据需要开发出测试驱动软件。这种测试可由程序员或测试人员进行。

    综合测试(integration testing)——对应用软件的各个部分进行组合测试,来检查各功能模块在一起工作是否正常,“部件“可以是代码模块、独立的应用程序、也可以是网络中的客户/服务器应用软件。这种测试特别使用客户/服务器环境和分布式系统

    功能测试functional testing)——对一个应用软件的功能模块进行黑盒测试。这种测试应当由测试人员进行。但这并不意味着程序员在推出软件之前不进行代码检查。(这一原则适用于所有的测试阶段。)

    系统测试——针对全部需求说明进行黑盒测试,包括系统中所有的部件

    端到端测试(end-to-end testing)──类似于系统测试,但测试范围更“宏观”一些。模仿实际应用环境,对整个应用软件进行使用测试。例如与数据库进行交互作业、使用网络通信、与其他硬件、应用程序和系统之间的相互作用是否满足要求。

    健全测试(sanity testing)──是一种典型的初始测试。判断一个新的软件版本的运行是否正常,是否值得对它作进一步的测试。例如,如果一个新的软件每5分钟就破坏系统、大大降低系统的运行速度、或者破坏数据库,那么这样的软件就算不上是“健全”的,不值得在目前状态下进行进一步的测试。

    回归测试(regression testing)──每当软件经过了整理、修改、或者其环境发生变化,都重复进行测试。很难说需要进行多少次回归测试,特别是是到了开发周期的最后阶段。进行此种测试,特别适于使用自动测试工具。

    认同测试(acceptance testing)──基于说明书的、由最终用户或顾客来进行的测试。或者由最终用户/顾客来进行一段有限时间的使用。

    负荷试验(load testing)──在大负荷条件下对应用软件进行测试。例如测试一个网站在不同负荷情况下的状况,以确定在什么情况下系统响应速度下降或是出现故障。

    压力测试(stress testing)──经常可以与“负荷测试”或“性能测试”相互代替。这种测试是用来检查系统在下列条件下的情况:在非正常的巨大负荷下、某些动作和输入大量重复、输入大数、对数据库进行非常复杂的查询,等等。

    性能测试(performance testing)──经常可以与“压力测试”或“负荷测试”相互代替。理想的“性能测试”(也包括其他任何类型的测试)都应在质量保障和测试计划的文档终予以规定。

    可用性测试(usability testing)──是专为“对用户友好”的特性进行测试。这是一种主观的感觉,取决于最终用户或顾客。可以进行用户会见、检查、对用户会议录像、或者使用其他技术。程序员和测试人员通常不参加可用性测试。

    安装/卸载测试(install/uninstall testing)──对安装/卸载进行测试(包括全部、部分、升级操作)

    恢复测试(recovery testing)──在系统崩溃、硬件故障、或者其他灾难发生之后,重新恢复系统的情况。

    安全测试(security testing)──测试系统在应付非授权的内部/外部访问、故意的损坏时的防护情况。这需要精密复杂的测试技术 

    兼容性测试(compatability testing)──测试在特殊的硬件/软件/操作系统/网络环境下的软件表现。

    认同测试(acceptance testing)──看顾客是否对软件满意。

    比较测试(comparison testing)──与竞争产品进行比较,以找出弱点和优势。

     α测试(alpha testing)──在开发一个应用软件即将完成时所进行的测试。此时还允许有较小的设计修改。通常由最终用户或其他人进行这种测试,而不是由程序员和测试人员来进行。

     β测试(beta testing)──当开发和测试已基本完成,需要在正式发行之前最后寻找毛病而进行的测试。通常由最终用户或其他人进行这种测试,而不是由程序员和测试人员来进行。

  • 转载:软件评测师学习笔记--黑盒测试

    2008-07-01 22:28:30

    软件评测师学习笔记之一-黑盒测试

    2005-4-18
     黑盒测试
    一. 黑盒测试概述(2.10黑盒测试)
    1
    .定义
    也称功能测试,它是通过测试来检测每个功能是否都能正常使用
    把程序看成一个黑盒子,完全不考虑程序内部结构和内部特性,着眼于程序外部结构,不考虑内部逻辑结构
    在程序接口进行测试,只检查程序功能是否按照需求说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息
    主要针对软件界面和软件功能进行测试
    2
    .试图发现的错误类型
    功能不正确或遗漏
    界面错误(输入能否正确的接受?能否输出正确的结果)
    数据库访问错误(如数据结构定义错误或外部信息(如数据文件)访问错误)
    性能错误
    初始化和终止错误
    3
    .黑盒测试用例设计方法
    1 等价类划分法:把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值
    2 边界值分析法:通过选择等价类边界的测试用例。不仅重视输入条件边界,而且也必须考虑输出域边界
    3 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法
    4 因果图法:从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输入或程序状态的改变),可以通过因果图转换成判定表
    5 判定表驱动法:利用判定表进行测试用例的设计
    6 正交试验设计法:使用已设计好的正交表格来安排试验,并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率
    7 功能图法:用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成
    二. 黑盒测试用例设计方法
    1
    .等价类划分法
    1)划分基础:需求规格说明书中输入、输出要求
    2)等价类:某个输入域的子集合;分为有效等价类和无效等价类
    有效等价类:指对于程序规格说明书来说是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明书中的功能和性能
    无效等价类:与有效等价的定义恰巧相反
    3)划分等价类原则(6条)
    序号 输入条件(数据) 划分等价类
    规定了取值范围值的个数 一个有效等价类两个无效等价类
    规定了输入值的集合规定了必须如何的条件 一个有效等价类一个无效等价类
    是一个布尔量 一个有效等价类一个无效等价类
    输入数据的一组值(n个),并且程序对每一个输入值分别进行处理 n个有效等价类一个无效等价类
    规定必须遵守的规则 一个有效等价类(符合规则)若干个无效等价类
    在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类
        
    4列出等价类表
    在确定了等价类之后,建立等价类表,列出所有划分出的等价类
    输入条件 有效等价类 无效等类
    …… …… ……
    5确定测试用例步骤
    第一步:为每个等价类规定一个惟一的编号
    第二步:设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步骤,最后使得所有有效等价类均被测试用例所覆盖
    第三步:设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步骤,最后使得所有有效等价类均被测试用例所覆盖
    小结:采用等价类划分方法设计测试用例,按照划分等价类、列出等价列表、确定测试用例三个步骤完成,目标是把可能的测试用例组合缩减到仍然足以满足软件测试需求为止。
    2
    .边界值分析法
    1边界类型
    边界条件:可以在产品说明书中有定义或者在使用软件过程中确定
    次边界条件:在软件内部,也称为内部边界条件
    其他边界条件:如输入信息为空(对于此类问题应建立单独的等价类空间)、非法、错误、不正确和垃圾数据
    2)边界值的选择方法(遵循原则)
    序号 输入条件(数据) 输入边界值数据
    规定了取值范围 刚刚达到这个范围刚刚超越这个范围
    规定值的个数 最大个数、比最大个数大1最小个数、比最小个数少1
    根据规格说明书的每个输出条件,使用原则12
    输入或输出是个有序集合 集合的第一个、最后一个元素
    程序中使用一个内部数据结构 内部数据结构边界上的值
    分析规格说明,找出其他可能的边界
    3)例子:
    允许文本输入1255个字符:测试用例-12552540256
    程序读写软盘:测试用例-文件很小、等于软盘容量限制之内、空、超过
    程序允许在一张纸上打印多个页面:测试用例-只打印一页,规定最大页,0页,大于允许最大页数
    3
    .错误推测法
    基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例
    4
    .因果图法
      
    侧重于输入条件的各种组合,各个输入情况之间的相互制约关系
    1 因果图设计方法
    从用自然语言书写的程序规格说明的描述中找出因果,通过因果图转换成判定表
    2 因果图导出测试用例步骤
    第一步:分析程序规格说明的描述中,哪些是原因,哪些是结果。原在因常常是输入条件或是输入条件的等价类,结果是输出条件
    第二步:分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的因果图
    第三步:标明约束条件
    第四步:把因果图转换成判定表
    第五步:为判定表中每一列表示的情况设计测试用例

  • TAG:

     

    评分:0

    我来说两句

    Open Toolbar