2021总结盘点,软件测试有哪些必会的设计方法和技术知识点?
发布时间:2021-12-29

转眼间,2021即将结束,在短短的一年中,测试行业经过不断的发展和完善,也有了焕然一新的变化。

 

从前,很多人对软件测试的刻板印象都是,“可有可无”、“不如开发”、“工作简单机械 ”等等,而如今随着测试在企业中的比重不断增重,网上的这些负面评论出现的概率也随之减少了。

 

随着测试岗位的逐渐成熟化,企业对于测试人员的要求也在不断提升,从一开始的只需要学会功能性测试转变为如今更高级的自动化测试了。



我们都知道,IT行业是一个发展很快的领域,需要不断的精进自己的技能,才能在这条路上走的更远更好,本期,借着年末的机会,也给大家总结一下如今测试行业都有哪些必会的方法和技术知识点,主要针对新手,小伙伴们也可以根据文章的内容查漏补缺。



 一、设计方法分类 


黑盒测试


黑盒测试是进行软件配置项测试、系统测试、验收测试的主要技术手段。


我们可以这样理解,黑盒测试把产品软件看作是一个黑盒子,只需要关注入口和出口,即我们测试过程中,不需要去理解软件的具体构成和原理,只是往里面输入了什么,又出来了什么结果就可以了,和用户的视觉是一样的。


黑盒测试注重于测试软件的功能性需求,主要有三种测试技术,分别是等价类划分、边界值分析和决策表。但很多时候,仅仅进行黑盒测试容易产生一定的风险性,因此黑盒测试大多数用于辅助白盒测试发现其他类型的错误。


白盒测试


白盒测试是一种以理解软件内部结构和程序运行方式为基础的软件测试技术。通常需要跟踪一个输入在程序中经过了哪些函数的处理,这些处理方式是否正确。


白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。


白盒测试常用的测试方法有两大类,静态测试方法和动态测试方法。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试,同时包含六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖,发现错误的能力呈由弱至强的变化。



灰盒测试


灰盒测试是介于黑盒和白盒之间的一种综合测试方法,它综合了黑盒与白盒方法的优势,并有效地避开了两者各自的缺陷。


灰盒方法通过涵盖被测软件的所有层面,以增加技术的覆盖范围。如果说黑盒测试人员需要确保界面和功能方面的正常;白盒测试人员通过深入研究软件的内部结构,以修复源代码级别的错误,那么灰盒测试则是以非干扰的方式(non-intrusive)同时处理两方面的测试。


灰盒测试非常适合于集成测试,包括:缺乏源代码和二进制文件的Web应用,以及某些业务领域的需求规范性测试。


对这三种设计方法,不同的方法有着不同的适用场景和想实现目标,应当合理使用来确保软件满足各项最终的要求。



 二、手动测试和自动化测试分类 


手动测试


手动测试是手动测试软件以查找缺陷的过程。测试人员应该具有最终用户的观点,并确保所有功能都按需求文档中所述运行,期间无需使用任何的自动化工具,其中手动测试的类型包括:黑盒测试、白盒测试、单元测试、系统测试、整合测试、验收测试。

 

自动化测试


自动化测试是使用自动化工具来发现缺陷的软件测试过程。在此过程中,自动化工具会自动执行测试脚本并生成结果。目前比较流行的自动化工具有:HP QTP(专业快速测试)/ UFT(统一功能测试)、Selenium 、LoadRunner、IBM Rational Functional Tester、WinRunner。

 

我们通常在以下领域会进行自动化测试:回归测试、负载测试、性能测试。

 

有很多人认为手动测试是很简单的一件事,而自动化测试则很难,其实这两者方式都需要集合使用的,互相都不可代替,自动化测试是对手动测试的一种补充,主要应用在回归测试,自动化测试的优势是可以借助计算机的力量,重复的进行测试,可以用于大批量的比较,但对于数据的正确性、业务逻辑等的满意程度,还是需要手动测试来做的。

 

