当前位置: 首页 > news >正文

初级软件测试入门教程

一、软件测试的基本概念

1、软件测试的定义

就是以发现错误为目的而运行程序的过程。

软件测试员的目标是找到软件缺陷,尽可能早一些,并确保其得以修复。

2、软件测试方法总体分类

试图验证软件是“工作的”(所谓“工作的”就是指软件的功能是按照预先的设计执行的)。

设法证明软件是“不工作的”。

两类方法的优劣对比:

虽然软件测试总的目的是为了软件产品的质量,但很明显这两类测试方法在具体目标、或指导思想上截然相反。由此也决定了它们在思路、过程和测重点上有很大的差别,并各有利弊的。

3、软件测试的组成

软件项目是由文档、数据以及程序组成的,所以软件测试应该是对软件开发中形成的文档、数据及程序进行测试,目前很多人认为软件测试就是对程序的测试。

4、软件质量

ISO9126中定义的软件质量是:软件满足规定和潜在用户需求特性的总和;而2001年的软件国际标准中,把软件质量分成了:“内部质量” 、“外部质量” 、‘使用质量‘三个部分。也就是说:软件满足规定和潜在用户需求的能力,要从软件在内部、外部和使用中的表现来衡量。

内部:单元测试、安全性测试等。

外部:系统功能测试、界面测试等。

使用表现:易用性测试、用户体验性测试等。

软件测试零基础入门教程:2023最牛的软件测试零基础系统入门教程,九大项目实战+源码,挑战一个月学完快速入职_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV19v4y1j7No/?spm_id_from=333.999.0.0

 

5、软件测试与质量保证的区别(QA与Tester区别)

质量保证(QA)是通过预防、检查和改进来保证软件质量,即全面的质量管理与过程改进来开展质量保证工作;软件测试是执行软件,对开发文档和源代码进行走查,以找出问题,报告质量。

6、软件测试的目的

以最少的人力、物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误与缺陷提高软件的质量,回避软件发布后由于软件缺陷和错误造成的隐患所带来的风险。

7、软件测试的原则

1)所有的软件测试应该蒴源到用户的需求

2)尽早的将软件测试贯穿到软件开发的全过程中

3)完全测试是不可能,测试需要中止

4)测试无法保证软件中完全没有缺陷

5)充分注意测试中错误集群现象

6)应避免自己检测自己的程序

7)应避免测试的随意性

8、软件测试的分类

按软件开发阶段划分

1)单元测试:又称模块测试,对程序模块进行检验。

2)集成测试:又称组装测试,检验程序单元的接口关系。

3)确认测试:通过检验和提供客观证据,证实软件是否满足特定的预期的用途要求。

4)系统测试:确认系统是否达到目标要求,对集成的硬件,软件系统进行测试。

5)验收测试:按照项目任务书或合同。供需双方约定的验收依据文档进行的整个系统的测试与评审,决定是否接受或拒绝系统。

按测试的实施组织划分

1)开发方测试:又称验证测试,或α测试

2)用户测试:又称β测试

3)第三方测试:又称独立测试

α测试是由一个用户在开发模式下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善

按测试技术划分

1)白盒测试:对内部结构进行分析,检测寻找问题。

2)黑盒测试:通过软件的外部表现来发现缺陷和错误。

3)灰盒测试:介于白盒与黑盒之间,关注输出对输入的正确性;同时也关注内部表现,只通过一些表征性的现象、事件、标志来判断内部的运行状态。

9、测试类型

1)功能测试

功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。外部规格说明是一份从最终用户的角度对程序行为的精确描述。测试时按照科学方法设计的测试用例执行测试,在优先保证测试用例执行完全的前提下,再根据对业务的了解和经验性的判断进行探索性测试。

2)界面测试

界面测试简称UI测试,界面为用户与软件交互最直接的层,所以更注重用户的体验性,主要从用户的感官、交互、浏览、情感和体验出发。具体测试用户界面的功能模块布局是否合理,整体风格是否统一,各个控件的放置位置是否符合客户使用习惯,是否符合操作便捷,导航是否简单易懂,界面中文字是否正确,命名是否统一,页面美观,文字、图片组合是否完美等等。测试时可以按照最终用户具体的需求,以及通用的用户体验原则进行测试list的编写,然后测试人员根据list执行。

