按照开发阶段来分(对应软件测试V模型更好理解)

1. 单元测试:针对程序内部的最小模块进行测试

  • 测试阶段:编码后或编码前(TDD Test-Driven-Development 测试驱动开发,编码前测试就是写一个测试脚本,此时运行肯定会出错,开发人员根据脚本的出错信息编码,然后再次运行测试脚本,再根据出错信息编码)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:模块接口测试(接口参数个数,类型,顺序以及输出结果的测试),局部数据结构测试,路径测试(if-else,switch-case),错误处理测试(try-catch),边界测试(for,while,do-while)

2. 集成测试:按照一定的策略将各个模块组合起来进行测试

  • 测试阶段:单元测试之后进行
  • 测试主要对象:模块间的接口
  • 测试人员:白盒测试工程使或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合(也可以说是灰盒测试)
  • 测试内容:模块之间数据传输,模块之间功能冲突,模块组装功能正确性,全局数据结构(设置的全局变量在结构之间流转是否有错误),单模块缺陷对系统的影响

3. 系统测试

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。
回归测试和冒烟测试都是系统测试的一种

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

① 回归测试(Regression Testing)
在 引入新的代码(增加新的功能/bug改完)时 会进行回归测试,看新加入的代码对之前的代码有没有产生影响/看bug改完之后对系统有没有产生别的影响

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

② 冒烟测试(smoke testing)
之所以叫冒烟测试是因为测试过程特别快
只针对系统的基本功能核心流程进行的测试
冒烟测试对于测试人员的意义在于是否接收这个版本进行正式测试的标准,通过了则进行正式测试,没通过则打回

4. 验收测试(也叫交付测试)

测试的目的是确保软件准备就绪,按照双方的验收文档将软件正式展示给客户

  • 测试阶段:系统测试通过之后
  • 测试对象:整个系统(包括软硬件)。
  • 测试人员:主要是最终用户或者需求方。
  • 测试依据:用户需求、验收标准
  • 测试方法:黑盒测试
  • 测试内容:同系统测试(功能…各类文档等)

按实施组织划分

1. α测试

由用户在开发环境下测试
优点:有利于和测试,开发人员及时沟通问题,及时解决
缺点:容易受开发人员和测试人员的影响

2. β测试

由软件的使用者,在一个或多个场所进行测试(用户实际使用环境)
优点:测试环境就是用户实际使用环境,有利于问题发现

  • 注意哦! α测试和β测试的区别:
    ① 测试的场景不同
    ② α测试的环境受开发方控制,用户数量相对较少,时间比较集中;β测试的环境不受开发方控制,用户数量相对比较多,时间不集中
    ③ α测试先于β测试执行

3. 第三方测试

介于开发方和用户方之间的组织对软件的测试

按是否执行代码划分

1. 静态测试:不运行代码,纯看分析代码的语法,逻辑

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。分析如下:

  • 检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。
  • 静态质量:度量所依据的标准见下:
    功能性(Functionality)、运行效率(Performance)、兼容性(Compatibility)、可用性(Usability)、可靠性(Reliability)、安全性(Security)、可维护性(Maintainability)、可移植性(Portability)。

    代码静态分析和文档测试都属于静态测试

2. 动态测试(Dynamic testing)

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果
大多数软件测试工作都属于动态测试。

按是否查看代码划分

1. 黑盒测试:

把软件当成黑色的盒子,不关心程序内部的结构,逻辑,只关心程序的输入输出
黑盒测试设计测试用例的方法:等价类,边界值,因果图,正交法,场景,错误猜测

2. 白盒测试:

把软件当成一个透明的盒子,检查软件内部的逻辑,结构,语句是否正确
白盒测试设计测试用例的方法:

  • 语句覆盖法(把程序中每条语句执行到)
  • 逻辑覆盖法(判定覆盖(让if-else为真为假的每条路走到)
  • 条件覆盖(让a>0,b>0这种都为真为假的时候走一遍)
  • 判定和条件组合覆盖,条件和条件组合覆盖)
  • 路径覆盖法(do-while,if-else,swich-case中的每一条语句执行到)
  • 循环覆盖法(for,while,do-while循环里面的内容都走到)

