思维脑图

2-1 软件测试阶段

1、单元测试

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

原则: (1)尽可能测试用例相互独立 (2)一般由代码开发人员实施

好处:(1)能尽早发现缺陷 (2)利于重构 (3)简化集成(为集成测试奠定基础) (4)单元测试规范很大程度上减少文档编写 (5)用于设计

限制:(1)穷尽测试不可能 (2)一行代码需要3~5行测试代码

单元测试框架:PHPUnit CppUnit JUnit nunit(针对.net)

2、集成测试

概念:在单元测试基础上,将单元组装测试,关注接口

集成测试实施方案:(1)Big Bang (2)自顶向下 (3)自底向上 (4)核心系统集成(先测试核心部分) (5)高频测试

2、3常用于以前的瀑布模型,4、5常用于现在的敏捷开发

3、系统测试(主要用黑盒测试)
概念:将集成测试的软件与系统中其他部分结合起来,在 *实际运行环境 *中测试 ,偏于业务角度的验证
关注点:(1)系统本身使用 (2)系统与其他系统的连通 (3)在不同压力下的表现 (4)真实使用环境下的表现

4、验收测试

概念:交付测试。用户进行测试
细分:alpha测试:用户在开发者提供的环境下测试 beta测试:完全脱离开发者


2-2 软件测试手段

1、分类

根据测试可见度:黑盒、白盒、灰盒
状态:静态、动态
测试方式:手工、自动化

黑盒:

优点:(1)容易实施,无需关注内部 (2)更贴近用户视角

缺点:(1)测试覆盖率较低,一般只有40% (2)黑盒自动化测试复用率低,维护成本较高

主要测试什么?(1)不正确or遗漏功能 (2)接口上,输入输出是否正确 (3)是否有数据结构错误或外部信息(比如数据文件)访问错误 (4)系统性能是否满足要求
主要设计方法:(1)等价类划分法 (2)边界值分析法(比较重点关注) (3)错误推断法 (4)因果图法 (5)正交试验分析法 (6)状态迁移图法 (7)流程分析法

白盒:结构化测试,逻辑测试,透明测试

优点:(1)迫使测试人员理解软件原理 (2)覆盖率较高,可以检测每条分支和路径 (3)能发现隐藏在代码的错误 (4)对代码测试比较彻底

缺点:(1)成本高 (2)无法检测遗漏路径 (3)无法检测数据敏感性错误 (4)无法直接验证需求正确性

主要测试方法:(1)代码检测法 (2)静态结构分析法 (3)静态质量度量法 (4)逻辑覆盖法(6种):语句、路径、判定、条件、判定/条件、条件组合覆盖。 (5)基本路径测试法

静态测试:

不执行被测程序,通过评审软件文档、代码、程序复杂度、检查是否符合编程标准,来发现程序不足之处。

有些白盒是静态测试。

方法: 互审:程序员互相检查;走查:小组集体检查;会议:召开会议检查

动态测试:

运行被测程序,比较运行结果与预期结果,分析运行效率、正确性、健壮性等。

黑盒大部分是动态测试。

手工测试:众包测试、探索式测试

优点:容易发现缺陷,容易实施、创造性、灵活性

缺点:不一致性、可靠性低、依赖人力资源、重复测试效率低、覆盖量不容易度量

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

单元、接口、性能多用该测试。

优点:高效高速、准确可靠、高复用性、覆盖量容易度量

缺点:机械、发现缺陷率低、一次性投入较大


2-3 软件测试模式之瀑布模型

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

瀑布模型、v模型、W模型、x模型、H模型


2-4 敏捷测试、基于脚本测试、基于风险的测试

敏捷测试特点:

  • 强调从客户角度进行测试
  • 重点关注迭代测试新功能,不再强调测试阶段
  • 尽早测试,不间断测试,具备条件即测试
  • 强调持续反馈
  • 预防缺陷重于发现缺陷。

敏捷测试VS传统测试

基于脚本测试-SBT Script-based Testing

脚本测试-ST Scripted Testing

探索式测试-ET Exploratory Testing

  • ET完全抛开测试脚本的测试。它是一种测试风格、思维而不是一种测试技。

  • 优点:

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

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

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

    4.有利于更加有效的实施自动化

    5.更加适用于敏捷项目

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

  • 缺点:

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

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

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

    4.只有在被测系统已完全可用的前提下才更有作用

    5.ET的生产率很难定义

    6.ET本身较难进行自动化

  • ET测试方法:局部、全局

