你必须要知道的软件测试3个主流方式

程序员二黑 程序员二黑     2023-01-06     266

关键词:

在产品项目的最后推进过程中,会经过一系列的测试来判断以及优化产品,在测试中使产品的属性特征最优化,最终达到吸引更多客户的目的;本文作者分享了三种软件测试的主流方式,我们一起来了解一下。


在产品概念阶段,开展“电梯测试”是为了确定定位策略,将产品特征转化成显著的客户利益;在产品设计阶段,只有产品模型,测试目的是如果使产品的属性特征最优化,从而更吸引客户。

当产品最终完成但还没有引入市场时,实施产品测试是为了控制产品质量,维持产品生命。在产品正式上市前进行小范围的市场测试,目的在于识别竞争对手的实力和弱势(如果产品有做进一步改进的潜力的话,还可进行改进测试),确定产品在目标市场中的位置。

产品测试的目的随着被测试产品的发展或生命周期的不同阶段而不同,决定采用哪种测试研究方式是建立在研究的目的之上的,所以并没有一种测试可以称得上是最好的。

阿尔法α(Alpha)、贝塔β(Beta)、伽马λ(Gamma)测试常用来表示软件测试过程中的三个阶段,用于在开发流程中和上市前夕测试新产品:

  • α是第一阶段,一般只供内部测试使用;
  • β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;
  • λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。

由于样本选择缺乏统计基础,这种市场研究方式不提供具体的统计置信度,即这种方式不是严格意义上的定量分析,但它确实能够提供客户在使用产品后的详细反馈;此处,客户面对的是最终产品,或非常接近最终形态和功能的产品,测试有助于对产品进行验证和改进修正。

以下为大家详加介绍阿尔法、贝塔、伽马和试销主流测试方式:

一、阿尔法测试

阿尔法测试类似于可用性测试(在软件领域称之为软件测试),通常由内部测试人员完成;在极为少见的情况下,阿尔法测试是由客户过外部人员完成的,阿尔法测试发布的版本被称之为阿尔法版本(在软件领域常被称之为DAT开发测试[张乐飞1] 环境应用)。

阿尔法测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,试图发现错误并修正,阿尔法测试由程序员或测试员完成。

阿尔法测试的关键在于——尽可能逼真地模拟实际运行环境和用户对软件产品的操作,并尽最大努力涵盖所有可能的用户操作方式。

阿尔法测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持),尤其注重产品的界面和特色。

阿尔法测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始,有关的“测试用例”应该在阿尔法测试前准备。

软件测试是在软件交付用户使用或投入运行前,对软件需求规格说明、设计规格说明和编码的最终复审,是软件质量保证的关键步骤,软件测试是为了发现错误而执行程序的过程。

软件测试在软件生命周期中横跨两个阶段:通常在编写出每一个模块之后就需要对它做必要的测试(称为单元测试),编码和单元测试属于软件生命周期中的同一个阶段;在结束这个阶段后对软件系统还要进行各种综合测试,如集成测试、系统测试、性能测试和配置测试等,这是软件生命周期的另一个独立阶段,即测试阶段。

只有当阿尔法测试达到一定的可靠程度时,才能开始贝塔测试,阿尔法测试即为非正式验收测试,经过Alpha测试调整的软件产品称为贝塔版本。

二、贝塔测试

贝塔测试是一种验收测试,所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段。

通过了验收测试,产品就会进入发布阶段,贝塔测试后发布的版本被称为贝塔版本(在一些企业称之为UAT用户测试[张乐飞2] 环境应用);可以说,贝塔测试是“预发布测试”。

软件的贝塔测试版本将会被在网上发布,提供给广大用户,从而使该程序进人“真实世界”测试,并为下一个发布版本提供部分预览。贝塔测试的主要目的在于,获得不同客户群体的反馈以及检查在不同类型的网络和硬件下产品的兼容性。

贝塔测试由软件的最终用户们在一个或多个客户场所进行。与阿尔法测试不同,开发者通常不在贝塔测试的现场,因贝塔测试是软件在开发者不能控制的环境中的“真实”应用。

用户贝塔测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在贝塔测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

在B2B环境中,贝塔测试通常包含以下4个方面。

  • 确定一小群“种子”客户,这群客户常被称为领先客户或领先用户。
  • 构建一个测试计划,并确定产品开发、市场营销、销售和产品管理中的关键角色和职责。测试计划要包含试验的持续时间和试验后处置结果。
  • 客户与产品公司之间的合同包含项目计划,以便客户能明白目标、持续时间和延期补偿。另外,保密条款也应该包括在内。
  • 客户应该了解要测试什么及如何反馈结果。团队需要确保能收集客户数据,能组织任何最后的访谈,并能把产品带回实验室。

验收测试要通过一系列黑盒测试。验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求, 确保所开发的软件产品符合用户的各项要求。

通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,软件测试的最后一步——验收测试即可开始;验收测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。

验收测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。

无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。

验收测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。

大型通用软件在正式发布前,通常需要执行Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。

三、伽马测试

伽马测试是终级测试,测试之后,该软件几乎就是上市的最终版本了;此时,不再进行软件的功能开发或改进。

在这一阶段唯一可能修改的是限定范围内的代码错误,当该软件已经准备好发布且能够满足各类要求后,就开始进行伽马测试,测试时无须进行其他任何内部测试。

除了在开发周期时间极短、上市速度要求极快的高压情境下(由于伽马测试并不常见,因此在此不做太多赘述)。

最后下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

下面是一份配套的软件测试资源包:


上面是一些配套资源,这些资源对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

如果您觉得文章还不错,请 点赞、分享、在看、收藏 一下,因为这将是我持续输出更多优质文章的最强动力!

