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

软件测试基础-概念篇

难度入门
时长 3小时 2分
学习人数
综合评分9.57
111人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • 黑盒测试的主要设计方法

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

    2020-04-20

  • 核心:软件质量
    查看全部
    0 采集 收起 来源:软件测试概要

    2020-04-11

  • 什么是软件测试?

    早期定义

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

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

    2020-04-11

  • 安全测试:对软件产品进行测试以确保其符合产品安全需求和质量标准。

    渗透测试:通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试。

    查看全部
  • 性能测试:负载测试、压力测试、 稳定性测试

    查看全部
  • 单元测试:Junit
    查看全部
    0 采集 收起 来源:软件测试阶段

    2020-03-27

  • 兼容性测试http://img1.sycdn.imooc.com//5e7ce74e0001369408630433.jpg

    查看全部
  • https://img3.sycdn.imooc.com/5af174050001328107330296.jpg

    (1)软件本身的兼容性:主要是软件的向后兼容,如软件升级,以前版本的功能也能使用

    (2)不同平台下的兼容性:如在Linux系统下的ubuntu、openSUSE等,进行平台的兼容性测试

    (3)对不同的设备的兼容性:如32位、64位、如小型机、PC等

    (4)软件的相互的操作性:如和一些主流应用的兼容,也就是说和大众软件互通,比如和微信、微博、QQ能适用,有时是很多网站的登录。。。。


    查看全部
  • https://img3.sycdn.imooc.com/5af174050001328107330296.jpg

    (1)软件本身的兼容性:主要是软件的向后兼容,如软件升级,以前版本的功能也能使用

    (2)不同平台下的兼容性:如在Linux系统下的ubuntu、openSUSE等,进行平台的兼容性测试

    (3)对不同的设备的兼容性:如32位、64位、如小型机、PC等

    (4)软件的互操作性:如和一些主流应用的兼容,也就是说和大众软件互通,比如和微信、微博、QQ能适用,有时是很多网站的登录。。。。


    查看全部
  • https://img3.sycdn.imooc.com/5af174050001328107330296.jpg

    (1)软件本身的兼容性:主要是软件的向后兼容,如软件升级,以前版本的功能也能使用

    (2)不同平台下的兼容性:如在Linux系统下的ubuntu、openSUSE等,进行平台的兼容性测试

    (3)对不同的设备的兼容性:如32位、64位、如小型机、PC等

    (4)软件的互操作性:如和一些主流应用的兼容,也就是说和大众软件互通,比如和微信、微博、QQ能适用,有时是很多网站的登录。。。。


    查看全部
  • 3-3 安全测试


    安全测试:对软件产品进行测试以保证其符合产品安全需求和质量标准

    渗透测试:通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试


    OWASP:Open Web Application Security Project  开放网络应用安全项目

    安全测试:

    是否符合产品安全需求和质量标准。

    渗透测试:

    通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试,与黑客不同于,黑客未授权,而且最后还会抹掉记录。

    渗透测试 VS 安全测试

                             攻————–防

                             点————–面

    可以查看OWASP网站,关注网站中的OWASP Top10和Test Guide

    安全测试工具:

    APPscan(针对web应用的漏洞扫描)、Webinspect(类似APPscan)、Nessus(针对服务器主机类)、Nmap(端口嗅探工具)、MetaSploit(攻击框架、渗透测试)、WebScarab(代理劫持)、Fortify(白盒测试,代码静态分析)、W3AF(开源针对web应用)

    OWSP    Top Ten Project 

    1.Injection 注入脚本漏洞使用户访问到不该访问的数据的目的 2.Broken Authentication and Session Management 失效的身份认证和会话管理  会话劫持漏洞 3.Cross—Site Scripting(XSS)跨站脚本 4.Insecure Direct Object References 不安全的对象直接引用  参数的保护 5.Security Misconfiguration   安全配置类错误 6.Sensitive Data Exposure    敏感信息泄露   信息传递没有对关键信息进行加密 7.Missing Function Level Access Control   功能级别访问控制缺失   比如访问网站可以访问到用户没有权限到达的地方 8.Cross-Site Function Level Access Control(CSRF)  跨站请求伪造   9.Using Components with Known Vulnerabilities    使用了已知有漏洞的组件   10.Unvalidated Redirects adn Forwards    未被验证的重定向和转发  (钓鱼网站)

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

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

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

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


    查看全部
  • 测试模型分类:

    1. 瀑布模型:

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

      1.项目计划书、2.需求说明书、3.根据需求定义来确定产品实现的方案,包括定义软件、硬件的结构、组件模块的组建方法、接口界面数据如何进行组织,这阶段会输出概要设计、详细设计等多份设计说明书,4.根据需求和设计具体实现产品,来根据编程规范构建各类的组件模块最后输出产品版本,5.通过独立的测试小组来评估产品是否满足需求的定义,最后输出测试结果、测试报告,6.则是产品经过测试阶段后,交付给用户,根据用户的使用情况在对产品进行维护以及必要的修改升级等

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

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

    1. http://img1.sycdn.imooc.com//5e7cde330001f42c10250591.jpg

    2. 敏捷测试:

    3. 基于脚本的测试

    4. 基于风险的测试

    5. 探索式测试



    查看全部
    0 采集 收起 来源:软件测试模式

    2020-03-27

  • 按测试手段分类

    可见度分类

    黑盒测试:不考虑程序内部结构和内部特性,通过内部相关暴露出来的接口对程序进行测试,只检测程序的功能是否能够按照需求规格说明的规定正常的使用,是否能适当的接受输入数据并产生正确的输出,针对软件外部可见的部位,如界面及可见的功能来进行测试。更多是从用户的需求通过不同的数据或事件来驱动系统,并通过输出结果来进行判断

    优点:

    1. 容易实施,不需要关注内部的实现

    2. 更贴近用户的使用角度

    缺点:

    1. 测试覆盖率较低,一般只能覆盖到代码量的不到40%

    2. 针对黑盒的自动化测试,复用率较低,维护成本较高。

    关注点:

    1. 是否有不正确或遗漏的功能

    2. 在接口上,输入是否能正确的接受?能否输出正确的结果?

    3. 是否有数据结构错误或外部信息(例如数据文件)访问错误?

    4. 性能上是否能够满足要求

    设计方法

    1. 等价类划分法,将所有的输入等价的划分若干典型输入,并将这些典型的输入设计为测试用例(有效等价类和无效等价类)

    2. 边界值分析法,特殊等价类划分法,测试各种边界条件,如数据区间,开发在边界值上是很容易出现失误的地方,在边界上加一减一进行测试

    3. 错误推测法,基于经验或直觉来判断程序中可能出现错误的原因,从而针对性的设计用例,如在登录时考虑格式,在输入文件时考虑文件大小

    4. 因果图法,拿到需求说明书,针对每一种输入和输出,看作原因和结果,对输入和输出赋予特殊的标识符,然后将这些情况形成因果图,最终根据规格语义的说明形成一个判定表,根据判定表来设计测试用例

    5. 正交试验分析法,利用正交法从一组数据中筛选出典型的代表性数据的测试方法,主要用于筛选我们的输入数据,然后在设计用例输入输出

    6. 状态迁移图法,通过梳理软件功能点里面的状态迁移关系来设置测试用例,状态迁移如软件审批的功能,提交审批到待审批到审批,审批有具结,通过退回这样的状态,那退回到提交者,他也会修改再重新提交然后审批通过这样各种各样的状态,通过画出这些状态之间的一个关系图来设置用例

    7. 流程分析法,通过梳理整个程序的逻辑执行的路径来设置测试用例,

    白盒测试:又称结构化测试和透明测试,通过程序逻辑结构来设计测试用例,通过覆盖率来衡量测试的完整性,逻辑单位为:语句、条件、条件组合、分支、路径,其覆盖为每条测试

    优点:

    1. 迫使测试人员去仔细思考软件的实现,理解原理

    2. 可以检测代码中的每条分支和路径

    3. 揭示隐藏在代码中的错误

    4. 对代码的测试比较彻底

    缺点

    1. 昂贵,(要求覆盖,工作量大)

    2. 无法检测代码总遗漏的路径和数据敏感性错误

    3. 不能直接验证需求的正确性

    测试方法:

    1. 代码检测法:主要包括多面检查、代码审查和走查,主要代码

    2. 静态结构分析法:测试者主要通过测试工具分析源代码的数据结构,逻辑结构、内部的控制逻辑这样内部结构的分析来设计测试用例

    3. 静态质量度量法:根据标准的质量模型,比如ISO的质量标准来构造质量的度量模型,用于软件的各个方面的测试

    4. 逻辑覆盖法:逻辑、语句、条件、分支、条件组合、判定覆盖、笃定覆盖、条件和判定的组合覆盖

    5. 基本路径测试法:(白盒测试中主要的测试方法),是在程序控制流图的方法下通过分析、控制构造的圈复杂度,导出基本可执行的路径的集合,设计测试用例的方法

    状态分类

    静态测试:无须执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检测软件是否符合编辑标准,借以发现编写的程序的不足之处,减少错误出现的概率(方法与白盒相似)

    方式有:互审(程序员相互检测代码)、走查(一个小组一起集体走查程序或文档)、会议(会议相应记录、结果文档)。不正式到正式

    动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。(方法与黑盒相似)

    执行方式分类

    手工测试:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。(众包测试、探索式测试)

    自动化测试;使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。(单元测试、接口测试、性能测试等)

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

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

    2020-03-27

  • 软件测试的分类

    按测试阶段分类:

    单元测试:对软件中的最小可测试单元进行检查和验证(代码测试,是最重要的测试,是其他测试的基础)

    最小单元定于不同情况不同,如

    C语言: 一个函数

    java:每个类

    界面功能:菜单项、子窗口功能

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

              2.一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。(实施单元测试的人要对实施的单元代码有相当程度的了解)

    单元测试的益处:能尽早发现缺陷(相对于开发人员再次对比需求二次开发)、有利于重构、简化集成(单元测试保证了最小单元模块的稳定性和精确性)、文档(通过对单元测试的代码就可以基本了解到模块功能特性)、用于设计(把设计思路体现在单元测试上)

    单元测试的限制:

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

    2. 每一行代码,一般需要3~5行代码才能完成单元测试。所以存在投入和产出的一个平衡。(所以要选择性价比高的地方进行测试)

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

    单元测试的执行(Junit为例子):

    在eclipse中建立一个java工程,将Junit的一些相关的依赖库导入到java工程中,导入java项目代码到工程中来,在相应代码文件上右键选择Junit test,可见待测的所有方法,选择需要测试的方法,生成我们单元测试的基本框架,调整,运行单元测试,得结果及相应的测试方法及是否异常。


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

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

    1. Big Bang:一次性测试,大爆炸测试形成完整大量的集成的测试,即将所有的测试组装好再进行完整测试

    2. 自顶向下:从主程序开始,逐层的向下进行集成测试,覆盖所有模块

    3. 自底向上:(常用,其他集成测试都或多或少吸取这种测试方法)从程序的最底层开始逐层进行组装,逐层进行测试,好处是对已经组装好的进行测试,不需要再组成桩模块,就是模拟真实模块的一些动力,优点比较好的锁定项目出错的位置。

    4. 核心系统集成:先把核心的软件部分挑选出来,并对这些部位进行集成测试,在测试通过的基础上再对其他外围的部件进行集成测试

    5. 高频集成:同步于软件开发过程,每隔一段时间,开发团队就对现有的程序进行集成测试,

    6. 23常用在传统瀑布式,45常用于现代常用测试

    总结:

    单元测试对象是最小子系统,集成测试对象是子系统,模块

    单元测试关系程序的类。集成测试关心的是模块与模块之间的关系,接口测试

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

    关注点:系统本身的使用、系统与其他系统间的连通、系统在不同的使用压力下的表现、系统在真实使用环境下的表现

    区别:

    测试对象:

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

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

    测试角度:

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

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


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

    细分

    用户验收测试(开发方在移交产品之前来运行的测试,测试的执行人是开发方)

    运行验收测试:(更多在运维的方面来看这个系统是否可以正常运行和正常维护,如系统上线后的备份容灾、灾量恢复、这些场景是否正确进行运行验收测试)

    合同和规范验收测试:参照约定的规范进行一个验收,而且一般还会针对政府和法律法规里的合规进行验证

    alpha测试:在开发者提供的场所和环境中运行,一般由用户执行,

    Beta测试:完全脱离开发者环境,在我们用户提供的场景环境下进行测试

    Y:在系统完全交付的环境下进行

    ITT测试:在用户流程中进行测试,满足功能代码满足验收测试的条件

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

    2020-03-26

  • 什么是软件测试?

    早期定义:软件测试是对程序能够按预期运行建立起一种信心 - Bill Hetzel,1973

    经典定义:测试是为发现错误而执行程序的过程 - Myers,1979

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


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

    两个目标:提升测试覆盖率和提升测试效率


    软件测试所遵循的原则

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

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

     3、测试应该尽早进行

    4、缺陷具备群集特性

    5、测试的杀虫剂悖论


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

    2020-03-26

  • 软件测试的分类

    按测试模式来分类:瀑布模型、敏捷模型、基于脚本的测试、基于风险的测试、探索式测试等。


    查看全部
    0 采集 收起 来源:软件测试模式

    2020-03-26

  • 软件测试的分类

    按测试手段来分类:(根据测试可见度)黑盒测试、白盒测试、(根据状态)静态测试、动态测试、(根据测试执行的方式)手工测试、自动化测试。

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

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

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

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

    2020-03-26

举报

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

微信扫码,参与3人拼团

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

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