3. 灰盒测试

介于黑盒和白盒之间,既要考虑输入和输出,又要考虑软件内部的结构,逻辑

按是否手工执行划分

1. 手工测试

手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。总结优缺点:

  • 优点:自动化无法替代探索性测试、发散思维结果的测试。
  • 缺点:执行效率慢,量大易错

2. 自动化测试

简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程(也就是让机器执行测试脚本)
自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。
通常所说的自动化是指功能测试自动化。
自动化测试按照测试对象来分,还可以分为接口测试,UI测试等(接口测试的ROI(产出投入比)要比UI测试高)

  • 自动化实施步骤:
    1.完成功能测试,版本基本稳定
    2.根据项目特性,选择适合项目的自动化工具,并搭建环境
    3.提取手工测试的测试用例转化为自动化测试的用例
    4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
    5.生成自动测试报告
    6.持续改进,脚本优化。

  • 自动化测试工具:
    selenium 功能自动化测试
    jmeter 接口自动化测试,性能自动化测试
    loadrunner 性能测试
    appium app端的功能自动化测试

  • 自动化测试框架
    java testNG
    pyhton unittest
    Robertframework

按测试对象划分

1. 性能测试:

  • 对资源的利用率
  • 对执行间隔
  • 日志事件
  • 响应时间
  • 吞吐量(单位时间内处理的信息量)
  • 辅助存储区

2. 安全测试

3. 兼容性测试

(可以利用自动化测试来做)

  • 平台测试,浏览器测试
    如果是网站的话:不同浏览器的所有主流版本都要进行测试
    如果是app:所有手机型号的不同系统的都要进行测试
  • 软件本身能否向前或向后兼容
  • 测试软件能否与其他相关的软件兼容
  • 数据兼容性测试

为什么要在不同的浏览器上进行兼容性测试?
因为浏览器的内核不一样,同一个界面展示出来的内容可能不一样

4. 文档测试

针对开发文档,用户使用文档,开发手册等文档进行测试
文档测试的关注点:文档的术语,正确性(和需求一致),完整性,一致性(需求,文档,最终系统上的功能一致),易用性

5. 易用性测试

易用性(Useability)是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。也叫用户体验测试

6. 容错性测试

数据边界的容错性测试,系统环境的容错性(服务器出现问题的时候是否能够转换到其他服务器,网络断了是否能够切换到其他网络)

7. 界面测试

检测不同分辨率下图标是否会丢失,功能是否能正常使用,页面布局
比如说:

8. 安装测试

测试程序的安装卸载

9. 内存泄漏测试

像是一般电脑打开的软件或页面太多,导致电脑卡顿甚至死机,重启一下就好了,但重启完后不久又会出现同样的现象,这种一般就是内存泄漏导致的

造成内存泄露的原因有很多,最常见的有:

  • 分配完内存之后忘了回收。
  • 程序写法有问题,造成没办法回收。
  • 某些API函数的使用不正确,造成内存泄露。
  • 资源没有及时释放。

内存泄漏的检测:

  1. 对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题
    检查机制.要确保程序员在编写程序和编译程序的时候打开这些功能。
  2. 通过代码扫描分析工具来检查

按测试地域划分

  1. 国际化测试
    使软件可以生成不同的语言版本和适用不容的风俗,在转换的时候,不需要修改软件源代码的技术
  2. 本地化测试将把软件处理成不同的语言版本的技术

question!!
① 一个全新上线的app需要进行什么测试?
安装卸载设置,功能测试,性能测试,兼容性测试,安全性测试,文档测试等其他各项测试都要来一遍
②一个增加了新功能的app需要进行什么测试?
功能测试
③一个只修改了页面广告的app需要进行什么测试?
界面测试