局部探索式测试:输入、状态、代码路径、用户数据、执行环境。
全局探索式测试:漫游测试法—–商业区、旅馆区、历史区、旅游区、娱乐区、破旧区。

ET和ST要结合使用 ET应用比如说,问几个问题猜出你心中的答案的应用

基于风险测试-RBT Risk-based Testing

风险有:质量风险、管理风险、风险级别=风险可能性*风险严重度

基于模型的测试-MBT model-based testing

根据需求建模,借助工具建模然后执行,偏向于自动化测试。主要的MBT工具,微软的Spec Explorer。。


2-5 软件测试的分类

  • 功能测试:对提供给用户的功能进行测试。

    • 针对的问题:功能 错误或遗漏、界面问题、软件本身性能错误、数据及访问错误初始化及终止错误。
    • 功能自动化测试工具:QTP(基于关键字驱动)现在其实已经用的很少了、winrunner; silkTest; Rational robot; selenium; Watir; Sikuli
  • 性能测试:负载测试、压力测试、稳定性测试

    • 性能指标:并发用户数VU、每秒事务数TPS、系统响应时间、设备性能
    • 自动化测试工具:LoadRunner、Silkperformer、Jmeter、WebLoad、Apache Bench、LoadUI
    • 静态性能评估:对Web应用的页面进行静态分析,并给出评估结果的性能分析方法。工具有YSlow、PageSpeed。他们是浏览器插件,评级静态网页的标准有14个,减少HTTP请求之类的。
    • 应用性能管理(APM):提供对系统的实时监控以实现性能管理、故障管理的解决方案。比如听云。
  • 安全测试:是否符合产品安全需求和质量标准。

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

    • 渗透测试 VS 安全测试
      攻————–防
      点————–面
    • 可以查看OWASP网站,关注网站中的OWASP Top10和Test Guide
    • 安全测试工具:APPscan(针对web应用的漏洞扫描)、Webinspect(类似APPscan)、Nessus(针对服务器主机类)、Nmap(端口嗅探工具)、MetaSploit(攻击框架)、WebScarab(代理劫持)、Fortify(白盒测试,代码静态分析)、W3AF(针对web应用)
  • 兼容性测试:软件本身的兼容性、不同平台下的兼容性、在运行设备下的兼容性、软件互操作性(指的是软件内部不同功能操作是否兼容 & 与其他软件是否兼容,比如与微信是否兼容,与微信不兼容基本上就没用了)

    • 对web应用,还有浏览器兼容性,因为浏览器的内核不同
    • 浏览器兼容性测试工具:BrowserShots(该网站输入url值,可以看不同平台下的显示)
  • 文档测试:配套的文档的测试。如用户手册、使用说明、用户帮助文档等。

  • 可靠性测试:软件可靠性、(可靠性测试更多的是)硬件可靠性。

  • 易用性测试:使用软件时是否感觉方便,用户体验怎样。

  • 本地化测试:针对软件的本地化版本实施的针对性测试。比如英文版,中文版。不过不仅仅是语言,测试内容还有:1.语言、书写习惯;2.时区、日期格式、货币;3.当地风俗、法律法规;4.政治敏感内容。

  • 部署测试:安装测试,主要验证系统部署过程,并确保软件经过安装测试后可以正常使用。主要测试内容:不同环境下的部署验证;参照部署文档执行,过程的合理、正确性;

  • 无障碍测试:提供便于特殊人群使用的功能


3-1 常见软件测试分类

  • 回归测试:软件功能修改后,对软件进行重新测试,以确认修改没有引入新的错误或导致其他部分产生错误。尽量实现自动化。 回归测试的重心在关键模块重点功能组件

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

  • 冒烟测试:确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。类似于回归测试,但是测试的注重点不同。敏捷开发的“每日构建”中用冒烟测试来确认合入的代码没有影响主要功能的正常。

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

    • A/B测试实施要点:
      • 1.多个方案并行;
      • 2.每次测试仅改动一个变量;
      • 3.按照某种规则进行优胜劣汰。
    • A/B测试工具:Google Analytics Content Experiments、Visual Website Optimizer

