预备知识:软件测试专业术语
作者:强哥   类别:测试开发    日期:2020-05-20 15:33:36    阅读:3533 次   消耗积分:0 分


上期回顾:教材连载:测试用例设计(八)


实验简介


本实验主要为大家详细介绍软件测试的部分重要概念,便于大家能够对每一种测试方法和测试类型有更全面的理解,逐步对软件测试方法体系有深入理解,避免滥用概念,误用方法。


实验目的


(1)理解项目型软件和产品型软件在开发流程和测试阶段上的不同。

(2)理解单元测试/集成测试/系统测试/验收测试/Alpha测试/Beta测试/Gamma测试各阶段的区别和联系,以及相应的侧重点。

(3)理解白盒测试/灰盒测试/黑盒测试三种核心测试方法的区别和联系。

(4)理解基于代码/基于接口/基于界面/基于协议的测试等不同技术手段和应用场景。


实验流程


1.项目型软件。


项目型软件是指本软件是针对专门的客户进行定制开发,软件需求由客户(甲方)指定和确认,软件版权和源代码,文档等归甲方所有,只针对甲方收费,软件的研发和验收只为甲方负责。比如蜗牛创想为成都乐圈科技,雅安无线电管理中心等企业客户定制开发的软件均称为项目型软件。项目型软件有明确的研发周期,客户验收通过并付费后即表明本项目结束,所以项目的研发风险相对较低,当然,另外一方面其利润空间也相对不高。


2.产品型软件。


产品型软件是指本软件是针对大众需求进行研发,软件需求通常最开始由研发团队或运营团队根据市场可能的需求进行构思和设计,客户群体也是由市场团队或研发团队进行市场定位后确定。产品在没有正式上市运营之前无法收费,产品上市后继续根据用户的反馈进行产品改进和优化。产品可以选择收费或免费策略。目前我们看到的手机APP,游戏,QQ,微信,杀毒软件,办公软件,操作系统等等各类可下载的软件产品均属于产品型软件。产品型软件没有明确的周期可言,只要市场有需求,可以无限制地一直改进下去。比如我们看到的Windows操作系统,QQ或微信,美图秀秀之类的软件产品,并没有固定的周期,一直在更新和完善功能,以保持产品的用户数和市场竞争力。


3.单元测试(Unit-Testing)。


软件测试的早期阶段,主要专注于代码逻辑的实现,测试对象为单独的API(方法),其测试目标为保证每一个代码单元被正确实现,测试用例设计的目标是覆盖尽可能多的代码路径,通常采用路径覆盖法来判断测试代码的执行效果。

 

4.集成测试(Integration-Testing)。


软件测试的中期阶段,主要专注于API与API之间(比如A调用B,B调用C),或者模块与模块之间(比如登录模块与操作模块,操作模块与权限模块),甚至子系统与子系统之间的接口(比如淘宝网与支付宝,淘宝网与物流跟踪系统)。测试目的是确保代码单元进行集成后相互之间可以协同工作,典型的应用场景还包括Web前端页面与服务器后台页面之间的集成等。


5.系统测试 (System-Testing)。


软件测试的晚期阶段,主要专注于整个系统进行集成后的整体功能,从一个软件系统层面进行整体测试分析,设计与执行。系统测试阶段结束后并且对发现的BUG已经修复完成,则软件产品基本可以准备交付或发布。


6.验收测试 (Acceptance-Testing)。


软件测试的交付阶段,当项目型软件完成系统测试后,便可以交付给客户进行软件的验收。通常验收测试由客户方完成,客户根据明确的需求文档对软件的功能,性能,安全,兼容,可靠,可用待方面进行一一确认。有问题则继续改进问题,再进行验收,如果验收通过,则本项目宣告结束。

 

7.Alpha测试。


Alpha测试也简写为α测试,也被称之为“内测”,是专门针对产品型软件的一种测试手段,通常研发团队或邀请部分优质客户来到研发现场对软件进行测试,发现问题及时讨论解决。所以它是一种可控的测试手段,而且有固定的测试方法和套路。

 

8.Beta测试。


Beta测试也简写为β测试,也被称之为“公测”,是专门针对产品型软件的一种测试手段,通常我们会将已经开发完成的软件交付给用户使用,用户不必在研发现场,而是正常使用该软件,发现问题后向研发团队反馈,对产品进行改进。所以它是一种不可控的测试手段,我们无法明确知道用户会怎么使用软件产品,所以有些软件会跟踪记录用户行为,用以改进产品。β测试的产品不能向用户收费。

 