【软件测试】测试的分类 图片梳理 多图预警相关推荐

  1. 测试通达信指标胜率的软件,选股指标成功率测试工具(源码 副图/预警 通达信)非常实用...

    要想知道自己选出的个股,在未来几天内能否上涨,涨多少?如果有一个方便的测试工具,也许会给你的抄股带来不少的方便. 只要你的选股指标中选股符号是:XG(如果是别的选股符号,你可以将它改成"XG ...

  2. 软件测试——测试分类

    按开发阶段分类 ①单元测试(模块测试):是对软件组成的单元进行测试.其目的就是检验软件基本组成单位的正确性 . 测试方法:白盒测试 测试内容:模块接口测试.局部数据结构测试.路径测试.错误处理测试.边 ...

  3. BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解

    1.BS和CS架构 1.1  BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2  CS:客户机与服务器结构 优点:CS架构的页面 ...

  4. 基于传统CV实现图片分类(以图搜图)

    图片分类在计算机领域并不是一个新鲜的话题了,相对于传统计算机视觉(CV)方法解决这类问题,深度学习的效果反而更好.但是我们依然需要了解传统做法,说不定在未来研究时可以提供不一样的灵感. 图像描述符 要 ...

  5. 软件测试 测试停止标准_停止正常测试

    软件测试 测试停止标准 I see a lot of data scientists using tests such as the Shapiro-Wilk test and the Kolmogo ...

  6. 软件测试测试开发技能

    从事软件测试许多年,想必很多人都有感到迷茫不知所措的时候,人生的十字路口有很多,该如何抉择呢?有人成功转型,QA.项目管理.配置管理.当然还有技术型,性能测试.自动化测试.测试开发,而想要延续走技术型 ...

  7. 软件测试概念及分类整理汇总

    转载自博主Findyou 原文链接https://www.cnblogs.com/findyou/p/6480411.html 软件测试概念及分类整理汇总 前言 测试小伙伴在谈论软件测试分类,五花八门 ...

  8. pytorch(1)--分类图片

    一.前言 刚毕业用的是大火大热的caffe,如今却逐渐无人问津,2020年转向pytorch,在此记录下搬过的砖... 首篇记录下pytorch 分类图片代码 二.训练集准备 本次对7类图片做训练和预 ...

  9. 全网最全、最新App测试流程及要点梳理

    前言 1985年,加拿大的Therac-25放射治疗机由于软件Bug而发生故障,向患者提供了致命的辐射剂量,造成3人死亡,3人严重受伤. 1994年4月26日,中国航空公司空中客车A300因软件故障而 ...

最新文章

  1. 腾讯云发布微瓴开放平台LinkBase,助力智慧建筑产业生态全面升级
  2. 谜题81:烧焦到无法识别
  3. oracle删除表中数据_工作表中提供的特定数据在数据库中批量删除的方法
  4. centos6.3安装zabbix2.0.2记录
  5. POJ - 1741 Tree(点分治模板题)
  6. SpringBoot2.1.9 多Kafka消费者配置
  7. Unity手游之路三 基于Unity+Java的聊天室源码
  8. Bootstrap3 滚动监听插件的选项
  9. IDAPython精彩编程(1)
  10. 批处理中的使用问题记录
  11. inotify实时同步工具理论和实战
  12. Linux ❉ iptables详解
  13. 2015 Visual-lidar Odometry and Mapping:Low-drift,Robust,and Fast
  14. 深入理解HashMap
  15. Android CameraX的基本使用
  16. python xgboost建模过程_机器学习——XGBoost大杀器,XGBoost模型原理,XGBoost参数含义...
  17. 听说你想学Python爬虫?我从零教你啊
  18. 戴尔笔记本一键重装win7系统教程
  19. wxWidgets GUI 编程介绍
  20. 卧槽!​微信电脑版可以浏览朋友圈了!!

热门文章

  1. dotnetCore跨域的解决
  2. 2017软博会全球软件产业发展高峰论坛召开,聚焦软件与智能制造
  3. wireshark过滤网段和域名
  4. vue signature 电子签名
  5. 关于EnterCriticalSection()(转)
  6. 选购数码相机的几个技术要点
  7. 养生堂vc产品问与答
  8. assertThat()用例
  9. 一键硬盘安装ghost win10系统
  10. 世界开源界加强版权保护意识