软件测试基础理论

什么是软件测试

有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者这个软件,避免了他们被卸载的命运。
正向思维:验证程序是否正常运行,以及是否达到了用户预期的需求
逆向思维:通过执行测试用例发现程序的错误和缺陷

(一)定义
使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
(二)目的
狭义
就是找Bug广义

  • 找出软件中潜在的错误和缺陷,通过修复错误和缺陷提高软件的质量,回避软件发布后因缺陷或错误带来的商业分风险- 为了检验产品是否符合用户需求- 为了提高用户的体验 流畅度、性能范畴五、软件生命周期

需求采集- 潜在性,看是否有价值

  • 岗位:商业分析师/需求部门
    计划
    项目的计划(需求分析、研发设计、测试部署等等的工作时间计划)。由项目经理完成。## 需求分析搜集客户需要,形成需求文档。软件需求规格说明书(SRS)software requirements specification
    设计
  • 概要设计(HLD)High Level Design
  • 详细设计(LLD)Low Level Design
    编码
    开发编写代码## 测试进行测试。手工测试、自动化测试、性能测试等等,但不是一个项目任何测试类型都要做。上线、部署、运维软件维护是软件生命周期持续时间最长的阶段,在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适用用户的需求,要延续软件的使用寿命,就必须对软件进行维护。软件的维护主要包括纠错性维护和改进性维护两个方面。

QA和QC的差别

QA:品质保证- 从流程角度把控质量,看的是整个流程有没有问题,有没有执行到位。跟踪开发/测试的代码、文档进度、质量。
QC:品质控制- QC就是测试人员所做的。测试从技术技术角度保证软件质量。
七、软件项目组人员组成

  • 项目经理
  • 需求分析人员
  • 设计人员 UI- 开发人员
    前端、后端- 测试人员 手工测试人员、自动化测试人员- 配置管理人员 不一定有单独的人员
  • SQA() 质量管理。测试从技术技术角度保证软件质量,SQA是从流程角度把控质量,跟踪开发/测试的代码、文档进度、质量。

常见项目架构

QQ截图20210327175346

软件开发组

  • 开发经理
  • 分析人员
  • 设计人员
  • 开发人员
    软件测试组
  • 测试经理
  • 测试人员
    配置管理组- 配置经理
  • CMO(配置管理员)

软件测试分类

(一)产品软件和项目软件

  1. 产品软件(产品经理):面向大众开发的产品,软件所有权归开发方所有,通过投入市场来盈利。比如微信,QQ就是产品。
  2. 项目软件(项目经理):客户私人订制,软件所有权归出资方(甲方)所有。比如A企业想要一个电商网站。B企业就给做一个电商网站

(二)按测试技术划分(方法)

根据代码的可见度来决定

