软件测试基础

本文详细介绍了软件测试的基础知识,包括其定义、目的、原则,以及软件架构的B/S和C/S模型的优缺点。软件测试模型方面,阐述了V模型和W模型的特点与适用场景。此外,还涵盖了软件测试的流程、分类以及不同类型的测试方法,如功能测试、性能测试等。最后,讲解了Alpha测试和Beta测试的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件测试基础

1.软件测试的的定义目的原则

2.软件架构分类

3.测试模型的介绍

4.软件测试的流程

5.软件测试的分类

6.Beta 测试和 Alpha 测试有什么区别


软件测试的的定义目的原则

定义: 软件测试其实就是实际输出与预期结果之间的比较过程

目的:

  1. 通过测试工作可以发现并修复软件当中存在的缺陷,
  2. 可以降低同产品开发遇到的风险,
  3. 记录软件运行过程中的一些数据,从而为决策者提供技术支持。

原则:

●原则一:尽早进入软件测试
●​原则二:穷尽测试是不可行的     
●​原则三:程序员应避免检查自己的程序
●​原则四:充分注意测试中缺陷的群集现象
​●原则五:严格执行测试计划,排除测试的随意性
●​原则六:应当对每一个测试结果做全面的检查
​●原则七:妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便
●​原则八:设计测试用例时,应当包括合理的输入数据和不合理的输入数据
●​原则九:测试用例应由测试数据和与之对应的预期输出结果这两部分组成

 

软件架构分类

1.B/S(Browser/Server)架构:浏览器----服务器结构,B/S 要求有操作系统和浏览器就行,与操作系统平台无关(可以实现跨平台),对客户端的计算机电脑配置要求较低。

(1)优点:

●分布性强,客户端零维护。只要有网络、浏览器,可以随时随地进行查询、浏览等业务处理。
●业务扩展简单方便,通过增加网页即可增加服务器功能。
●维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
●开发简单,共享性强。

(2)缺点:

●个性化特点明显降低,无法实现具有个性化的功能要求。
●在跨浏览器上,BS架构不尽如人意。
●客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。
●在速度和安全性上需要花费巨大的设计成本。
●功能弱化,难以实现传统模式下的特殊功能要求。

2.C/S(Client/Server)架构:客户端----服务器结构,C/S 用户固定,一般只应用于局域网中,要求拥有相同的操作系统,如果对于不同操作系统还要相应开发不同的版本,并且对于计算机电脑配置要求也较高。

(1)优点:

●能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快。
●操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
●C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
●安全性能可以很容易保证,C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。

(2)缺点:

●需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
●兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
●开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需要改变。
●用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户,所以适用面窄,通常用于局域网中。

 

软件模型的介绍

我们常见常用的两种模型分别是V模型和W模型

1: V模型

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

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

2:W模型:

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

优点

1.测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。

2.测试于开发是并行独立进行的。

缺点

1.对有些项目,开发过程中根本没有文档产生,故W模型无法使用。

2.对于需求和设计的测试技术要求很高,实践起来很困难。

 

软件模型的流程

首先是要立项确定项目--产品会出一个产品说明书--需求人员编写需求文档--需求评审--开发编写详细设计--测试编写测试用例--测试用例评审--开发进行编码--测试部署环境进行测试--首先进行冒烟测试(主的业务要实现)--接着进行功能测试--出现bug使用禅道进行记录跟踪--开发进行修改--测试进行验证--然后进行回归测试--接着验收测试,验收测试通过--进行上线

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

 

软件模型的分类

 

 

​1、按技术划分:

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

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

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

2、按阶段划分:

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

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

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

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

3、按内容划分:

​功能测试:根据产品操作描述和需求文档,测试一个产品的特性和可操作行为是否满足用户需求的测试方法

​界面测试:测试用户界面的功能模块的布局是否符合客户使用习惯,界面操作便捷性、导航简单易懂性的测试

​冒烟测试:验证系统的核心功能是否能够正常运行的测试方法

​回归测试:指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误的测试方法

​业务逻辑测试:在基本的功能点都已合格的基础上,准备多种测试数据,来驱动各种约束条件下业务流程,确定最终输出的结果是否符合预期的测试

​易用性测试:指用户使用软件时是否感觉方便的测试

4、性能测试:

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

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

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

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

 

​Beta 测试和 Alpha 测试有什么区别?

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

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

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值