测试理论基础知识

文章目录

  • 一、软件的定义与分类
    • 1、软件定义
    • 2、软件分类
      • (1)按照功能划分
      • (2)按照技术架构划分
  • 二、软件测试的定义及目的
    • 1、定义:
    • 2、目的
  • 三、软件测试流程
  • 四、V模型(重点)
    • 1、软件测试V模型:
    • 2、软件缺陷
  • 五、软件测试分类
    • 黑盒测试
    • 白盒测试
    • 灰盒测试
  • 六、软件测试原则

一、软件的定义与分类

1、软件定义

计算机系统中与硬件相互依存的一部分(程序+数据+相关文档

2、软件分类

(1)按照功能划分

系统软件: 能够直接和硬件交互的软件。例如:win10、linux、操作系统
应用软件: 能够为用户提供某种特定条件的应用服务的软件,应用软件通常运行在系统软件中。例如:QQ运行在windows操作系统上

(2)按照技术架构划分

单机软件:直接在单个计算机上安装并运行的软件,如画图工具

C/S 结构软件:C指的是客户端(Client),S指的是服务器端(SERVER),这种软件是基于局域网或互联网的,需要有一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。不便于升级和维护(升级时需要重新安装每一个客户端)

B/S 结构软件:B是指浏览器(Browser),S指的是服务器端(SERVER).这种软件是基于局域网或互联网的,不需要安装客户端,只需要有浏览器即可,便于升级和维护(升级时只需要升级服务器即可)

二、软件测试的定义及目的

1、定义:

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程

2、目的

就是尽可能多的发现软件缺陷。bug是测试过程中的产品而非目标。检查系统是否满足要求,站在用户角度思考产品或项目功能实现的正确性。
测试目的不仅仅为了找出错误,通过分析错误产生的原因和错误的分布特征,帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。

三、软件测试流程

四、V模型(重点)

1、软件测试V模型:

V模型:从左到右,描述了开发过程和测试过程步骤。

需求分析:明确客户需求,要求分析师能准确的把客户所需要达到的功能、实现方式,等表述出来,给出分析结果,写出需求规格说明书。

概要设计:主要是架构的实现。架构师搭建架构、表述各模块功能、模块接口连接和数据传递的实现等事务。

详细设计:对概要设计中各个模块进行深入分析,对各模块组合进行分析。该阶段要求达到伪代码级别,把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明。

软件编码:按照详细设计好的模块功能表,编程人员编写出实际的代码。

单元测试:按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等。

集成测试:在单元测试的基础上,通过单元模块组装成系统,在进行测试,检查模块之间接口的正确性。

系统测试:针对整个产品进行测试,验证系统是否满足需求文档,对实现的系统进行正确性和性能两方面测试。(包括对功能、性能以及软件所运行的软硬件环境进行测试 。系统测试由黑盒测试员来完成,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,是否存在漏洞,以及在不同的软硬件环境中的兼容性,主要依据是《系统需求规格说明》文档 。)

验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据用户需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。包括功能确认测试、安全可靠性测试、易用性测试、可扩充性测试、兼容性测试、资源占用率测试、用户文档资料验收等。

α测试:非正式验收测试,由用户、测试人员、开发人员共同参与的内部测试

α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。

β测试:内测后的公测,即将正式发布,完全交给最终客户的测试。

β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持),着重于产品的支持性,包括文档,客户培训和支持产品生产能力。
注:α测试和β测试均不能由程序员和测试员完成

2、软件缺陷

软件未达到客户需求的功能和性能
软件超出了客户需求的范围
软件出现客户需求不能容忍的错误
软件的使用未能符合客户的习惯和工作环境

五、软件测试分类

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

2、软件结构和算法角度:
黑盒测试、白盒测试、灰盒测试

3、按软件的测试面划分:
功能测试、性能测试、空间性能、时间性能

4、按是否手工执行划分:
手工测试、自动化测试

