软件测试是做什么的(学软件测试需要什么基础)

软件:按特定顺序组织的计算机数据和指令的集合。

即程序数据文件。

数据:必要的数据(程序的配置,大多以配置文件的形式,sqlite业务数据)

文档:说明、问题处理手册、配置说明)

软件的生命周期

可行性研究-项目立项-需求分析-设计(概要和细节)-程序开发-测试(满足需求/发现bug)-)-收尾版本-部署和实施-产品支持。

研发模式

瀑布

样机

敏捷模型

软件测试模型

v型

w模型

测试中集成负责部分的接口测试和系统验收测试

测试阶段

单位-单位:功能;种类

单元测试是检查软件基本单元(软件设计的最小单元)正确性的测试工作。

目的:测试软件模块是否符合详细设计规范的LLD。

集成测试

单元之间以及单元与第三方接口之间的测试,以验证接口是否与设计一致;满足要求,检查软件模块是否符合概要设计规范。

整合策略:自下而上或自上而下的增量。

和端口号通信:IP端口协议。

http:80 https:443 tdnet:23 SSH:22-加密和未加密组

MySQL:3306 Oracle:1521 DNS:53 Tomcat:8080

系统测试

集成软件作为整个以计算机为基础的系统的一个要素,与其他系统要素,如计算机硬件、外设、一些支持软件、数据和人员等结合在一起,在实际运行环境中对计算机系统进行一系列测试。

目的:通过与《需求规格说明书》的比较,我们发现软件和系统需求的定义是不一致或矛盾的。

验证测试——有效性测试——通常在系统测试中总结。

验证软件的有效性,软件的功能、性能等特性是否与用户的要求一致。

验收测试——看甲方是否要求。

在交付给用户进行部署之前,请进行检查和验收。

面向用户的验收组:项目团队成员、用户代表或其他系统利益相关者。

阿尔法:内部,模拟/真实贝塔:外部,内部

回归测试——是否修复了bug是否引入新的问题?

在软件测试和其他活动中发现的缺陷在修改后进行测试。目的是验证缺陷已经被正确修复,同时系统的改变不会影响之前的功能。

策略1

完全重复测试(完全回归)

执行前一测试阶段建立的所有测试用例,以确认问题修改的正确性和修改的局部影响。

选择性重复测试(选择性回归)

选择性再现执行在早期测试阶段建立的所有测试用例,以测试修改后的程序。

选择性试验

策略2

覆盖修改方法

也就是说,对于修改的部分,选择或重构测试用例选择方法,以验证没有错误再次发生。

外围影响法:

这种方法不仅要覆盖修改方法确定的用例,还要分析修改的扩散效果,分析那些被修改的用例

更改间接影响部分,并选择测试用例来验证它没有受到负面影响。该方法比覆盖修改方法更充分。

一点钟。

指标实现方法:

这是一种类似于单元测试的方法。在重新执行测试之前,确定要达到的指标,例如修复。

100%覆盖修改后的代码,60%覆盖与修改相关的接口,等等。,基于这个要求,选择最小的一个。

的测试用例集合。

软件测试类型

功能测试

概念:

根据产品需求说明书和测试需求清单,验证产品的功能实现是否符合产品需求说明书。

该函数经过测试,可以发现以下几种错误

是否存在不正确或缺失的功能?

功能是否满足用户需求,系统设计的隐性要求。

输入能否被正确接受?你能输出正确的结果吗?-能正常输入吗?

功能先于性能。

特性试验

概念:

性能测试用于测试软件在集成系统中的运行性能。

性能测试的目标是测量系统和预定目标之间的差距。——预期目标的实现。

性能测试必须有工具支持。市面上有一些专门针对GUI或Web的性能测试工具,比如LoadRunner、JMeter、Silk Performer、WebLoad等。——也就是一个模拟工具。

注册用户和实时登录用户有一定的比例。

数据库中的信息由用户注册——准备测试数据——编写脚本生成数据库数据。

性能测试收集的信息

CPU的使用-在任务管理器中检查-100%的CPU将导致失败-当消息到达时,它将由CPU分发

IO使用-I/O-网络IO和硬盘IO

内存使用情况——内存读取速度比硬盘内存泄露快——程序运行申请内存泄露释放功能,最后会满内存。

频道使用-

每个模块执行时间的百分比

等待IO完成的模块的百分比

随着时间的推移跟踪指令路径

每组指令页换入和换出的次数。

系统反应时间

系统吞吐量,即单位时间内的进程数。

所有主指令的单位执行时间

负载测试——属于性能测试。

负载测试是在负载指标超过被测对象的标准性能时,验证系统的承载能力。并且要求业务功能在过载情况下仍能正常实现。

负载测试是通过对被测对象不断施加负载,观察被测对象在不同负载下的性能。