3)兼容测试

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。通常兼容性测试为软件在不同浏览器、操作系统和分辨率下的兼容测试。测试时测试人员按照软件的具体兼容性需求进行测试。 

4)易用性测试

考察评定软件的易学易用性,各个功能是否易于完成,软件界面是否友好等方面进行测试。测试时可以根据用户需求,以及同类行业软件对易用性的通用原则列出测试list,然后测试人员根据list执行。

5)性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。测试分为三个大的步骤进行:一、测试前的准备工作,包括确定用户、业务、系统需求,了解被测系统所属类别(如B/S结构),测试环境构成(系统配置基线清单),测试环境网络拓扑图,实际网络带宽情况,测试服务器及测试机配置清单,系统功能流程图及测试时间;二、测试实施,依次为制定测试计划、编写测试方案,设计测试用例,录制测试脚本,模拟测试场景及运行测试;三、测试结尾,依次为分析测试结果及定位瓶颈,编写性能测试报告,做性能测试总结。

10、系统功能测试方法

功能分解

等价类划分

边界值分析

因果图法

其他测试方法

11、测试过程是依相反顺序安排的自底向上,逐步集成的过程

测试过程流图

 软件测试零基础入门教程:2023最牛的软件测试零基础系统入门教程,九大项目实战+源码,挑战一个月学完快速入职_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV19v4y1j7No/?spm_id_from=333.999.0.0

二、软件测试的必要性

软件质量对软件的生产成本、上市时间和售后服务都有一定的影响,质量问题已成为影响软件产品流通的重要因素,而软件测试是软件开发过程中一个必不可少的质量检验手段。软件测试就是为了发现被测对象中的错误,避免产品使用中出现重大问题,造成不必要的损失。近些年,由于电子商务的普及应用,软件的复杂程度和交易规模急剧增加,很多软件产品没有经过专业的测试和评估就匆忙发布,从而导致软件产品存在大量问题,对企业造成很多不良的影响,如:

软件存在大量的错误,以至影响软件的正常运行;

软件的开发效率迅速降低,软件需要不断地修改、升级;

产品发布或部署后,质量缺陷的修改成本急剧上升,导致利润下降、甚至亏损;

企业用户在应用存在着大量质量缺陷的软件产品之后,对企业的信息工程失去信心等。         

1、尽早测试能进行成本控制

阶段成本表

软件缺陷的研究表明:剩余缺陷中,需求分析的缺陷最多占30.87%(0.046/0.149),需求错误是软件质量中的最大隐患。

从成本上看,把编码阶段的成本定量为1,如在需求阶段留下的错误,到了维护支持阶段去修复,其成本将是100-200倍的增加。

时间成本递增图

三、软件测试现状和要求

1、国外的现状

美国国家标准和技术研究院的调查报告称,美国软件工程项目的成功率仅占16%左右,美国大型专用软件开发的失败率高达70%,目前软件的质量问题仍然十分突出。国外软件开发企业把40%的资源花在软件测试上,软件测试费用占开发费用的30%至50%,一些要求高可靠、高安全的软件,测试费更高,是开发费用的3至5倍,在国际上软件业较发达的国家,绝大多数的软件产品的认定,都有第三方测试的介入,软件测试行业产值几乎占了软件行业总产值的1/3。国外的软件测试已发展成了一门独立的产业,体现在:

1)软件测试在软件企业中占有重要的地位;项目中测试工程师比编码工程师多得多,测试的投入也占项目总投入的2/3左右

2)软件测试理论研究的发展迅速

3)软件测试市场的繁荣。软件测试标准与测试工具的日益成熟

2、国内的现状

与国外形成鲜明对比的是,国内的企业对软件测试环节的重视程度明显不足,国内在测试服务方面,软件测试服务还处于起步和摸索阶段。不过,近两年国内出现了一个好的苗头,上海、北京、各省以及军队纷纷组建了软件测试公共服务平台,各地政府都加大了软件测试的投资力度。