5、软件的测试周期划分:
冒烟测试、回归测试、随机测试、安全测试

冒烟测试:在对一个新版本进行大规模的系统测试之前,先验证软件的基本功能是否实现,是否具备可测性

回归测试:开发人员修改bug后,修饰旧代码,重新进行测试,确保修改后不会引入新的错误或者导致其他代码出错。

随机测试:所有输入的数据都是随机产生。目的模拟用户真实操作,发现边缘性错误。

安全测试:开发过程完成到发布阶段,对产品进行校验,验证产品符合安全需求定义,产品质量标准。

注:软件所处的阶段和使用的测试技术没有关系

黑盒测试

也称为功能测试。通过测试来检测每个功能是否实现,把程序比喻成黑盒,在完全不考虑程序内部实现的情况下,对程序接口进行测试,功能 对比 需求文档 检查是否实现。

白盒测试

白盒测试对软件代码实现的细节做细致检查。程序员必须全面了解程序的内部逻辑结构,对逻辑结构进行测试。

灰盒测试

介于黑、白盒测试之间。灰盒关注输入数据,输出数据正确性,同时也关注内部实现,关键关注内部实现不像白盒测试那么详细、完整。只是通过一些表象,标志来判断内部运行状态,有时内部程序出了问题,输出结果正确。白盒测试效率低。

六、软件测试原则

◎所有测试的标准都是建立在用户需求之上
◎软件测试必须基于”质量第一”的思想区开展各项工作,当时间和质量冲突时,时间要服从质量。
◎事先定义好产品质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
◎软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始测试。
◎穷举测试是不可能的。
◎软件测试计划是做好软件测试工作的前提。
◎测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法区设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
◎ 对发现错误较多的程序段,应进行更深入的测试,一般来说,一段程序中已发现的错误数越多,其中存在的错误率越大。
◎ 重视文档,妥善保存一切测试过程文档(测试计划,测试用例,测试报告等)
◎ 应当把“尽早和不断的测试”作为测试人员的座右铭
◎ 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见
◎ 测试应从“小规模”开始,逐步向”大规模”转变
◎ 不可将测试用例置之度外
◎ 必须彻底检查每一个测试结果
◎ 一定要注意测试中错误的集中出现,这和程序猿的编程水平以及习惯息息相关
◎ 对测试错误结果一定要有一个确认的过程