压力测试——属于性能测试。

压力测试的目的是调查资源过载时系统的性能。特别感兴趣的是这些如何影响系统的处理时间。这种测试以需要异常数量、频率或资源的方式运行系统。

目标:

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

示例:

成千上万的用户登录互联网;同时;

同时引入了大量的操作

体积测试

容量测试的目的是让系统承受多余的数据容量,以发现是否可以正确处理。

容量测试是面向数据的,其目的是表明系统可以处理

目标中确定的数据容量。

容量测试示例:

用编译器编译极大的源程序;

填满操作系统的任务队列;

巨大的电子邮件和文件充斥着互联网。

安全试验

安全测试用于验证系统中集成的保护机制是否能够真正保护系统免受非法入侵。用于保证系统本身数据的完整性和保密性。如自我保护能力、病毒防护能力、自定义通信协议安全性等。广义来说,还包括物理安全测试和业务安全测试。

传输-加密(军用;金融;)存储表加密

一些功能安全问题:

不用密码可以登录系统吗?

各级用户权限划分是否合理?

是否正确记录了错误和文件访问?

系统配置数据能否正确保存,系统出现故障时能否恢复?双机——出现问题切换到备用分布式系统——多台服务器。

测试内容:

一般来说,安全性测试可以从以下几个方面考虑

系统登录-强密码

用户管理

防火墙-硬件防火墙-设备通过防火墙访问互联网。

系统数据备份

web安全,如WEB加密、解密、数字签名等。- https:ssl

数据库的安全性——自身的安全性;数据稳定性

内部通信协议-协议的保密性

系统防病毒测试

测试GUI

概念:

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

GUI测试主要包括两个方面:

界面实现与界面设计的一致性;

确认接口处理的正确性。

业界常用的GUI自动化工具有QTP、SilkTest、QARun、QuickTestProfessional、selenium等。

GUI测试对象:

简单界面元素:指功能和属性相对简单的界面区域,即通常所指的各种控件。

类界面元素:主要指一些复杂的界面元素,如工具栏、组合框、表格、菜单栏等。

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

可用性测试

可用性测试是测试用户理解和使用系统的程度。主要考虑产品是否符合实际应用情况,是否符合用户习惯或特殊要求,操作方式是否便捷合理,设备与用户的交互信息是否准确易懂,是否符合行业习惯,外观/界面是否美观。所有与用户交互的功能或子系统都应该参与进来。这包括系统功能、系统版本、帮助文本和程序,以确保用户能够舒适地与系统交互。

测试人员应该有的一些可用性问题:

功能或指令过多;

安装过程困难;

错误信息不准确或过于简单;

用户被迫记住太多的信息;

语法、格式和定义不一致

卸载测试

定义:

系统的可安装性测试主要是根据软件测试功能列表、软件安装和配置文档,设计安装过程中的测试用例,查找软件安装过程中的错误。

目的:

系统可安装性测试的目的不仅在于发现安装软件本身的错误,还在于发现安装文档中的错误。安装软件系统时,有许多选择,如分发和加载文件和程序、安排适当的配置以及连接程序。而安装测试就是为了找出这些安装过程中的错误。

异常测试

概念:

系统异常测试也称为系统容错和恢复测试。它通过人工干预使系统软硬件异常,验证异常前后系统的功能和运行状态,从而测试系统容错、调试和恢复的能力。它是系统可靠性评估、容错处理的重要手段。

硬件-断电断网测试软件-手动杀毒程序

系统自动处理

人工干预治疗

注意:

系统的异常测试也与系统的指标测试有关。当系统需要提供的服务能力大于系统的设计指标时,也属于系统的异常情况,应一并考虑。

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

文件测试

文档测试的目标是验证用户的文档是正确的,并确保操作手册流程可以正确工作。

网络测试(接口测试)

概念:

网络测试是在网络环境下与其他设备进行连接,测试系统功能、性能和指标,以保证设备的正常连接。

内容:

网络测试检查处理能力、系统兼容性、系统稳定性和可靠性以及用户对系统的使用。

如通信产品,主要用于协议测试:

一致性测试:检查实现的系统是否符合协议规范。

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

互操作性测试:测试同一协议的不同实现厂商之间,同一协议的不同实现版本之间,或者同一类型协议的不同实现版本之间的互操作和互联能力。

鲁棒性测试:检测协议实体或系统在各种恶劣环境下(信道切断、通信设备断电、干扰消息注入等)运行的能力。)

稳定性试验

系统稳定性测试的目的是评价系统在一定负荷下的长期运行情况。包括在一定负载下给系统增加新的服务,原有的服务是否受到影响,新的服务能否正常工作,系统资源是否泄露,数据是否不一致,系统性能是否会降级。重点是系统长时间运行后怎么样,系统的MTBF是否能满足系统设计要求。