全网最全最系统——软件测试基础学习!(小白建议收藏)相关推荐

  1. 全网最全的Python常见命令大全,建议收藏,以防备用

    这是本文的目录 前言 什么是命令行界面? 你在Python开发中需要CLI吗? CLI简介 Windows Mac Linux 用于Python开发的20多个最有用的CLI命令 安装命令 1.Choc ...

  2. ROS系统SLAM基础学习:gazebo仿真机器人自主导航

    ROS系统SLAM基础学习:gazebo仿真机器人自主导航 move_base节点配置 amcl节点配置 导航仿真 导航SLAM仿真 自主探索SLAM仿真 自主导航:避障 遇到的问题及解决方法和总结 ...

  3. 把知识变成图谱一共需要花几步?89页全网最全清华知识图谱报告-学习笔记

    把知识变成图谱一共需要花几步?89页全网最全清华知识图谱报告 知识图谱是人工智能的重要分支技术,它在2012年由谷歌提出,成为建立大规模知识的杀手锏应用,在搜索.自然语言处理.智能助手.电子商务等领域 ...

  4. ❤️❤️HarmonyOS(鸿蒙)全网最全资源汇总,吐血整理,赶紧收藏!❤️❤️

    目录 一.HarmonyOS简介 1.1 系统定位 1.2 系统特性 2.精品资源总结 2.1 官网地址 2.2 论坛地址 2.3 视频地址 2.4 API手册 2.5 开发工具地址 2.5 超强官方 ...

  5. 2021全网最全Activiti7教程04(Activiti7进阶篇-欢迎收藏)

      本篇重点给大家介绍下Activiti中的高级内容,比如流程实例,个人任务,流程变量,组任务及网关. 全网最详细Activiti系列文章,强烈建议收藏加关注哦! Activiti进阶篇 1.流程实例 ...

  6. 程序员追求技术夯实基础学习路线建议

    文章目录 1. C语言(绝对基础课程,建议先把C语言学完在学其他的) 2. 计组 3. 操作系统(需要先学完计组) 4. 计网 5. 数据库 6. 数据结构与算法 1. C语言(绝对基础课程,建议先把 ...

  7. 2021全网最全Activiti7教程02(Activiti7入门使用-欢迎收藏)

    全网最详细Activiti系列文章,强烈建议收藏加关注哦! Activiti的入门应用 1Activiti的基本使用 1.1 创建Maven项目   创建一个普通的Maven项目,并添加相关的依赖 & ...

  8. 长文总结 | Python基础知识点,建议收藏

    测试基础-Python篇 基础① 变量名命名规则 - 遵循PEP8原则 普通变量:max_value 全局变量:MAX_VALUE 内部变量:_local_var 和关键字重名:class_ 函数名: ...

  9. 速来!内部资料分享,软件测试面试一指禅,建议收藏

    大家好,我是小dao,今天整理了软件测试面试题,包括软件测试理论.APP测试.Linux.Mysql数据库.WEB+网络.接口测试.性能测试.自动化测试.团队管理.随机应变能力等题.希望能对你有帮助! ...

最新文章

  1. Android 通过Intent调用系统功能和Action动作和服务广播【大全】
  2. sprintf、strcpy、strncpy及 memcpy 函数,请问这些函数功能有什么区别?配实例详解!
  3. 三校生计算机模拟试题1,甘肃省2015年“三校生”考试摸拟试题1
  4. 汽车abs matlab仿真模糊pid控制
  5. 2021-03-15 Lp信号
  6. Http和Socket连接区别
  7. isnan isinf
  8. OAuth:服务给第三方app授权的协议
  9. Java基本类型与运算
  10. 04.openssl编程——哈希表
  11. cogs 76. [NOIP2007] 统计数字
  12. Android中设置文本颜色的三种方法
  13. Python实现批量图片添加数字水印
  14. Spring MVC url提交参数和获取参数
  15. IBM 推出世界最小电脑,应用区块链技术防偷骗!
  16. Windows 安装Bazel (安装过程中报远程服务器错,先记下来方法)
  17. 广数系统980tdb系统说明书_不同数控系统中各个倒角指令的用法
  18. 关于Bayesian Decision Theory的几个问题
  19. springboot test
  20. 【好书推荐】写Web必须知道的安全知识 | 《白帽子讲Web安全》

热门文章

  1. sql注入及用PrepareStatement就不用担心sql注入了吗?
  2. pandas进阶用法(一)筛选条件、多重索引、缺失值
  3. 一文教你弄懂Flink核心功能和原理
  4. 数据库安全性重要策略审计
  5. 基于微服务的分布式电商系统-妖猫商城
  6. 3.2.2.频数分布
  7. 数码港元≠港元稳定币,为何被视为法币与虚拟资产间的骨干和支柱
  8. 基础JSP:蚂蚁大战大象
  9. Log4J使用详解(整理)
  10. MogaFX—老挝央行禁止货币兑换单位出售外币