超详细的测试理论基础知识相关推荐

  1. 超详细的计算机网络基础知识总结 第四章:网络层

    本文基于:王道计算机考研-计算机网络 ☺其他文章: 超详细的计算机网络基础知识 第一章:概述 超详细的计算机网络基础知识 第二章:物理层 超详细的计算机网络基础知识 第三章:数据链路层 超详细的计算机 ...

  2. 超详细的计算机网络基础知识总结 第一章:概述

    本文基于:王道计算机考研-计算机网络 顺便提一嘴,王道计算机网络的小姐姐声音真滴好听 相关文章 超详细的计算机网络基础知识 第二章-物理层 超详细的计算机网络基础知识 第三章:数据链路层 超详细的计算 ...

  3. 超详细的计算机网络基础知识总结 第三章:数据链路层

    本文基于:王道计算机考研-计算机网络 其他文章: 超详细的计算机网络基础知识 第一章:概述 超详细的计算机网络基础知识 第二章:物理层 超详细的计算机网络基础知识 第四章:数据链路层 超详细的计算机网 ...

  4. 小狐狸的测试理论基础知识总结

    测试的定义:通过人工或自动的手段,对被测对象进行检测活动,目的在于是否满足用户需求. 测试的目的:1.发现被测对象与用户需求的差异:2.发现并解决被测对象的缺陷:3.获取被测对象的质量信息,为决策提供 ...

  5. 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!

    标识符 Java 的标识符是由字母.数字.下划线_.以及美元符$组成,但是首字母不可以是数字.Java 标识符大小写敏感,长度无限制,不能是 Java 中的关键字.命名规则:要见名知意! u  变量要 ...

  6. 超详细的商业智能BI知识分享,值得收藏

    在数据为王的时代,获取数据和处理数据,成为企业必备的生存手段.哪个企业能在数据信息中汲取到更多的有效价值,就能抢占先机,获得市场的主动权.数据分析将不再是专业技术人员或数据分析师的专利,商业智能 BI ...

  7. 软件测试可以用苹果电脑嘛,苹果M1版MacBook超详细兼容测试结果出炉:可兼容这些软件...

    基于 ARM 架构的 M1 版 MacBook 已经发布一段时间,但很多朋友依然在犹豫要不要入手.从当前的评测来看,M1 版 MacBook 在性能和能效方面带来了非常大的惊喜,但兼容性始终是大家考虑 ...

  8. Java并发知识总结,超详细!(上)

    Java并发知识总结,超详细! 首先给大家分享一个github仓库,上面放了 200多本经典的计算机书籍 ,包括C语言.C++.Java.Python.前端.数据库.操作系统.计算机网络.数据结构和算 ...

  9. rtmp测试地址_超详细搭建多码率测试环境(成为流媒体高手必经之路)

    0.引言 关注我的朋友,应该都知道,前面我们讲解了如何搭建srs流媒体服务器,链接如下.由于srs流媒体服务器是不支持多码率测试环境,所以不能在上次的环境上继续演示.那本篇文章就要给出一个新方案,就是 ...

  10. 【超全】Go语言超详细学习知识体系

    Go语言超详细学习知识体系 Go编程入门 基础语法 环境安装 下载地址 https://golang.google.cn/dl/ GOPATH.GOROOT两个关键环境变量 基础结构 包的概念 程序执 ...

最新文章

  1. 【怎样写代码】工厂三兄弟之抽象工厂模式(三):产品等级结构与产品族
  2. 总结网络执法官,p2p终结者等网管软件使用arp欺骗的防范方法
  3. 计算机——工科中的理科
  4. 在node.js中一次读取一行文件?
  5. spring boot logback配置
  6. AI:一个20年程序猿的学习资料大全—区块链/大数据/数据集/云计算/前沿大会资料——只有你不想要的,没有你找不到的
  7. linux+sysrq+键盘调试,内核调试 – MagicSysRq - 嵌入式 Linux 知识库
  8. 4种动态加载JS的方法
  9. Helm部署ElasticSearch Kibana 7 集群
  10. 设计模式C++实现(6)——适配器模式
  11. 致敬各位10年阿里的前端开发
  12. PHP常量详解:define和const的区别
  13. 垃圾文件粉碎机 防止恢复保安全
  14. fast无线路由器设置服务器,迅捷(Fast)FW150R无线路由器设置
  15. 《Internet-常见域名后缀大全》
  16. (转)不看绝对后悔的Linux三剑客之awk实战精讲
  17. html第一个子元素选择,css选中父元素下的第一个子元素(:first-child)
  18. 第一个javaweb程序--你干嘛~嗨嗨~哎呦
  19. iphone版 天行skyline_Mega Zipline 3D Skyline Adventure Simulator加速器
  20. 二级计算机的office用到哪些函数,计算机二级MS office excel中所用函数整理

热门文章

  1. javascript 倒计时插件
  2. 随机抖音接口php,【php】下载抖音无水印视频接口
  3. Comsol Multiphysics安装步骤详解
  4. 模拟电子技术动画-PN结(动画是转的)内容再修改
  5. 汽车空调管路气密性检测
  6. Python制图——图片格式代码探索
  7. win10 linux 傲腾,Win10 版本 2004 导致英特尔傲腾内存出问题,千万不要强制升级
  8. HP WebInspect 软件 简介
  9. IDEA安装Gitee插件
  10. 搭建petalinux开发环境