软考备战系列一----软件测试基础

1.软件测试基础

软件测试的定义

测试的含义为检验产品是否满足需求为目标,

软件测试的目的

测试的目的是寻找错误,并且尽最大可能找出最多的错误

软件测试的原则

所有的软件测试都应追溯到用户需求

应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭

完成测试时不可能的,测试需要终止

充分注意测试中的集群现象

程序员应避免简称自己的程序

尽量避免测试的随意性

软件测试的对象

软件包括文档、数据以及程序三部分组成

软件测试分类

按开发阶段软件测试分为:单元测试、集成测试、系统测试、确认测试、验收测试

单元测试又称为模块测试,是针对软件设计的最小单位----程序模块进行正确性检验的测试工作

集成测试也叫组装测试,通常在单元测试的基础上,将所有的程序模块进行有序的递增的测试,集成测试是检验程序单元或部件的接口关系

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

系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。

验收测试按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。

按照测试实施组织划分为:开发方测试、用户测试(β测试)、第三方测试

开发方测试也叫“验收测试”或“a测试“,是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。

用户测试在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。

第三方测试介于软件开发方和用户之间的测试组织的测试,第三方测试也称独立测试

,一般情况是在模拟用户真实应用环境下,进行软件确认测试。

**按照测试技术分为:白盒测试、黑盒测试、灰盒测试。**也可划分为静态测试和动态测试

白盒测试是通过对程序内部结构的分析,检测来寻找问题

黑盒测试是通过软件的外部表现来发现其缺陷和错误

灰盒测试是介于白盒和黑盒之间的测试,同时结合了他两测试的要素,也考虑了用户端、特定的系统知识和操作环境

静态测试是指不运行程序,通过人工对程序和文档进行分析与检查,实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查。静态测试包括走查、符号执行、需求确认等。

动态测试是指通过人工使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。

软件测试过程模型:V模型、W模型、H模型、X模型、前置测试模型

**测试过程4个步骤:**单元测试—集成(组装)测试—确认测试—系统测试

软件错误的严重级别:

严重—系统奔溃、数据丢失、数据毁坏

较严重—操作性错误、错误结果、遗漏功能

一般—小问题、错别字、UI布局、罕见故障

建议—不影响使用的瑕疵或更好的实现

软件错误的优先级别:

最高优先级—立即修复、停止进一步测试(立即)

次高优先级—在产品发布之前必须修复(严重)

中等优先级–如果时间允许应该修复(一般)

最低等优先级—可能修复,但是也能发布(建议)

软件错误的状态

新建(New)测试中新报告的软件bug

打开(Open)被确认并分配给开发人员

修正(Fixed)开发人员已完成修正,等待测试人员验证

拒绝(Declind)拒绝修改bug

延期(Deferred)不在当前版本修复的错误,下一版修复

关闭(Closed)bug已修复并验证通过

Bug记录信息

测试软件名称

测试软件版本

测试人名称

测试事件

测试软件和硬件配置环境

发现软件错误的类型

错误的严重等级

详细步骤

必要的附图

测试注释

Bug处理信息

处理者姓名

处理时间

处理步骤

错误记录和当前状态

Bug管理流程

  • 测试人员提交新的错误入库,错误状态为”new”

测试组长确认错误分配给相应的开发人员,状态设置为“Open“

测试组长确认不是错误,则拒绝,设置为”Declined”状态

  • 开发人员查询状态为“Open“的错误,做如下处理

如果不是错误,则置状态为“Declined “

如果是错误,则修复并置状态为“Fixed”

如果不能解决的错误,要留下文字说明并保持错误状态为“Fixed”

对于不能解决和延期的错误,不能由开发人员决定,应进一步向上级反馈

  • 测试人员查询状态为“Fixed”的错误,验证错误是否已经解决,做如下处理

如果问题解决了,置错误状态为“Closed”

如果问题没有解决,则置错误状态为“Reopen”

软件测试的方法

白盒测试

白盒测试也称结构测试测或者逻辑驱动测试,是按照程序内部的结构进行测试程序,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。

黑盒测试

黑盒测试也称功能测试,通过测试来检测每个功能是否能正常使用,在测试过程中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,主要是针对软件界面和软件功能进行测试。是以用户的角度,从输入数据与输出数据的对应关系出发进行测试

**黑盒测试用例设计方法:**等价类、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等

等价类是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例

边界值分析是通过选择等价类边界的测试用例

