目录

一、软件的定义

二、软件测试的定义与原则

三、测试模型的介绍

四、软件测试的流程

五、软件测试的分类

测试开发工程师技能成长路径


一、软件的定义

1. 软件的定义

软件测试(英语:Software Testing),描述一种用来促进进鉴定软件的正确性、完整性、安全性和质量的过程。换句话来说,软件测试是一种与实际输出与预期输出之间的审核或者比较过程。

3. 软件的应用场景

游戏型测试、电商型测试、金融性测试、嵌入式测试等

4.软件架构分类

B/S架构软件
客户端为浏览器:百度
C/S架构软件
客户端需要安装专门的软件,如QQ、微信等

二、软件测试的定义与原则

1:为什么需要软件测试

2:软件测试的定义

  • 通过人工或自动化额方式来验证软件的实际结果与用户需求是否一致的过程

3:软件测试的原则

  • 原则一:尽早进入软件测试

  • 原则二:穷尽测试是不可行的

  • 原则三:程序员应避免检查自己的程序

  • 原则四:充分注意测试中缺陷的集群现象

  • 原则五:严格执行测试计划,排除测试的随意性

  • 原则六:对每一个测试结果做全面的检查

  • 原则七:妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便

  • 原则八:测试用例应由测试数据和与之对应的预期结果这两部分组成

三、测试模型的介绍

1. V模型

V模型左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段的开发各阶段的对应关系。

V模型的缺陷及解决思路
V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
解决的思路是,当一个软件开发的时候,研发人员和测试人员需要同时工作,测试在软件做需求分析的同时就会有测试用例的跟踪,这样,可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。

优点:
1 每一个阶段都清晰明了,便于控制开发的每一个过程。
2 既包含单元测试又包含系统测试。
缺点:
1 测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
2 测试和开发串行。

2. W模型

相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。

优点
1 测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
2 测试于开发是并行独立进行的。
缺点
1 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2 对于需求和设计的测试技术要求很高,实践起来很困难。

四、软件测试的流程

阶段名 工作内容 产出物
测试准备阶段 项目立项、需求分析、需求评审 需求文档、产品PRD
测试计划阶段 编写测试计划、计划评审 测试计划
测试设计阶段 提取测试点、编写测试用例、用例评审 测试用例
测试执行阶段 冒烟测试、执行测试用例、提bug、回归测试 缺陷报告
测试完成阶段 验收测试、编写测试报告、项目上线 测试报告

五、软件测试的分类

1. 按技术分类
黑盒测试、白盒测试、灰盒测试

  • 黑盒测试:不需要了解程序的源代码,通过使用整个软件功能来验证程序是否满足需求的测试方法

  • 白盒测试:是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法

  • 灰盒测试:一种基于程序运行时的外部表现同时又结合程序内部结构来设计测试数据的测试方法

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

  • 单元测试:对一个模块、一个函数或者一个类来进行正确性检验的测试方法

  • 集成测试:单元测试后,将单独的模块按照设计要求组装成为子系统或系统,作为整体进行测试的测试方法

  • 系统测试:集成测试后,将硬件、软件看作一个整体,对系统的功能及性能的总体测试

  • 验收测试: 系统测试后以用户测试为主,或有测试人员共同参与检验软件质量的测试方法

3:按内容划分

功能测试、性能测试、兼容测试

功能测试:
界面测试、冒烟测试、回归测试、业务逻辑测试、易用性测试
功能测试:根据产品操作描述和需求文档,测试一个产品的特性和可操作行为是否满足需求的测试方法
界面测试:测试用户界面的功能模块的布局是否符合客户的使用习惯,界面操作的便捷性、导航简单易懂的测试
冒烟测试:验证系统核心功能是否能够正常运行的测试方法
业务逻辑测试:在基本的功能点都已合格的基础上,准备多种测试数据,来驱动各种约束条件下业务流程,确定是最终输出的结果是否符合预期的测试
]易用性测试:指用户使用软件时是否感觉方便的测试

性能测试:
压力测试、负载测试、并发测试

  • 性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行效验的测试方法

  • 压力测试:通过逐步增加系统负载,测试系统性能的变化,并确定在什么条件下系统性能处于失效状态

  • 负载测试:通过逐步增加系统负载,测试系统性能的变化,在满足指标的情况下,系统所能承受的最大负载 量的测试

  • 并发测试:是一个负载测试和压力测试的过程,即逐渐增加并发用户数负载直到系统的瓶颈,通过分析资源监控指标等来确定系统并发性能

兼容性测试:

  • 浏览器的,不同版本,分辨率

  • 手机型号,不同版本,分辨率

4:按其他划分
冒烟测试、随机测试、安全性测试、回归测试、Alpha测试、Beta测试

  • 随机测试:随机测试主要是根据测试者的经验无需测试用例对软件进行功能和性能抽查的测试方法

  • 安全性测试:通过不同的测试方法,检验程序、网络、数据库安全性的测试方法

  • Alpha测试:俗称内测, α测试。内部环境下的测试;开发人员或测试人员在现场

  • Beta测试:俗称外测、公测,β测试。生成环境下的测试;开发人员和测试人员都不在现场