兼容性测试

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

软件测试方法

活动可以从不同的角度进行分类。主要通过对比解释以下测试分类:

黑盒测试、白盒测试和灰盒测试。

静态测试和动态测试

手动测试和自动化测试

还有其他的分类方式,需要搞清楚每种分类的具体含义。

任何软件产品都可以使用以下两种方法之一进行测试:

参考SRS(需求规格)直接测试计算器的加法功能。这是黑盒测试。

如果知道产品需求,但不知道其内部实现,可以通过测试来证明每个需求是否实现。

参考LLD(详细设计)根据主函数的伪代码或流程图测试主函数的结构。这是白盒测试。

给定产品的内部实现过程,可以通过测试内部各项操作是否符合设计规范的要求来证明。所有内部

成分是否经过检查。

白盒测试

根据被测软件分析程序的内部结构,根据内部结构设计案例测试内部控制流程,可以完全忽略程序的整体功能实现。程序分支的内部结构;订单;传播

白盒测试是一种基于程序结构的逻辑驱动测试。

白盒测试也可称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试和逻辑驱动测试。

白盒测试的优势

白盒测试一般在测试前期进行。达到一定的逻辑覆盖指数,就可以基本消除软件内部逻辑控制结构中的问题。

白盒测试可以保证内部逻辑结构达到一定的覆盖程度,可以对软件代码的质量给予更大的保证。

白盒测试后解决问题的成本低。

黑盒测试

将被测对象视为黑盒,只考虑其整体特征,不考虑其内部具体实现。

黑盒测试的测试对象可以是系统、子系统、模块、子模块、函数等。

黑盒测试也可以称为基于规格的测试。

灰箱测试

根据被测对象的不同信息,会采用不同的方法进行测试。

利用被测对象的整体特征信息,采用黑盒测试方法。

利用被测对象的内部具体实现信息,采用白盒测试方法。

如果既使用了被测对象的整体特征信息,又使用了被测对象的内部具体实现信息,则采用灰箱测试方法。两种信息的不同比例导致不同的灰度。是整体特征信息,即黑盒测试,是内部具体实现信息,即白盒测试。

典型的灰箱测试,如集成测试和系统测试,使用日志信息。

静态测试和动态测试

静态测试(Static testing):不运行被测软件系统,而是使用其他手段和技术对被测软件进行测试的一种测试技术。比如代码阅读、文档审核、程序分析等。都是静态测试的范畴。常用的技术是静态分析技术。

动态测试:按照预先设计的数据和步骤运行被测软件系统,从而对被测软件系统进行测试的一种测试技术。常用的技术包括动态分析技术。

静态分析技术

定义:静态分析是一种在不执行程序的情况下分析程序执行的技术。

功能:检查软件的表示和描述是否一致,没有冲突和歧义。它旨在纠正软件系统的描述、表示和规格说明中的错误,因此它是任何进一步测试执行的前提。

主要有三种不同的程序测试可能性:

考虑程序是否符合编码规则,语法是否一致完整;

考虑文档描述是否规范、准确、便于查阅;

考虑程序和文档的一致性。

自动化测试

意义

在新版本的程序上运行以前版本执行的测试,提高回归测试的效率。

您可以运行越来越频繁的测试,如冒烟测试。

您可以执行手工测试很难或者不可能的测试,比如大量的重复操作或者集成测试。

更好地利用资源,如测试仪器或被测对象。

限制

自动化测试代替人工测试,只能提高测试效率,而不能提高测试有效性,即无法发现更多的缺陷。

手动测试比自动测试发现更多的缺陷。

对测试设计的依赖性很大,糟糕的测试设计会遗漏问题。

自动化测试高度依赖软件开发,开发中的变化可能导致之前自动化测试的彻底失败。

工具本身没有想象力,工具也没有智能。

软件测试过程

测试需求阶段

测试计划阶段–测试计划

测试阶段–测试计划

实施阶段–测试案例

测试阶段——测试报告

实施和评估——对整个测试过程进行总结和评估。

主要测试文件

1.测试计划:表明测试范围、方法、资源和相应测试活动时间表的文件。

2.测试计划:一个详细的文档,指明完成软件或软件集成特性测试的设计测试方法。

3.测试用例:表明测试输入、预期结果、测试执行条件和完成测试项目的其他因素的文档。

4.测试程序:表明测试进行时测试活动顺序的文件。

5.测试报告:表明测试结果的文件。

6.每日测试报告:每日测试执行的记录和总结。

软件测试质量

软件的质量属性有很多,如正确性、准确性、健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可重用性、兼容性、可移植性、可测试性、可维护性、灵活性等。

iso9126

(0)
上一篇 2022年6月25日
下一篇 2022年6月25日

相关推荐