软件测试基础(二)

一. 软件测试阶段

 

 1. 单元测试

单元:函数,类

定义:是针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作。

目的:是检测软件模块对《详细设计说明书》LLD的符合程度。

2. 集成测试

定义:对单元之间及单元与第三方接口之间的测试。

目的:是验证接口是否与设计相符,是否与需求相符。(即检测软件模块对《概要设计说明书》的符合程度)

集成策略:自底向上或自顶向下 渐增式

3. 系统测试

定义:是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件,外设,某些支持软件,数据和人员等其他元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试工作。

目的:在于通过与《需求规格说明书》作比较,发现软件与系统需求定义不符合或与之矛盾的地方。

4. 确认测试

定义:又称有效性测试,它的任务是验证软件的有效性,即验证软件的功能和性能及其他特性是否与用户的要求一致。

若能达到这一要求,则表明开发的软件是合格的。

5. 验收测试

交付用户部署前,进行验收测试;

以用户为主,验收组:项目组成员,用户代表或者系统的其他利益相关者。

根据合同,《需求规格说明书》或《验收测试计划》对成品进行验收测试。

6. Alpha测试和Beta测试

Alpha:内部,模拟/真实

Beta:外部,真实

7. UAT测试

User Acceptance Test 用户接受度测试,验证系统的可用性。

8. 回归测试

定义:Regression Testing,软件在测试或其他活动中发现的缺陷经过修改后进行测试。

目的:是验证缺陷得到了正确的修复,同事对系统的变更没有影响以前的功能。

发生阶段:回归测试可以发生在任何一个阶段,包括单元测试,集成测试和系统测试。

 

 8.1 回归测试策略

完全重复测试:重新执行所有的前期测试阶段建立的测试用例,来确认问题修改的正确性和修改的扩散局部影响性。

选择性重复测试:即有选择地重新执行部分在前期测试阶段建立的测试用例,来测试被修改的程序。

选择性重复测试方法:

(1)覆盖修改法:即针对被修改的部分,选取或重新构造测试用例验证没有错误再次发生的用例选择方法;

(2)周边影响法:该方法不但要包含覆盖修改法确定的用例,还需要分析修改的扩散影响,对那些受到修改间接影响的部分选择测试用例验证它没有受到不良影响。该方法比覆盖修改法更充分一点。

(3)指标达成方法:这是一种类似于单元测试的方法,在重新执行测试前,先确定一个要达成的指标,如修改部分代码100%覆盖,与修改有关的接口60%的覆盖等,基于这种要求选择一个最小的测试用例集合。

8.2 回归测试流程

以下流程适合于单元测试,集合测试和系统测试

(1)在测试策略指定阶段,指定回归测试策略;

(2)去顶需要回归测试的版本;

(3)回归测试版本发布,按照回归测试策略执行回归测试;

(4)回归测试通过,关闭缺陷跟踪单(问题单);

(5)回归不通过,缺陷跟踪单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试。

8.3 回归测试自动化

(1)回归测试是一个重用以前成果的测试,很难预料到要经过多少次回归系统才能达到满意的结果,这种回归测试将可能演变成一个重复的,令人心烦意乱的工作,效果与人员的积极性将大打折扣,因此,在回归测试道路上的自动化便是我们工作的追求。

(2)回归测试的自动化法包括测试程序的自动运行,自动配置,测试用例的管理和自动输入,测试的自动执行,测试信息与结果的自动采集,测试结果的自动比较和结论的自动输出,尤其前面提到的各类数据的共享决策。

(3)对系统测试功能比较简单,测试界面相对稳定并且测试用例良好组织的测试来说,采用“捕捉回放”工具是比较合适的,这类工具有Selenium。

9. 冒烟测试

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

冒烟测试的执行这是版本编译人员。

二. 软件测试类型

1. 功能测试

概念:功能测试是根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。

目标:功能测试主要是为了发现以下几类错误

(1)是否有不正确或遗漏了的功能;

(2)功能实现是否满足用户需求和系统设计的隐藏需求?

(3)输入能否正确接受?是否正确输出结果?

2. 性能测试

定义:Performance Testing,就是用来测试软件在集成系统中的运行的性能。

目标:是度量系统相对于预定目标差距;

工具:Loadrunner,Jmeter,SilkPerformer,WebLoad。

性能测试收集的信息:CPU使用情况;IO使用情况;内存使用情况;信道使用情况;每个模块执行时间百分比;一个模块等待IO完工的百分比;指令随时间的跟踪路径;每一组指令页换入和换出的次数;系统反应时间;系统吞吐量,即每个时间单元的处理数量;所有主要指令的单元执行时间。

3. 负载测试

定义:超过被测对象标准性能负荷指标下,验证系统的负载承受能力。并要求超符合情况下,依然正常实现业务功能。

目的:通过不断对被测对象施加负荷,观察被测对象在不同负荷下的性能表现。

4. 压力测试