虽说入行门槛低,但软件测试涉及的技术知识可不少,求学之路不是容易的事,因此很多朋友纷纷吐槽——

  • .没有导师,不知道从哪里开始学起;
  • .学习过程中遇到困难,自己无法解决,最终放弃;
  • .自律基因没有,惰性太大,不能持之以恒

如果不知道怎么规划,我和朋友们花了半个多月编写整理下面的《软件测试进阶路线》和配套【视频教程资源】,应该会给你带来很大的帮助和方向。:需要的朋友可以在文末打包获取。

测试开发工程师技能成长路径

  PS:怎么才能获取呢?很简单,按照下方图片所示“或者评论区留言“测试”

 、  

全网最详细软件测试基础知识,零基础自学的【建议收藏】相关推荐

  1. 软件测试教程基础知识,零基础如何学软件测试

    原标题:零基础如何学软件测试 一.软件测试需要哪些知识 很多人都在各大论坛提问"我是零基础该如何学习软件测试".关于这个问题首先应该给零基础定一个范围,到底什么样才是零基础,从来没 ...

  2. python自学需要哪些基础知识-零基础学Python应该学习哪些入门知识及学习步骤安排...

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python岗位人才缺口高达4 ...

  3. 零基础可以学python吗-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  4. 学python需要什么基础知识-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  5. python适合零基础的人吗_学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  6. 零基础适合学python吗-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  7. 学python需要什么基础-学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

  8. 编程c语言零基础知识,零基础学习C语言都需要掌握哪些基础知识

    随着互联网的不断发展,越来越多的人都在学习互联网软件编程开发语言,而今天我们就一起来了解一下,零基础学习C语言都需要掌握哪些基础知识. 无论学习哪门语言先应该了解一下自己所学语言的背景,也可以说它的发 ...

  9. 神仙级Python办公自动化教程(非常详细),从零基础入门到精通,轻松玩转Excel,从看这篇开始

    Excel是Office办公中使用非常频繁的一个表格制作.数据分析与图表制作的组件.随着现在数据处理量越来越大,日常办公中很多重复性工作耗费了广大办公人员越来越多的时间,那么如何才能化繁为简,提高办公 ...

  10. 计算机硬件价钱分配,电脑基础知识计算机硬件基础课件.ppt

    电脑基础知识计算机硬件基础课件 操作系统的概念 指直接控制和管理计算机的硬件和软件资源以便于有效的使用这些资源的程序. 操作系统分类 :单用户操作系统.批处理操作系统.实时操作系统.分时操作系统.网络 ...

最新文章

  1. linux 安全 ***检测 杀毒 rootkit
  2. linux mysql互为主从_mysql互为主从配置(双主模型)
  3. python for loop步进值_python-对for循环的结果进行排序时保持值连...
  4. 深度学习之神经网络的结构
  5. RabbitMQ, ZeroMQ, Kafka 是一个层级的东西吗, 相互之间有哪些优缺点
  6. LINUX下载编译libsrtp-1.5.0
  7. java date类1900,java - 使用javax.validation验证日期不得少于1900-01-01 - 堆栈内存溢出...
  8. STS代码式预付费用电管理系统
  9. 分享帝国CMS采集教程(图文详解)
  10. 如何利用迅捷PDF编辑器在PDF文档上修改文字大小和颜色
  11. node配置邮箱发送验证码
  12. AX200网卡支持linux,Intel 9260/AX200网卡在Deepin/UOS/Ubuntu下网速慢的处理
  13. chrome打开网页很慢,别的浏览器打开相同的网页很快
  14. 解决:word文档中插入照片有一部分不显示
  15. 安防行业安全产品分类、趋势分析
  16. html语言hr ,HTML hr是什么意思?
  17. 抽象类(abstract class)和接口(interface)
  18. Lanczos插值,最邻近插值,双线性二次插值,三次插值
  19. 计算机毕业设计SSM大学生项目众筹系统【附源码数据库】
  20. 交互原型设计软件 Axure RP Pro 5 中文教程

热门文章

  1. sketch如何做设计稿交互_《动静之美——Sketch移动UI与交互动效设计详解》历程...
  2. linux车机软件市场,车机UI(用户界面)的发展现状
  3. 设备接入阿里云物联网平台
  4. 【C语言】利用循环输出菱形
  5. pcl的安装错误和高翔第5讲程序编译错误recipe for target 'all' failed
  6. android.view.inflateexception binary xml file line 异常的解决方法
  7. hdu(5501)——The Highest Mark
  8. Matlab编写二叉树定价公式,美式期权二叉树定价及MATLAB程序
  9. element-ui 官方文档内网部署方法
  10. tcpdump与Wireshark抓包分析