错误推测法设计方法就是基于经验和直觉推测程序中所有可能存在的各种错误

因果图是从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变)可以通过因果图转换为判定表

正交试验设计法就是使用已经造好的正交表格来安排试验并进行数据分析的一中方法

自动化测试

自动化测试就是通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动话的测试,它是软件测试一个重要的测试组成部分,能够完成许多手工无法完成或者难以实现的测试工作。

自动化测试优势11个

提高测试质量

提高测试效率,缩短测试工作时间

提高测试覆盖率

执行手工测试不能完成的测试任务,如压力测试、负载测试、大数据测试、奔溃性测试

更好地重现缺陷的能力

更好地利用资源

增进测试人员与开发人员之间的合作伙伴关系

需要反复进进行的工作

负载压力测试

会取得事倍功半的效果

自动化测试工具可以进行系统后台测试或者内部性能特性

自动化测试局限性6个

定制性项目

周起很短的项目

业务规则复杂的对象

人体感观与易用性测试

不稳定的软件

涉及物理交互

自动化测试工具分类

**负载压力测试工具:**主要是为了度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具,这类工具有LoadRunner、QA等

**功能测试工具:**主要目的检测应用程序是否能够达到预期的功能并正常运行,这类工具有WinRunner、QA等

**白盒测试工具:**一般主要针对代码进行测试,测试中发现的缺陷可以定位到代码级。镜态工具有logisconpe、PRQA等,动态工具DevPartner、Rational
Purify等

网络测试工具:主要用于网络故障定位、网络性能监测工具、网络仿真模拟工具可以分析分布式应用性能,关注应用、网络和其他元素。

**测试管理工具:**用于对测试进行管理,测试管理工具包括对缺陷的跟着管理、测试计划、测试用例、测试实施进行管理,并且还可以跟踪缺陷,工具有TestDirector、TestManger、TrackRecord等、

**测试辅助工具:**这些工具本身不执行测试,可以生成测试数据,用于辅助测试等。

功能自动化测试

功能自动化工具主要功能是为了确保应用能够按照预期设计执行而将业务处理过程记录到测试脚本中。

功能自动化测试工具基本上都是采取录制回放的方式来模拟用户的实际操作。

环境判读模式:根据你选取的图形用户界面对象,把你对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。

模拟模式:

①创建脚本通过录制、编制或两者同用的方式创建测试脚本。

②调试脚本,脚本录制或编辑结束后,可以在调试模式下运行脚本,比如设置断点来检测变量。

③执行测试,脚本调试结束后,便可以在检验模式下测试被测软件。

④结果分析,测试结束后,测试工具会把测试情况显示在测试结果报告中,进行结果分析

负载压力自动化测试

负载测试是为了证明在与产品预期规模等同的数据库中处理给定的事务请求的容量下,系统功能与性能是否与需求规格说明书中规定的,可接受的响应时间一致的测试过程

压力测试是使客户机在大容量情况下运行的测试过程,目的是查看应用将在何时何处出现中断,即识别系统的薄弱环节,压力测试可能暴露系统缺陷有内存泄漏、系统资源过量消耗、磁盘空间用完等。

负载压力测试工具基本上采用录制回放的方式来模拟用户的实际操作

测试录制脚本原则3个

  1. 脚本越小越好

  2. 选择负载压力最高的业务功能进行测试

  3. 选择所需的操作进行录制。

测试工具模拟用户并发访问两种方式
进程回放模式:模拟多进程运行方式,即客户端与服务器的访问采用进程方式,每一个虚拟用户通过一个进程建立与服务器的通信连接并访问

线程回放模式:模拟多线程运行方式,即客户端与服务器的访问采用线程方式,每一个虚拟用户通过一个线程建立与服务器的通信连接并访问。

录制回放模式操作步骤6个

①选择协议:一般B/S系统选择Web(Http/Html)两层C/S系统则根据C/S架构所用到的后台数据库来选择不同的协议。

②创建测试脚本:选择好相应的录制协议后,启动脚本工具进行录制

③参数化测试数据:以订单输入过程为例,参数化操作可讲记录中的常量数据,如订单号、客户名称,由变量值来替代,以更好地模拟多个实际用户的操作

④创建虚拟用户:负载压力测试目的就是要模拟多个用户并发访问系统,

⑤执行测试:设定了相应的负载测试方案后,就可以开始测试

⑥结果分析:主要是交易性能数据,如响应时间、服务器资源占用情况、网路设备和数据库的实时性能数据等。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值