为了账号安全,请及时绑定邮箱和手机立即绑定

软件测试基础-概念篇

城下秋草 软件测试工程师
难度入门
时长 3小时 2分
学习人数
综合评分9.57
110人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • 软件测试的分类:

    http://img1.sycdn.imooc.com//5e745eb100012b6a05440272.jpg

    黑盒测试:优点:简单易操作,贴近用户角度。缺点:覆盖率低,自动化复用率低

    黑盒测试的主要方法:等价类划分、边界值分析、错误推测、因果图、正交试验分析、状态迁移、流程分析

    白盒测试: 逻辑单位:语句、条件、条件组合、分支、路径

    优点:思考软件的实现,理解原理。检测代码中的每条分支和路径。揭示隐藏在代码中的错误。对代码的测试比较彻底

    缺点:工作量大,成本高。无法检测代码中遗漏的路径和数据敏感性错误。不能直接验证需求的正确性

    白盒测试的主要方法:代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法

    静态测试



    动态测试

    手工测试

    自动化测试


    查看全部
    2 采集 收起 来源:软件测试手段

    2020-03-20

  • 软件测试的经典定义:为了发现错误而执行程序的过程

    软件测试IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异

    软件测试的五大要素:质量,人员,资源,流程,技术

    软件测试的两大目标:测试覆盖率和测试效率

    软件测试遵循的原则:

        1.测试显示错误的存在,但不能证明系统不存在缺陷

        2.穷尽测试是不可能的,应及时设定终止条件

        3.测试应尽早进行

        4.缺陷具备集群特性

        5.测试的杀虫剂悖论

        6.测试的二八原则

        7.测试活动依赖于测试背景

    查看全部
    2 采集 收起 来源:软件测试概要

    2019-06-22

  • 脑图总结软件测试全部概念

    查看全部
    2 采集 收起 来源:其他测试分类

    2019-02-27

  •                         软件测试分类

     按测试类型分:   功能测试     性能测试       兼容性测试

                                                  部署测试       易用性测试

                                                  文档测试       本地化测试

                                                  安全测试       无障碍测试     可靠性测试 

    功能测试:

    定义:根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。

    针对的问题:功能错误或遗漏、界面问题、性能错误数据及访问错误初始化及终止错误



    查看全部
    2 采集 收起 来源:软件测试类型

    2019-02-20

  • V模型
    查看全部
    2 采集 收起 来源:软件测试模式

    2018-12-02

  • 软件测试的分类

    按测试阶段分类:单元测试、集成测试、系统测试、验收测试

    一、单元测试:对软件中的最小可测试单元进行检查和验证。(单元:是人为规定的可测试的一个最小的模块。)一般针对代码进行测试。非常重要,是其他测试的基础。

    单元测试的原则:

    1. 尽可能保证各个测试用例是相互独立的。

    2. 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。

    单元测试的益处:

    1. 能尽早发现缺陷

    2. 有利于重构

    3. 简化集成

    4. 文档

    5. 用于设计

    单元测试的限制:

    1. 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。

    2. 每行代码,一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。

    二、集成测试:在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。

    集成测试的主要实施方案:

    1. Big Bang (大爆炸/一次性集成)

    2. 自顶向下

    3. 自底向上

    4. 核心系统集成

    5. 高频集成

    集成测试&单元测试的主要区别

    1. 测试对象不同(集成测试针对模块、子系统;单元测试针对基本单元、最小单元)

    2. 测试依据不同(集成测试针对概要设计;单元测试针对详细设计)

    3. 测试方法不同(集成测试关心模块之间接口的集成;单元测试只关心单元的内部)

    三、系统测试:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。

    系统测试关注点:

    1. 关注系统本身的使用

    2. 关注系统与其他相关系统间的连通

    3. 关注系统在不同使用压力下的表现

    4. 关注系统在真实使用环境下的表现

    系统测试&集成测试的区别

    1. 测试对象不同(系统测试针对除软件之外还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统;集成测试针对通过了单元测试的各个模块所集成起来的构件)

    2. 测试时间(系统测试在集成测试之后;集成测试介于单元测试和系统测试之间)

    3. 测试内容(系统测试:整个系统的功能与性能;集成测试:各个单元模块之间的接口)

    4. 测试角度(系统测试:偏于业务角度的验证;集成测试:偏于技术角度的验证)

    三、验收测试(交付测试):针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。

    细分可分为:

    用户验收测试、运行验收测试、合同和规范验收测试、alpha测试(开发者版本)、beta测试(脱离开发者,在用户版本上)


    查看全部
    4 采集 收起 来源:软件测试阶段

    2018-10-10

  • 一、软件测试的定义:

    1.软件测试是对程序能够按预期运行建立起一种信心。

    2.测试是为了发现错误而执行程序的过程。

    3.IEEE定义(ISO/IEC/IEEE 29119)

    使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

    二、测试对象:

    软件需求、软件概要设计、软件详细设计、软件运行环境、软件源代码、可运行程序

    三、五大要素和两个目标:

    软件测试五大要素:质量、人员、资源、流程、技术

    两个目标:测试覆盖率、测试效率

    四、软件测试所遵循的原则:

    1. 测试显示缺陷的存在,但不能证明系统不存在缺陷

    2. 穷尽测试是不可能的,应设定及时终止的条件

    3. 测试应尽早进行(因为前期修复bug的代价小)

    4. 测试具备群集特性(发现某模块问题越多,说明该模块没发现的问题更多,需重点关注)

    5. 测试的杀虫剂悖论(测试用例与方法应不定期地评审、修改、增加)

    6. 测试的二八原则(80%的资源用在20%的zhongdian)

    7. 测试活动依赖于测试背景


    查看全部
    5 采集 收起 来源:软件测试概要

    2018-10-08

  • 敏捷测试

    Agile Testing--遵循敏捷宣言的一种测试实践

    敏捷测试强调从客户角度进行测试

    重点关注迭代测试新功能,不在强调测试阶段

    尽早测试,不间断测试,具备条件既测试

    强调持续反馈

    预防缺陷重于发现缺陷https://img1.sycdn.imooc.com//5b8de8e80001cd0805320334.jpg


    https://img1.sycdn.imooc.com//5b8de91d00014d6705980336.jpg

    基于脚本的测试-SBT

    Script-based Testing

    Scripted Testing(ST)

    Exploratory Testing(ET) 逐渐开始非常流行的方式

    探索式测试(ET)

    完全抛开测试脚本的测试

    它是一种测试风格、思维而不是一种测试技术

    ST和ET是互补的

    https://img1.sycdn.imooc.com//5b8ded20000119e105990324.jpg

    https://img1.sycdn.imooc.com//5b8ded640001c96d05510344.jpg

    探索式测试的优点:

    更能激发测试人员的创造性和工作乐趣

    增加了发现新的或较深入Bug的可能性

    在较短的时间内找到更多Bug以及对SUT做一个快速的评估

    有利于更加有效地实施自动化

    更加适用于敏捷项目

    减少了在简单、繁复上用例的无谓编写时间

    探索式测试的缺点:

    测试管理上有局限性,较难协调和控制

    对于Bug的重复利用和重现上作用有限

    对测试人员的测试技能和业务知识深度依赖较大

    只有在SUT已完全可用的前提下才更有作用

    ET的生产率很难定义

    ET本身较难进行自动化

    局部探索式测试

    输入、状态、代码路径、用户数据、执行环境(被测系统的五大要素)

    https://img1.sycdn.imooc.com//5b8df0b10001d77c04940325.jpg


    https://img1.sycdn.imooc.com//5b8df10500012bca06030252.jpg

    基于风险的测试-RBT

    Risk-based Testing

    一种基于对软件失效的风险评估并以此指导测试计划、设计、执行、结果评价的软件测试类型

    那些是风险?

    质量风险

    管理风险

    风险级别=风险可能性*风险严重度

    https://img1.sycdn.imooc.com//5b8df27c000149ea05490315.jpg

    分析要素分=Sum(单项权重*得分)

    基于模型的测试-MBT

    https://img1.sycdn.imooc.com//5b8df3ee0001859d05040339.jpg



    查看全部
  • 按测试手段分类

    黑盒测试、白盒测试

    静态测试、动态测试

    手工测试、自动化测试


    黑盒测试覆盖率低,一般只能覆盖到代码量的不到40%,复用率低,维护成本高

    https://img1.sycdn.imooc.com//5b8dd5c90001c54708150389.jpg


    白盒测试(结构法测试/透明测试)

    主要的逻辑单位:语句、条件、条件组合、分支、路径

    白盒测试的主要测试方法:

    代码检测法静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法

    灰盒测试

    介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现

    静态测试

    静态测试是指无须执行被测程序

    https://img1.sycdn.imooc.com//5b8dd952000136c506900375.jpg

    动态测试:

    动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。

    手工测试:

    由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。

    众包测试、探索式测试

    自动化测试:

    使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。

    单元测试、接口测试、性能测试等

    https://img1.sycdn.imooc.com//5b8ddc60000130df07230376.jpg

    查看全部
    2 采集 收起 来源:软件测试手段

    2018-09-04

  • 负载测试:指的是在我们测试过程中,来逐步的增加负载,并且记录下被测系统相应的性能表现,最终确定出,系统在正常指标下的一个最大的负载

    压力测试:指的是测试系统在极限情况下的压力情况,也就是确定我们的系统,在什么样的负载压力下,会导致我们系统的失效,不能够正常运行

    ,确定出系统所能承受的最大的一个极限

    稳定性测试:指稍大于一个正常业务量的负载,对系统进行持续的,长时间的测试,比如24*5,连续五天的对这个系统施加压力,以确定系统在较长运行时间的情况下,这个系统的稳定性情况

    查看全部
  • 测试类型如果按测试阶段分:

    单元测试,集成测试,系统测试,验收测试

    单元测试流程:(尽量保持测试的相互独立,比如登陆中密码的提取不要用数据库的)

    打开eclipse,创建工程,右键Properties,build path然后add library,然后导入JUnit包,导入一个。java文件夹,右键创建一个JUnit Test,可选择一些方法,一般选择setUp()【开始时的动作】和tearDown()【结束时动作】,随后选择待测方法

    单元测试与集成测试的区别:

    a.测试对象不同(单元:针对软件的最小单元;集成:针对模块与子系统,主要测试模块与模块间的接口)

    b.测试依据不同(单元:针对软件的详细设计;集成:针对软件的概要设计)

    c。测试方法不同(单元:关心单元的内部;集成:关系模块间的接口)

    系统测试:在集成测试的基础上,对系统在实际运行环境下进行测试(一般有性能测试,功能测试,稳定性测试等多种测试类型。)

    集成测试和系统测试的区别:

    测试对象不同(集成测试是通过了单元测试的各个模块所集成起来的构件;系统测试;系统测试是除了软件以外,还包括计算机硬件及相关的外围设备、数据采集和传输机构等整个软件)

    测试时间不同

    测试内容不同(集成:各个单元模块之间的接口;系统:整个系统的功能和性能)

    测试角度不同(集成偏向技术验证;系统偏向业务验证)

    验收测试:也称交付测试。针对用户需求,业务流程的正式测试,确定系统是否满足影虎的验收标准。由用户、客户或其他授权机构决定是否接受系统。

    查看全部
    2 采集 收起 来源:软件测试阶段

    2018-07-14

  • 软件测试的分类:

    按测试阶段来分类:单元测试、集成测试、系统测试、验收测试。

    单元测试

    什么是单元测试?

    对软件中的最小可测试单元进行检查和验证。

    单元测试的原则:

    1. 尽可能保证各个测试用例是互相独立的。

    2. 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。

    单元测试的益处:

    1. 能尽早发现缺陷

    2. 有利于重构

    3. 简化集成

    4. 文档

    5. 用于设计

    单元测试的限制

    1. 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。

    2. 每一行代码,一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。

    单元测试框架

    Xunit

    JUnit、nunit、CPPUnit、PHPUnit

    集成测试定义:

    是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或者系统的过程中各部分工作是否达到或者实现相应技术指标及要求的活动。

    集成测试的主要实施方案

    1. Big Bang

    2. 自顶向下

    3. 自底向上

    4. 核心系统集成

    5. 高频集成

    2/3瀑布式研发常用。4/5敏捷型研发常用。

    集成测试&单元测试

    1. 测试的对象不同

    2. 测试的依据不同 单元 详细设计  集成  概要设计

    3. 测试的方法不同 单元 注重单元内部  集成 注重接口之间

    系统测试定义:

    是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。

    单元、集成测试更多用模拟的方法测试,系统测试是在真实运行环境中测试。

    系统测试中包含功能测试、性能测试、稳定性测试。

    关注点

    关注系统本身的使用

    关注系统与其他相关系统间的连通

    关注系统在不同使用压力下的表现

    关注系统在真实使用环境下的表现

    系统测试&集成测试

    测试对象

    集成测试:由通过了单元测的各个模块所集成起来的构件

    系统测试:除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统

    测试时间

    集成测试介于单元测试和系统测试之间测试

    系统测试在集成测试之后

    测试内容

    集成测试:各个单元模块之间的接口

    系统测试:整个系统的功能和性能

    测试角度

    集成测试:偏于技术角度的验证

    系统测试:偏于业务角度的验证

    验收测试(交付测试)定义:

    针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或者其他授权机构决定是否接受系统。

     细分

    用户验收测试

    运行验收测试

    合同和规范验收测试

    alpha测试  开发者的环境

    beta测试  真实的用户环境





    查看全部
    2 采集 收起 来源:软件测试阶段

    2018-07-12

  • 软件测试的分类

    按测试阶段来分类  单元测试  集成测试  系统测试  验收测试

    单元测试:对软件中的最小可测试单元进行检查和验证。

    单元测试的原则:1.尽可能保证各个测试用例是相互独立的

    2.一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。

    单元测试的好处:1、能尽早的发现缺陷

    2.有利于重构。

    3.简化集成

    4.文档

    5.用于设计

    单元测试的限制:1.不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。2.每一行代码,一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。

    集成测试:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。

    集成测试的主要实施方案:1.Big Bang     2.自顶向下     3.自底向上   4.核心系统集成     5.高频集成

    集成测试和单元测试的区别

    1. 测试的对象不同

      单元测试对象:软件的基本单元,最小的单元

      集成测试对象:模块与模块之间接口的关系

    2. 测试的依据不同

      单元测试依据:针对软件的详细设计

      集成测试依据:针对软件的概要设计

    3. 测试的方法不同

      单元测试方法:单元的类

      集成测试方法:模块与模块接口的集成

    系统测试:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。(功能测试,性能测试,稳定性测试)

    系统测试关注点

    1. 关注系统本身的使用

    2. 关注系统与其他相关系统间的连通

    3. 关注系统在不同使用压力下的表现

    4. 关注系统在真实使用环境下的表现

    系统测试与集成测试的区别

    1. 测试对象不同

      集成测试对象:由通过了单元测试的各个模块所集成起来的构件

      系统测试:除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统。

    2. 测试时间不同

      集成测试介于单元测试和系统测试之间测试

      系统测试在集成测试之后

    3. 测试内容

      集成测试:各个单元模块之间的接口

      系统测试:整个系统功能和性能

    4. 测试角度

      集成测试:偏于技术角度的验证

      系统测试:偏于业务角度的验证

    验收测试:也称交付测试,针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准、由用户、客户或其他授权机构决定是否接受系统。

    验收测试细分  1、用户验收测试   2、运行验收测试   3、合同和规范验收测试

    alpha测试:是由开发者提供操作环境,用户进行执行的

    Beta测试:脱离开发者,用户操作环境,用户执行。

    查看全部
    3 采集 收起 来源:软件测试阶段

    2018-07-03

  • 按测试阶段来分类:单元测试,集成测试,系统测试,验收测试

    查看全部
    2 采集 收起 来源:软件测试阶段

    2018-04-25

  • 其他的一些测试类型概念:回归测试、冒烟测试、Monkey测试、AB测试


    回归测试:软件功能修改后,对软件进行重新测试已确认修改没有引入新的错误或导致其他部分产生错误。

    回归测试的中心在关键模块和重点功能组件。

    软件研发周期中会进行多次回归测试,且尽量实现自动化。


    Monkey测试:也称搞怪测试。就是用一些随机、稀奇古怪的方式来操作软件,以测试系统的健壮性和稳定性。


    冒烟测试:来自于硬件板卡验证术语。软件上则用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。


    A/B测试:多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确定更优化设计的一种测试方案。

    A/B测试实施要点:

    1、多个方案并行

    2、每次测试仅改动一个变量

    3、按照某种规律进行优胜劣汰


    下面介绍了两个A/B测试工具


    查看全部
    2 采集 收起 来源:其他测试分类

    2018-03-23

举报

0/150
提交
取消
课程须知
本门课程适合有志于从事软件测试或在校软件专业的同学学习, 最好了解一些软件工程的基本概念,对软件测试这个职业有一些最基本的认识。(随堂资料:http://img1.sycdn.imooc.com//down/57bd4d2f0001474e00000000.rar)
老师告诉你能学到什么?
通过学习本门课程,能够理清我们接触到得各种不同的软件测试概念以及它们的主要作用和适用场景,可以更加理解软件测试这个职业的作用和对软件产品的意义。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!