1)互联网企业已开始建立自己独立的软件测试队伍,虽测试人员规模与国外的不能相比,但已有独立测试的意识。

2)2003年人事部与信息产业部职业资格认证中具有“软件评测师”的称号,国家对软件测试足以重视。

3)企业的计算机系统集成资质以及信息系统工程监理资质认证中,企业的软件测试能力被定为企业技术能力的重要指标。

4)2001年信息产业部5号令规定,凡在国内销售的软件必须进行软件登记测试,在信息产业部登记备案。

5)项目验收时,原则上不能以评代测,项目评优时原则上需要第三方公正的测试报告。

6)各级省政府授权成立了第三方公正的、非盈利的公益性软件评测机构。

7)软件测试正在成为软件学院的一门独立课程。

四、软件测试基础与标准

1、软件测试遵循标准

软件测试既定标准

2、软件测试质量控制参数

质量控制参数

五、软件测试过程与管理

1、软件测试过程

开发过程中的质量决定了软件的质量,测试过程的质量决定了软件测试的质量和有效性,软件测试过程的管理是保证测试过程的质量,控制测试风险的重要活动。

2、软件评价过程的特性

1)可重复性:同一评价人按同一评测标准对同一产品的评价是同一可以接受的结果。

2)可再现性:有不同评价人按同一评测标准对同一产品的评价是同一可以接受的结果。

3)公正性:评价不偏向任何特殊的结果。

4)客观性:依据客观的事实,不带感情色彩和主观意见。

3、软件测试生命周期

测试生命周期

4、软件测试计划

定义测试项目的过程,以便测试项目能被正确的度量和控制:

确定测试需求

评估风险

制定测试策略

确定资源

创建时间表

生成测试计划

确定测试需求 是测试计划活动的开始。测试需求确定测试对象以及测试工作的范围和作用。测试需求还用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。

确定测试需求定义图

测试策略 要使用的测试技术和工具;测试完成标准;影响资源分配的特殊考虑;如测试与外部接口或者模拟物理损坏、安全性威胁。

测试计划主要包括测试需求及优先级、测试进度安排、测试资源情况、测试风险、测试策略(如功能测试、用户界面测试、性能测试等测试策略)、测试输出等内容。

5、软件测试信息流

软件测试信息流

六、软件测试技术与工具

1、软件缺陷管理工具QC、JIRA、Bugzilla、禅道

2、功能测试工具  QTP、Selenium

3、负载测试工具  LoadRunner、Jemeter、SoapUI、Tsung

4、测试管理工具  QC、JIRA

5、安全测试工具  APPScan

 软件测试零基础入门教程:2023最牛的软件测试零基础系统入门教程,九大项目实战+源码,挑战一个月学完快速入职_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV19v4y1j7No/?spm_id_from=333.999.0.0

相关文章:

初级软件测试入门教程