9.Gamma测试。


Gamma测试也叫γ测试,通常是产品型软件正式上市发布前的最后一轮测试,之所以叫γ测试,是取Release Candidate的R作为标记,即候选发布版本。这个时候的测试通常由整个软件产品研发团队包括项目经理,需求分析师,测试人员,开发人员等所有人在内进行探索性测试,不依赖于测试用例和文档,也不太多关注需求,而是把全体成员扮演成用户的角色来进行测试。

 

10.白盒测试。


白盒测试是一种测试方法,主要关注代码逻辑,直接对代码部分进行测试,可以测试代码块,或某一个独立的API,或者是某个模块均可。通常我们在单元测试阶段会更多地使用白盒测试方法。

 

11.灰盒测试。


是一种测试方法,主要关注接口之间的调用,通常在集成测试阶段会更多地使用灰盒测试方法。灰盒测试方法不关心代码的具体实现和代码逻辑,所以它不是纯粹的白盒测试,同时它也不关注界面的实现,所以它也不是纯粹的黑盒测试。它关注的是接口,我们利用代码来调用接口而不是利用界面操作来调用。从测试的角度来看可以这样理解:灰盒测试是利用白盒测试的方法进行的黑盒测试,也可以说成是利用黑盒测试方法进行的白盒测试,可以偏白一些,也可以偏黑一些。我们只关注接口传入的参数类型和返回值,所有黑盒测试的用例设计方法均适用。同时我们是绕开了界面的操作,而直接写代码来调用接口。这就是灰盒测试。

 

12.黑盒测试。


理解了白盒测试和灰盒测试,黑盒测试的理解相对容易。不关注代码,也不关注接口,而是关注界面。像一个普通用户一样来使用和测试软件。只关注功能的实现,关注用户使用场景,关注需求,关注使用体验。

 

13.基于协议的测试。


基于代码的测试通常称之为白盒测试,基于接口的测试通常称之为灰盒测试,基于界面的测试通常称之为黑盒测试,而基于协议的测试其实也是一种偏黑的接口测试。对于网络应用系统来说,前端和后端之间的通信一定需要通过协议完成,所以我们可以绕开前端的界面而直接向后端发送协议数据包来完成相应的操作和接口调用,从而达到测试的目的。后续项目中我们将花费大量时间来完成基于协议的测试,比如功能性测试,安全性测试和性能测试等,都将基于协议来完成。

 

14.静态测试。


不启动被测对象的测试,比如代码走读,代码评审,文档评审,需求评审等测试工作被称为静态测试。

 

15.动态测试。


启动被测试对象的测试,比如白盒测试,灰盒测试,黑盒测试等,都需要将被测对象启动和调用才能达到测试的目的。

 

16.手工测试(Manual-Testing)。


指不依赖于代码,而是完全依赖于人的操作来进行的测试。我们知道测试的重点和难点在于测试的分析和设计,而通常所说的手工测试是指测试的执行。通常用于黑盒测试方法或系统测试阶段。

 

17.自动化测试(Automation-Testing)。


指利用测试脚本来驱动被测对象完成的测试,我们的工作重点在于开发测试脚本,需要具备较强的程序设计能力。

注:基于代码或基于接口的测试天然的就是自动化测试。而基于黑盒测试的方法可以手工完成,也可以自动化完成,后面的项目中使用Selenium来完成的基于界面的测试便是黑盒测试自动化。

 

18.冒烟测试(Smoke-Testing)。


冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。

 

19.随机测试(Ad-hoc-Testing)。


随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。

 

20.回归测试(Regression-Testing)。


回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试的策略有两种,一种是完全回归,一种是部分回归。

 

21.概要设计(HLD)。


在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;

 

22.详细设计(LLD)。


对每个模块要完成的工作进行具体的描述。


 思考练习 


(1) 软件测试的专业术语很多,我们需要逐一理解和掌握,并能够有一个全局的认识,什么时候用什么方法效率最高,实施过程最容易达到目的。


为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20190320_095757_834.jpg

   
版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/493
上一篇: 15年毕业,从文职转行测试,她的入职月薪9.5K!
下一篇: 多端框架的全方位大测评
提示:登录后添加有效评论可享受积分哦!
最新文章
    最多阅读
      特别推荐
      回到顶部