Stress Testing的目的是调查系统在其资源超负荷的情况下的表现。尤其是这些对系统的处理时间有什么影响。

目标:通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。主要验证系统的可靠性,找到系统薄弱环节。

5. 容量测试

定义:Volume Testing的目的是使系统承受超额的数据容量来发现它是否能够正确处理。

目的:容量测试是面向数据的,显示系统可以处理目标内确定的数据容量。

6. 安全测试

定义:Security Testing 用来验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。用来保证系统本身数据的完整性和保密性。如受到恶意攻击时,设备的自我保护能力,病毒防护能力,自定义通信协议安全性等。广义的还包括物理安全性测试,业务安全性测试。

安全性测试内容:系统的登录;用户管理;防火墙,系统数据;WEB安全性,如WEB的加密,解密,数字签名等;数据库的安全性;内部通信协议;系统防病毒测试。

7. GUI测试

GUI测试是针对软件系统GUI界面进行的测试。

GUI测试主要包括两方面内容:界面实现与界面设计的吻合情况;确认界面处理的正确性。

GUI测试对象:

(1)简单界面元素:指功能和属性相对比较单一的界面区域,即通常所指的各种控件;

(2)组合类界面元素:主要指一些复杂的界面元素,比如工具栏,组合框,表格,菜单栏等;

(3)完整界面(窗口):由一系列界面元素通过适当的形式组合而成的界面形式,最为常见的为各种窗口。包括各种对话框,单文档窗口,多文档父窗口,多文档子窗口等。

8. 可用性测试

定义:Usability Testing 是为了检测用户在理解和使用系统方面到底有多好。主要考虑产品是否符合实际应用情况,是否符合用户习惯或特殊要求,操作方式是否方便合理,设备和用户间的交互信息是否准确易于理解,是否遵从行业习惯,外观/界面是否美观等。应涉及到所有和用户有交互的功能或子系统。这包括系统功能,系统发布,帮助本本和过程,以保证用户能够舒适地和系统交互。

测试人员应当关注的可用性问题

(1)过分复杂的功能或者指令;

(2)困难的安装过程;

(3)错误信息不准确或者过于简单;

(4)用户被迫去记住太多的信息;

(5)语法,格式和定义不一致。

9. 安装卸载测试

定义:系统的可安装性测试,主要是根据软件的测试特性列表,软件安装,配置文档,设计安装过程的测试用例,发现软件在安装过程中的错误。

目的:不仅是找安装软件本身的错误,而且还要找安装文档的错误。在安装软件系统时,会有多种选择,要分配和装入文件和程序,布置适当的配置,进行程序的联结。而安装测试就要找出这些安装过程中出现的错误。

10. 文档测试

概念:系统异常测试又叫系统容错和可恢复性测试,它是通过人工干预手段使系统产生软,硬件异常,通过验证系统异常前后的功能和运行状态,达到检验系统的容错,排错和恢复的能力。它是系统可靠性评价的重要手段。

容错处理:系统自动处理和人工干预处理。

注意

(1)系统异常测试还与系统的指标测试有关系,当系统需要提供的服务能力大于系统的设计指标时,也属于系统异常的情况,因此应该结合起来加以考虑。

(2)系统的可靠性是设计出来的,而不是测试出来的。测试出来的数据有助于为我们进行进一步的系统优化设计积累经验,设计和测试是一个互为反馈的过程。

11. 文档测试

文档测试(Documentation Testing)的目标是验证用户文档是正确的,并且保证操作手册的过程能够正确工作。

12. 网络测试(接口测试)

定义:网络测试是在网络环境下与其他设备对接,进行系统功能,性能与指标方面的测试,保证设备对接正常。

内容:网络测试考察系统的处理能力,系统兼容性,系统稳定可靠性及用户使用等方面。如通信产品,主要进行协议测试:

(1)一致性测试:检测所实现的系统与协议规范符合程度;

(2)性能测试:检测协议实体或系统的性能指标(数据传输率,连接时间,执行速度,吞吐量,并发数等);

(3)互操作性测试:检测同一协议不同实现厂商之间,同一协议不同实现版本之间,或同一类协议不同实现版本之间互通能力和互连操作能力;

(4)坚固性测试:检测协议实体或系统在各种恶劣环境下运行的能力(通道被切断,通信设备掉电,注入干扰报文等)

13. 稳定性测试

目的:是评价系统在一定负荷情况下,长时间的运行情况。包括系统在一定负荷下,再增加新的业务,原有的业务是否受影响,新的业务是否能正常工作,系统资源有无泄漏,数据有无不一致的情况,系统性能是否降下来,关键点是长时间的运行后,系统的状况如何,系统平均无故障时间MTBF是否满足系统设计要求。

14. 兼容性测试

兼容性测试验证被测对象与硬件,其他软件之间的兼容情况。

 

posted @ 2023-02-06 17:40  惟默  阅读(184)  评论(0编辑  收藏  举报