精彩推荐

在职阿里6年,一个29岁女软件测试工程师的心声

拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档

jmeter--作为测试你必须要知道的基础名词与环境搭建

       大家好,我们本章开始学习Jmeter,后续还会有RF以及LoadRunner的介绍,为什么要学习Jmeter,它主要是用来做性能测试的,其中它也需要间接或直接的需要用到抓包工具,至于为什么需要用到抓包工... 查看详情

在做自动化测试之前你必须要知道的事

做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。我们更普遍的认识把“自动化测试”看做“基于产品或项目UI层的自动化测试”。 UI层的自动化测试,这个大家应该再熟悉不过... 查看详情

oracle!你必须要知道的knowledgepoints(入门篇)(代码片段)

一、入门oracle有四个用户,分别为sys、system、sysman和scott,其中sys是oracle权限最高的用户,类似于Linux系统的root,scott是实例用户,上课就以这个用户里的三张员工表empno、dept、salgrade作为示例来授课。启动服务1.快捷键ctrl+alt+del打... 查看详情

深入集合类系列——你必须要知道的两棵继承树

查看详情

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)(代码片段)

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)1.    为什么存在动态内存分配2.    动态内存函数的介绍2.1    malloc2.2    freemalloc和free通常配合一起使用:2.3    calloc2.4   ... 查看详情

关于程序国际化你必须要知道这事

银弹谷零代码开发平台V百科|新功能:关于国际化你必须要知道这事小张最近有一个烦恼!他们公司最近接了一个跨国合作的项目,小张因为业绩优秀英语功底扎实,也有多年做项目的经验,所以就被领导派去做项目负责人。但... 查看详情

你必须要知道的10款app开发框架

对于大部分Web开发人员,HTML、CSS和Javascript是他们最熟练的开发技能。然而,开发一个原生的移动App,对他们来说却是完全陌生的领域。因为开发Android,iOS或WindowsPhone上的原生App(app开发公司ty300.com),需要掌握完全不同的开发... 查看详情

关于ffmpeg-php你必须要知道的

1#PHPFFmpeg23[![BuildStatus](https://secure.travis-ci.org/PHP-FFMpeg/PHP-FFMpeg.png?branch=master)](http://travis-ci.org/PHP-FFMpeg/PHP-FFMpeg)45[![SensioLabsInsight](https://insight.sensiolabs.com/pr 查看详情

线程池续:你必须要知道的线程池submit()实现原理之futuretask!(代码片段)

前言上一篇内容写了Java中线程池的实现原理及源码分析,说好的是实实在在的大满足,想通过一篇文章让大家对线程池有个透彻的了解,但是文章写完总觉得还缺点什么?上篇文章只提到线程提交的execute()方法,并没有讲解线程... 查看详情

线程池续:你必须要知道的线程池submit()实现原理之futuretask!(代码片段)

前言上一篇内容写了Java中线程池的实现原理及源码分析,说好的是实实在在的大满足,想通过一篇文章让大家对线程池有个透彻的了解,但是文章写完总觉得还缺点什么?上篇文章只提到线程提交的execute()方法,并没有讲解线程... 查看详情

划重点|ios15正式发布,全新的通知推送系统,你必须要知道

简介: 今年友盟+联合达摩院决策智能实验室讲算法技术,推出国内首个智能推送功能,帮助产品运营人员实现一键式触达的精细化运营。通过精心打磨的在线学习与优化算法,对推送人群与推送文案进行精准... 查看详情

关于http协议,你必须要知道的(代码片段)

引言HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是基于TCP/IP协议通信协议来传递数据(HTML文件,图片文件,查询结果等)。它不涉及数据包(packet)传... 查看详情

关于配置,你必须要知道这一点....(代码片段)

kafka管控平台推荐使用滴滴开源的Kafka运维管控平台(戳我呀)更符合国人的操作习惯、更强大的管控能力、更高效的问题定位能力、更便捷的集群运维能力、更专业的资源治理、更友好的运维生态、BliBli视频:石臻臻的杂货铺kafka的... 查看详情

oracle!你必须要知道的knowledgepoints(下)(代码片段)

子查询什么是子查询当查询中的限制条件需要另一个查询提供时,我们可以把两个查询语句嵌套起来,提供条件的查询语句作为子查询。子查询,也叫内部查询,先于主查询执行,子查询的结果被用于主查询。子查询分为单行子... 查看详情

你必须要知道的雪崩穿透预热更新降级

以前总觉得,写得一手好Java代码,走遍天下都不怕,后来随着时间得推移,才意识到程序的高效性流畅性才是最重要最重要的。所有的技术都是前人不断实践突破革新留下的产物,它们的存在以及运用一定有... 查看详情

作为web开发人员,你必须要知道的问题!(持续更新)

GET和POST的区别 GET请注意,查询字符串(名称/值对)是在GET请求的URL中发送的:/test/demo_form.asp?name1=value1&name2=value2GET请求可被缓存GET请求保留在浏览器历史记录中GET请求可被收藏为书签GET请求不应在处理敏感数据时使用GET... 查看详情

做自动化测试之前,你必须要了解的

前言随着软件测试技术的发展,人们已经从最初的纯粹的手工测试转变为手工与自动化测试技术相结合的测试方法。近年来自动化测试越来越受到人们的重视,对于自动化测试的研究也越来越多。我在做自动化测试期间经历了不... 查看详情

这10个奇妙的python库,你必须要试试!

导读:Python有着很多很酷的第三方库,可以使任务变得更容易。今天就给大家分享10个有趣的Python库,每个都非常实用!作者:小F来源:法纳斯特(ID:walker398)这10个库分别是speedtest、socket、te... 查看详情