一个窗帘引发的——软件测试的基本概念及分类(三)

来源:互联网 发布:如何关闭端口号 编辑:程序博客网 时间:2024/04/27 14:51

首先对上一次测试含义总结一下:

1,测试一定是一个过程,一种活动。

2,测试一定有给定的或假设的背景条件。

3,测试一定是按照一定的步骤进行的。

4,测试一定有目的。

5,测试一定有一个期望值。

6,测试一定有一个结果,这个结果就是期望值和目的的差值。

拿穿衣服举例:

我穿这个衣服一定是有原因的如:冷、装逼去等等。---这包含了背景和目的。

穿衣的时候我可以反着穿、正着穿、从袖口伸胳膊进去、可以将衬衫勒到头上。。。等等。------这包含了穿衣服的步骤。

我是装逼去的,我就要把裤子套头上出门。。。-----恩,这个符合装逼的期望值,结果满意,就这样出门。。。。

我按照一般的步骤好好的把衣服穿好了。      -----法克,这能装个锤子逼,结果不满意,重新拿个内裤套头上试试。。。

测试其实就是一个试错的过程。


用比较正式的语言描述软件测试。---(部分定义有引用其他人的文章)

一、软件测试基本概念:

IEEE软件测试的定义为:

使用人工和自动手段来运行或者测试某个系统的过程,其目的在于检验它是否满足规定的需求或者是弄清楚预期结果与实际结果之间的差异。

它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。

1、软件=程序+文档,软件测试=程序测试+文档测试。 

“程序”是指能够实现某种功能的指令的集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。

2、软件的分类 

按功能分:系统软件、应用软件 

按技术架构分:单机版软件、C/S结构软件(C是指客户端, S指服务器端)、B/S结构软件(B是指浏览器) 

按照用户划分:产品软件、项目软件 按开发规模划分:小型、中型、大型  

3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。  

4、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word和excel,前者适合验收测试,后者适合功能测试。 

二、软件测试分类:

按照测试特征划分

按照测试技术划分

按照开发阶段划分

按照测试实施组织划分

按照测试对象划分

按照测试阶段划分

功能测试

黑盒测试

单元测试

Alpha测试

(开发方测试)

软件程序测试

软件版本接受测试

(冒烟测试)

性能测试

白盒测试

集成测试

Bate测试

(用户测试)

联机帮助测试

软件常规测试

负载/压力测试

灰盒测试

确认测试

第三方测试

其他文档测试

软件最终接受测试

(交付测试)

强度测试

基于风险测试

系统测试

 

 

 

容量测试

基于模型的测试

验收测试

 

 

 

配置测试

 探测性(自由)测试

 

 

 

 

兼容性测试

 

 

 

 

 

健壮性测试

 

 

 

 

 

界面测试

 

 

 

 

 

安装/反安装测试

 

 

 

 

 

文档测试

 

 

 

 

 

接口测试

 

 

 

 

 

国际化测试

 

 

 

 

 

可用性测试

 

 

 

 

 

基准测试

 

 

 

 

 

竞争测试

 

 

 

 

 

回归测试

 

 

 

 

 

场景测试

 

 

 

 

 

解释下:

1,健壮性测试:容错能力/恢复能力测试

侧重于程序容错能力的测试。本测试在单元测试阶段和系统测试阶段都要进行。如数据边界测试、非法数据测试、异常中断测试等等,主要是验证程序对各种异常情况是否进行正确处理。为了执行方便,建议健壮性的大部分测试用例尽量编写在功能测试用例中。  

故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。 故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据

2,性能测试、负载/压力测试、强度测试、容量测试的区别

性能测试:检验系统或系统部件是否达到需求规格说明中规定的各类性能指标,并满足一些性能相关的约束和限制条件。

负载/压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

强度测试:检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如,①当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;②定量地增长数据输入率,检查输入子功能的反映能力;③运行需要最大存储空间(或其他资源)的测试用例;④运行可能导致虚存操作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。

容量测试:容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。 

区别:1,预制条件不同;2,测试目的不同

联系:1,互相包含,如在测性能或者容量的时候,一般情况下负载或者强度都会从测试中同时测出;2,方法一样,都是增加被测对象的处理数据。

3,基准测试

基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。

4,基于风险的测试

这种测试一般用于需求、功能等引起的代码修改后,有比较急的项目的一种测试方法,属于测试策略的一种。

基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。 

 

基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。 

5,基于模型的测试

模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程如下图所示。


6,确认测试

确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求,确认测试是检测与证实软件是否满足软件需求规格说明书的要求 。


测试的基本定义及测试的分类可能会有很多,我这里只引用和总结了一部分与诸位共勉。。下次我们谈谈测试方法。


0 0
原创粉丝点击