一、软件测试的基本概念 1、软件测试的定义 就是以发现错误为目的而运行程序的过程。 软件测试员的目标是找到软件缺陷,尽可能早一些,并确保其得以修复。 2、软件测试方法总体分类 试图验证软件是“工作的”(所谓“工作的”就是指软件的…...

4项简化IT服务台任务的ChatGPT功能

近几个月,随着人工智能聊天机器人 ChatGPT 风靡全球,用户可以通过它生成脚本、文章、运动计划表等。同时,这项技术在各行各业都能够进行无穷无尽的应用,在本文中,我们将探讨这项现代技术如何帮助ITSM团队提升服务交付和…...

idea创建同级项目-纠结是SB

idea创建同级项目-纠结是SB 创建方法:...

任正非:天空足够大,世界会越来越兴盛

近日,华为公司创始人任正非与南开大学新闻与传播学院院长、科技日报原总编辑刘亚东今年7月7日在深圳一间咖啡厅的对话最新曝光。 在对话过程中,任正非以“拉法尔喷管”来描述华为的研发体系: “喇叭口”吸收宇宙能量,经过理论研究&#xff0…...

SMOKE-CMAQ实践技术应用

大气污染物排放是空气污染的源头,气象因素是影响污染程度的重要因素,因此空气质量模式要求气象资料和污染物排放清单作为输入,其中由于大气污染源复杂性、数据滞后性、动态变化、规律性不明显等特点,使得大气污染源排放清单输入准…...

电脑提示vcruntime140.dll缺失重新安装的修复方法

电脑出现 vcruntime140.dll 丢失的情况,通常是由于系统缺失了 Microsoft Visual C Redistributable 的运行库文件。这个文件是许多应用程序在运行时所需的依赖库,如果丢失了该文件,可能会导致某些软件无法正常运行。 下面是关于 vcruntime140…...

Vue实现Hello World

<div id"aa"> <p>{{h}}</p> </div> <script src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"></script> <script> const hello new Vue({ el:#aa, data:{ h : Hello World } }) </script>...

Android---Bitmap 与 String 互转

1. Bitmap 转 String /*** 图片转字符串* param bitmap 要转换的图片* return 图片转换后的字符串*/public static String imageToBase64(Bitmap bitmap){ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.J…...

python播放声音库playsound以及获取路径以及修改库源码

用python播放声音文件&#xff0c;使用了库playsound。 说一下本机环境&#xff1a;win10 64位&#xff0c;python3.10.4 &#xff0c;python2.7.13 最近一直用python3&#xff0c;所以首先进入python3的路径&#xff0c;运行pip3 install playsound 和pip3 install playsound2…...

山西电力市场日前价格预测【2023-09-27】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-27&#xff09;山西电力市场全天平均日前电价为342.48元/MWh。其中&#xff0c;最高日前电价为454.24元/MWh&#xff0c;预计出现在18: 30。最低日前电价为171.32元/MWh&#xff0c;预计…...

laravel框架 - 事件与监听器

一&#xff0c;绑定事件与监听器 在app\Providers下的EventServiceProvider.php中添加我们定义的事件与监听器 protected $listen [Registered::class > [SendEmailVerificationNotification::class,],App\ebvent\RegisterMessage>[//事件App\listeners\SendMessage//监…...

Android存储权限完美适配(Android11及以上适配)

一、Bug简述 一个很普通的需求&#xff0c;需要下载图片到本地&#xff0c;我的三个测试机&#xff08;荣耀Android10&#xff0c;红米 11 和小米Android 13都没有问题&#xff09;。 然后&#xff0c;主角登场了&#xff0c;测试的三星Android 13 死活拉不起存储权限弹窗。 …...

国产手机芯片4G方案_紫光展锐安卓核心板虎贲4G智能模块方案定制

元器件清单即BOM物料清单&#xff0c;不同行业领域的BOM表侧重点不一样。安卓主板的BOM表则侧重点在于元器件物料的清单&#xff0c;也就是安卓电路板的PCBA清单&#xff0c;精密的安卓板有上千个物料&#xff0c;可以帮助我们估算物料成本&#xff0c;建立生产计划&#xff0c…...

异步通讯技术之RabbitMQ

前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! 一、初识MQ …...

tcp/ip协议2实现的插图,数据结构

&#xff08;1&#xff09;以上是插图第2章和3章 的 mbuf 与 ifnet 与 ifaddr 与 le_softc 与 sockaddr_dl结构体 (2) 以下是 二章mbuf的宏和函数和三章函数下 &#xff08;3&#xff09; 以下是 三章接口层的宏和函数上 &#xff08;4&#xff09;4 四章1&#xff1a;以太网接…...

Redis学习 - 了解Redis(三)

1. 什么是缓存击穿、缓存穿透、缓存雪崩&#xff1f; 1.1 缓存穿透问题 先来看一个常见的缓存使用方式&#xff1a;读请求来了&#xff0c;先查下缓存&#xff0c;缓存有值命中&#xff0c;就直接返回&#xff1b;缓存没命中&#xff0c;就去查数据库&#xff0c;然后把数据库…...

API接口自动化测试框架

前言 接口自动化逐渐成为各大公司投入产出最高的测试技术。但是如何在版本迅速迭代过程中提高接口自动化的测试效率&#xff0c;仍然是大部分公司需要解决的问题。 框架定位 数据驱动设计模式&#xff0c;无需写测试代码脚本即可实现自动化等价类非等价类覆盖&#xff0c; E2E…...

MySQL学习笔记1

任务背景&#xff1a; 将原来的数据库从原来的MySQL-5.5 升级到现在的MySQL-5.7&#xff0c;并保证数据完整。 1&#xff09;不同版本MySQL的安装&#xff1b;yum glibc、源码安装&#xff0c;是企业100%要用到的。 2&#xff09;MySQL数据库版本升级&#xff1b;&#xff08…...

基于PYQT5的GUI开发系列教程【一】框架安装和基础环境配置

目录 本文概述 作者介绍 一、安装相关的库 二、在Pycharm上添加外部工具QtDesigner和PyGUI 三、测试QtDesigner和P有GUI 尾言 本文概述 PYQT5是一个基于python的可视化GUI开发框架&#xff0c;具有容易上手&#xff0c;界面美观&#xff0c;多平台部署等优点&#xff0c…...

【漏洞复现】Jeecg-Boot SQL注入漏洞(CVE-2023-34659)

漏洞描述 jeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!JeecgBoot引领新低代码开发模式 OnlineCoding-> 代码生…...

【MySQL基础 | 中秋特辑】多表查询详细总结

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、多表…...

21天学会C++:Day14----模板

CSDN的uu们&#xff0c;大家好。这里是C入门的第十四讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 知识引入 2. 模板的使用 2.1 函数模板 2.2 类模板 3. 模板声明和定义…...

MQ - 32 基础功能:消息查询的设计

文章目录 导图概述什么时候会用到消息查询消息队列支持查询的理论基础消息数据存储结构关于索引的一些知识点内核支持简单查询根据 Offset 查询数据根据时间戳查询数据根据消息 ID 查询数据借助第三方工具实现复杂查询第三方引擎支持查询工具化简单查询总结导图 概述 从功能上…...

c语言练习66:模拟实现offsetof

模拟实现offsetof #define offsetof(StructType, MemberName) (size_t)&(((StructType *)0)->MemberName) StructType是结构体类型名&#xff0c;MemberName是成员名。具体操作方法是&#xff1a; 1、先将0转换为一个结构体类型的指针&#xff0c;相当于某个结构体的首…...

数据库缓存服务器集群 redis集群

redis 提升数据库性能&#xff0c;缓解数据库压力 2.NoSql产品 产品: redis,mongodb,memcached 名词解释&#xff1a;非关系型数据库 以键值对的方式存储数据---&#xff08;Key-Value&#xff09;的形式 3.NoSql的优点 高可扩展性 分布式计算 低成本 架构的灵活性&…...

[密码学入门]仿射密码(Affine)

加密算法y(axb)mod N 解密算法x*(y-b)mod N(此处的为a关于N的乘法逆元&#xff0c;不是幂的概念&#xff09; 如何求&#xff0c;涉及的知识挺多&#xff0c;还没想好怎么写&#xff0c;丢番图方程&#xff0c;贝祖定理&#xff08;又译裴蜀定理&#xff09;&#xff0c;扩展欧…...

【Maven】SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题

问题原因&#xff1a; 多模块项目使用reversion点位符进行版管理&#xff0c;打包时生成的pom文件未将 {reversion}占位符替换为真实版本号。 而当子模块被依赖时&#xff0c;引入的pom文件中版本号是&#xff1a;{reversion}。而根据这个版本号去找相应父模块时肯定是找不到的…...

Vue watch实时计算器

watch实时计算器 可以自己选择、-、*、 参考代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title><script src"https://cdn.bootcdn.net/ajax/libs/vue/2.7.10/vue.js"></script>…...

Java中的super关键字

super 是Java中的一个关键字&#xff0c;它可以用来引用当前对象的父类&#xff08;超类&#xff09;的成员变量或方法。主要有以下用途&#xff1a; 访问父类的成员变量&#xff1a; 当子类和父类中有同名的成员变量时&#xff0c;可以使用super关键字来访问父类的成员变量。 …...

MySQL数据库入门到精通6--进阶篇(锁)

5. 锁 5.1 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决…...