1.黑盒测试(数据驱动测试,功能测试

不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。**因此黑盒测试又叫功能测试或数据驱动测试。

  • 系统测试属于黑盒测试
  • 主要通过软件界面的交互来进行

2.白盒测试(逻辑驱动测试,结构测试

已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查- 玻璃盒子/透明盒子

  • 单元测试属于白盒测试
  • 覆盖率—单个或者所有用例,对代码/分支

3.灰盒测试- 大致知道代码逻辑,不需要看懂所有代码

  • 接口测试属于灰盒测试

(三)测试类型

静态- 不涉及代码的运行

不运行被测程序本身,通过评审文档和阅读代码等方式测试软件 > 怎么个阅读法 就是让代码在你大脑运行,看是否有错误。黑盒测试人员一般不参与。开发的代码你不一定懂,比如Java、C/C++、Js等语言

动态- 运行代码

通过运行被测程序,检查运行结果与预期结果的差异,通常使用白盒和黑盒测试从不同的角度设计测试用例来查找代码中的错误 > 怎么个运行 比如测试环境需要部署在Linux中,那么代码就在运行

(四)按不同的测试手段划分

手工不依赖代码,完全依赖于人的操作
自动化- 利用测试脚本来驱动被测试对象完成的测试- 工具或代码实现- 哪些适合自动化测试?(经典面试题)

  • 长期稳定,需求不容易变更,大量重复性工作
  • 常用于回归测试
  • 人力无法实现的场景

(五)按测试阶段划分

单元测试

  • 主要测试程序代码,为了确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类、函数、方法的测试等等。开发自测(白盒测试)

集成测试

  • 首先单独测试各个模块。将所有模块组合在一起的测试叫集成测试。
    验证组装后功能及模块间接口是否正确、数据能否正常传递接口测试

系统测试

  • 把软件系统搭建起来,按照软件需求规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等。最重要,最常见(Web,App)

用户验收测试

  • 验收测试根据合同、《需求规格说明书》或《验收测试计划》对成品进行验收测试。分为α测试、β测试、γ测试- 主要就是用户在拿到软件的时候,在使用现场,根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。

α测试alpha
部分客户或客户代表,来我们公司,然后在公司开发环境进行验收,由公司人员演示项目功能,开发在旁边记录反馈的结果

开发不放心测试人员测试,把客户指定到开发环境下,现场挑正常功能测试(预先测试没问题的功能)。不希望测试人员牵扯进来,测试一旦测试出Bug,现场就尴尬。
产品成熟度不够

β测试beta将软件部署到客户的正式环境,让所有用户使用软件,进行验收测试。与α测试不同 的是,β测试时开发者通常不在测试现场。因为β测试是在开发者无法控制的环境下进行的软件现场应用。
γ测试gamma发行前的最后一版测试,是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行

交付测试- 是应用于项目的。和验收测试是有区别的- 项目部署在用户环境下进行测试。用户也有可能有自己的测试团队,也会聘请第三方测试团队进行测试

其他测试

冒烟测试

  • 主要看基本功能是否正常- 在新版本出来的时候,将软件的全部功能过一遍,功能可以正常进行不会影响测试进度,这个版本就可以真正测试了。主要确认新的版本是否存在致命性bug。

回归测试

  • 已经成型,而且已经进行过一轮测试,要对原有的功能进行测试,或者是对原有测试用例还有缺陷进行测试的行为,就是回归测试。
  • 新版本里面运行上一个版本的用例,看一下是否被修复或者新的缺陷
  测试时发现bug ->开发修改 ->打了新包 ->重新测试,保证程序在修正了bug之后正常运行,且不会带来新的错误

冒烟测试和回归测试的区别

冒烟测试:
新版本验证测试,主要确认新的版本是否存在致命性bug,功能可以正常运行,不会影响下一轮测试,不要求覆盖面有多广,但是要保证被测对象的主功能点得到测试,还要保证所有被修改过以及修改相关的功能都是可用的,若都通过则可以进行系统测试
回归测试:
是软件维护阶段对软件修改后进行的测试,指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误

mokey测试

本地化测试

国际化测试

基于协议的测试

  1. http
  2. ftp

系统测试的16个测试策略

功能测试,安全测试,容量测试,性能测试,压力测试,稳定性测试,可用性测试,健壮性测试,GUI测试,安装测试,配置测试,异常测试,备份测试,文档测试,在线帮助测试,网络测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试是指对软件的程序、数据和文档进行检查、验证和评估的过程,以确保软件的质量和正确性。软件测试贯穿于整个软件生命周期中,包括需求分析、设计、编码和维护阶段。软件测试的目的是发现软件中的错误和缺陷,并评估和提高软件的质量。 软件测试的充分性准则指出,对于任何软件都存在有限的充分测试集合。如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。但即使对软件的所有成分都进行了充分测试,也并不表示整个软件测试已经充分。同样,即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分地得到了测试软件测试的充分性与软件的需求和实现都相关,而且软件越复杂,需要的测试数据就越多。然而,进行越多的测试,进一步测试所能得到的充分性增长就越少。 软件测试可以根据不同的分类标准进行分类。其中,单元测试是对软件中的最小可测试单元进行检查和验证的测试,它需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。其他常见的软件测试分类包括集成测试、系统测试、验收测试等。 在软件测试过程中,还有一组测试原则可以参考。这些原则旨在寻找软件的错误和缺陷,评估和提高软件的质量。这些原则包括测试的目标明确、测试应该在代码编写之前开始、测试用例应该覆盖所有可能的情况、测试应该是可重复的、测试应该独立于开发团队、测试应该进行验证和验证等。这些原则有助于确保软件测试的有效性和全面性。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值