所有一个优秀的软件测试工程师,需要能够掌握两种测试方式,有机结合,才能使工作效率更高。




 三、按测试目的分类 


1、功能测试


功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试经常会也被称为黑盒测试,只需要考虑测试各个功能是否能够实现。

 

通常,我们把功能测试分成如下几个步骤:

 

1. 制定测试计划;

2. 设计测试用例:包含测试什么东西,在什么场景什么环境下测试;

3. 执行测试及产生测试报告;

 

功能测试是比较测试人员比较基础的技能点,之后需要往自动化测试、安全测试等方向耕深。


 

2、非功能性测试


1)性能测试


性能测试是通过自动化的测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试。需要测试人员会对性能测试相关的概念有所了解,明白什么是性能测试,以及测试的目的是什么。

 

同时需要会使用测试工具,如学习使用工具JMeter或者LoadRunner,进行性能测试,性能测试最难的其实是调优,这个就需要对代码以及数据库有更深的认知之后才可以完成。

 

2)安全性测试


全性测试是检查系统对非法侵入的防范能力。主要包括用户认证、系统网络安全和数据库安全方面的测试。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。

 

3)压力测试


一般来说,压力测试的目的是要通过模拟比预期要大的工作负载来让只在峰值条件下才出现的缺陷曝光。压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标。

 

4)负载测试


负载测试是指在高于平常水泡泡的负载下,系统或者应用软件会发生什么情况。

 

5) 平均无故障时间(MTBF)测试


MTBF测试是测量系统或应用软件在出错或当机前的平均运行时间。

 

6) 容量测试


容量测试一般是用来执行服务器或服务测试。目的是要确定系统最大承受量

 

7) 重复性测试


重复性测试是为了确定重复某一程序或场景的效果而采取的一项简单而“粗暴”(brute force)的技术。

 

8) 兼容性测试


兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。


9)辅助功能测试


辅助功能测试保证软件公司开发的软件能被伤残人使用。


10)本地化测试


本地化就是将软件版本语言进行更改,本地化测试的对象是软件的本地化版本。


11)配置测试


配置测试就是测试软件是否和系统的其他与之交互的元素之间兼容,验证被测软件在不同的软件和硬件配置中的运行情况


12)可用性测试


可用性测试是在产品或产品原型阶段实施的通过观察或访谈或二者相结合的方法,发现产品或产品原型存在的可用性问题。



 四、按阶段分类 


1、单元测试


在单元测试中,在开发阶段将测试软件应用程序的各个组件。单元测试通常由开发人员而不是测试人员完成。测试一段代码形式的功能以验证准确性。简单来说单元测试就是确认单个模块能否正常工作

 

2、集成测试


从测试类别来说,集成测试的主要测试内容包括功能性、可靠性、易用性、效率、可维护性和可移植性等,集成测试主要是确认多个模块能否协同工作。

 

3、系统测试


将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

 

4、验收测试


正式验收测试是一项管理严格的过程,它通常是系统测试的延续。验收测试的常用策略有三种,它们分别是:正式验收、非正式验收或 Alpha测试、Beta 测试。

 


 五、其他测试类型 


1、回归测试


回归测试(Regression testing) 指在发生修改之后重新测试先前的测试以保证修改的正确性。

 

2、冒烟测试


冒烟测试是指开发人员修复了先前测试中发现的bug后,想知道这个bug的修复是否会影响到其他功能模块,需要做的就是冒烟测试。需要保证覆盖待测产品的绝大部分功能;且被修复了的bug所属的功能和系统其他骨干功能都是可用的。


3、随机测试


随机测试是没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。



 写在最后 


对于新手而言,掌握基础技巧是目前最重要的事情,因此把握好学习节奏,一步一步来,就离成为一个优秀的软件测试工程师不远啦~



更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训

相关阅读
/