我要学测试啦(一)

1. 软件测试概念

  • 1983,IEEE提出的软件工程标准术语,软件测试定义如下:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际解雇之间的差别”。
  • 测试的目的与任务:目的是发现程序错误,是为了证明程序有错,而不是证明程序无错;任务是通过执行程序,暴露潜在的错误,
  • 纠错的目的与任务:目的是定位和纠正错误,任务是消除软件故障,保证程序的可靠运行

2. 测试类型划分

  • (1)白盒测试、黑盒测试和灰盒测试

    • 白盒测试

      • 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
    • 黑盒测试

      • 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。
      • 试图发现以下几类错误:
        • 不正确或遗漏的功能
        • 接口错误
        • 数据结构或外部数据库访问错误
        • 性能错误
        • 初始化和终止条件错误
    • 灰盒测试

      • 介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
  • (2)单元测试、集成测试

    • 单元测试

    • 针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
    • 集成测试

    • 也叫组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统。
  • (3)系统测试、回归测试、用户(UAT)测试、场景测试

    • 系统测试

      • 系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。系统不仅仅包括软件本身,而且还包括计算机硬件及其相关的外围设备、实际运行时大批量数据、非正常操作(如黑客攻击)等。通常意义上的系统测试包括压力测试、容量测试、性能测试、安全测试、容错测试等。
      • 1)压力测试

        • 也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试的目的就是在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统硼J靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。
      • 2)容量测试

        • 容量测试(c印ac时test):预先分析出反映软件系统应用特征的某项指标的极限值,如某个web站点可以支持多少个并发用户的访问量、网络在线会议系统的与会者人数。知道了系统的实际容量,如果不能满足要求,就应该寻求新的解决方案, 以提高系统的容量。若一时没有新的解决方案,就有必要在产品发布说明书上明确这些容量的限制,避免引起软件产品使用上的纠纷。如果实际容量已满足要求,就能帮助用户建立对产品的信心。
      • 3)性能测试

        • 通过测试确定系统运行时的性能表现,如得到运行速度、响应时间、占有系统资源等方面的系统数据。对丁那些实时或嵌入式系统,系统有时满足了功能要求,但未必能够满足性能要求,如某个网站可以被访问, 而且可以提供预先设定的功能,但每打开一个页面都需要1~2分钟,用户不可忍受,其结果没有用户愿意使用这个网站所提供的服务。
      • 4)安全测试

        • 检查系统对非法侵入的防范能力。安全测试期间。测试人员假扮非法入侵者,采用各种办法试图突破防线。系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。
      • 5)容错测试

        • 主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。容错测试首先要通过各种手段,让软件强制性地发生故障,然后验证系统是否能尽快恢复。对于自动恢复需验证熏新初始化、检查点、数据恢复和重新启动等机制的正确性
    • 冒烟测试

      • 就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。这里的基本功能,包括新开发的功能,和以前原有的功能。冒烟测试常用于两个阶段,一个是提测前,一个是上线前。提测前的冒烟测试,如果不通过,则打回开发那边重新开发;如果通过测试,才会进行下一步的测试(功能测试,集成测试,系统测试等等)。冒烟测试优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。上线前的冒烟测试,是对指基本功能(新增功能和原有功能)的二次确认,如果没有问题,则是冒烟测试通过。
    • 回归测试

      • 回归测试是指修改了旧代码后重新进行测试,确认修改没有引入新的错误或导致其他代码产生错误,即以前版本中发现的bug在新的版本中验证是否存在且是否引发新的bug。常用于两个阶段,一个是提测前,一个是第二轮测试。多数情况下,指的是第二个阶段:二轮测试。提测前:当一个新版本开发好后,而且冒烟测试通过,此时可以先用上一个版本的测试用例对新版本进行测试,看是否有bug!二轮测试:就是当你修复一个bug后,把之前的测试用例再次应用到修复后的版本上进行测试。
    • 用户(UAT)测试、验收测试、确认测试

      • UAT,(User Acceptance Test),也就是用户验收测试,验收测试是在功能测试和系统测试之后进行的,所以验收测试的前提条件是系统或软件产品已通过了内部测试。然后和用户一起验收软件,在真实环境下运行软件,看是否存在与用户需求不一致的问题或违背产品规格书的要求。由于测试人员不可能完全用户实际使用情况,所以软件是否真正满足最终用户的要求,应由用户进行一系列的验收测试。
      • 正式验收测试
      • 非正式验收测试
        • α测试

          • 由用户、测试人员、开发人员共同参与的内部测试。
        • β测试

          • 内测后的公测,即完全交给最终用户测试。
    • 场景测试

      • 每个事件触发时的情景便形成了场景。而同一事件不同的触发顺序和处理结果形成事件流。通过运用场景来对系统的功能点或业务流程进行描述,从而提高测试效果的一种方法。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。
  • (4)探索性测试、即兴测试

    • 探索性测试

      • 探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。对探索性测试最直白的定义是:同时设计测试和执行测试。探索性测试有时候会与即兴测试(ad hoc testing)混淆。
    • 即兴测试

      • 通常是指临时准备的、即兴的Bug搜索测试过程。从定义可以看出,谁都可以做即兴测试。由Cem Kaner提出的探索性测试,相比即兴测试是一种精致的、由思想的过程。在对测试对象进行测试的同时学习测试对象并设计测试,在测试过程中运用获得的关于测试对象的信息设计新的更好的测试。
  • (5)手工测试和自动化测试

    • 手工测试

      • 手工测试能通过人为的逻辑判断效验当前的步骤是否正确,同时用例的执行具有一定步骤跳跃性,能够清楚知道逻辑,细致定位问题。如果修改bug所需时间稍长,那么想将手工测试应用于回归测试将变得异常困难。这是因为需要测试的测试用例太多,所以需要引入自动化测试。一些灵活的,比如场景测试就手工测试。
    • 自动化测试

      • 执行的对象是脚本,能通过人为的逻辑判断效验当前的步骤是否正确实现,用例步骤之间关联性强,不像手工测试用例那么跳跃。另外也是用来保证产品主体功能正确和完整,让测试人员从繁重的工作中解脱出来。可以更好的利用资源。在夜间执行自动测试用例。测试具有移植性和可重复性。好的测试脚本往往具有较好的平台移植性。可以更快地将软件推向市场。因为自动测试节省了大量的时间。但是自动化测试要求的先期投入比较大,而且要求人员必须经过严格的培训。

3. 测试流程

单元测试 > 开发集成测试 > 冒烟测试 > 系统测试/性能测试 > 用户验收测试 > 回归测试

4、测试方法与测试用例设计

推荐视频:传智播客软件测试自学视频-黑盒测试用例设计方法篇-黑马突击实战视频

  • 黑盒测试常用方法

    • (1)等价类划分

    • 主要思想:根据被测对象的功能说明和输入域,按合理的或不合理划分为若干等价类,为每个等价类设计一个测试用例,这样大大减少测试次数,提高测试效率。
    • 设计测试用例:
      • 1) 为每个等价类编号;
      • 2)设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的合理等价类,重复这一步直到所有合理等价类都被覆盖;
      • 3)设计一个测试用例,使其只覆盖一个尚未被覆盖的不合理等价类,重复这一步直至所有不合理等价类都被覆盖。
    • 例:某工厂公开招工,规定报名者年龄应在16周岁至35周岁之间(到2002年3月30日止),即出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等错误信息。
    • (2)边界值分析法

    • 使被测程序在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值