软件测试期末考试

1 名词解释

  1. 软件测试
    软件测试指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。
  2. 测试用例
    指对一项特定的软件产品进行测试任务的描述,体现测试方案方法、技术和策略。其内容包括:测试目标,测试环境,输入数据,测试步骤,预期结果,测试脚本等(属性)
  3. 回归测试:
    是一种验证已变更系统的完整性与正确性的测试技术,用于确定修改没有带来副作用
  4. 面向对象测试:
    面向对象技术具有信息隐蔽、封装、继承、多态和动态绑定等特性,提高了软件开发质量,但同时也给软件测试提出了新的问题,增加了测试的难度。

按照测试执行主体划分,软件测试为: α测试(内测), β测试(公测),第三方测试

  1. α测试(内测)
    在软件开发环境中,开发者和用户共同去检测与证实软件。其环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
  2. β测试(公测)
    用户测试,通过用户大量使用评价检查软件。其环境环境是不受开发方控制的, 用户数量相对比较多,时间不集中。
  3. 第三方测试
    由第三方机构来进行测试,由开发方和用户方都相对独立的组织进行软件测试。

单元测试:指对源程序中每一个程序单元进行测试,检查各个模块是否 正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及编码和 详细设计的文档

  1. 桩模块
    是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分
  2. 驱动模块
    用于模拟被测模块的上一级模块,相当于被测模块的主程序,它接收测试数据并将这些数据传送到被测试模块,单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动

桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。
驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符)

集成测试:主要目标是验证组成软件系统各模块的接口和交互作用,分增量式和非增量式。

  1. 非增量式测试:
    非增量式测试是采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。

  2. 增量式测试:
    逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。
    增量式测试方法具有:自顶向下,自底向上,以及三明治集成测试方法

性能的测试分类:负载测试,压力测试,可靠性测试,数据库测试,安全性测试:

  1. 负载测试
    负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
  2. 压力测试
    是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷。
  3. 可靠性测试
    软件系统在规定的时间内以及规定的环境条件下,完成规定功能(可服务性,可安装性,可维护性等)的能力。
  4. 安全性测试
    有关验证应用程序的安全服务和识别潜在安全性缺陷的过程,在应付非授权的内部/外部,非法侵入或故意损害时的系统防护能力,检验系统是否有能力时使可能存在的风险伤害在可接受范围内。

2 填空题

  1. 软件缺陷内容包含:缺陷标识缺陷类型缺陷严重程度缺陷产生可能性缺陷优先级缺陷状态缺陷起源缺陷来源缺陷原因
缺陷类型描述
功能影响系统功能,逻辑的缺陷
用户界面影响人机交互特性,屏幕格式,输入输出格式等缺陷
文档影响发布和维护,包括注释,用户手册,设计文档
软件包软件配置库,变更管理,版本控制
性能不满足系统可测量的属性值,如执行时间,事务处理速度等
系统/模块接口与其他模块或参数、控制块或参数列表等不匹配、冲突
  1. 按照软件测试主体执行划分,软件测试分为α测试β测试第三方测试

  2. 软件测试模型:V,W,X,H,前置模型

  3. 软件测试流程:
    测试计划,测试设计,测试开发,测试执行,测试评估

  4. 逻辑覆盖是对程序内部有判定 存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为_语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖6种覆盖技术。

  5. 黑金测试是功能测试,用黑盒技术设计测试用例有4种方法:等价类划分、边界值分析、错误推测、因果图.

  6. 软件测试般经过4个测试: 单元测试、集成测试、确认测试、系统测试

  7. 在软件测试阶段,测试步骤按次序可以划分为以下几步:单元测试、集成测试、系统测试、验收测试

  8. 在单元测试中,需要为被测模块设计驱动模块和_桩模块。驱动模块用来模拟被测模块的上级调用模块,桩模块用来代替 被测模块所调用的模块。

  9. 渐增式测试有两种不同的组装模块的方法:自顶向下结合、自底向上结合

  10. 常见的性能测试指标:响应时间,并发用户数,吞吐量,性能计数器,资源利用率。

3 简答题

3.1 软件缺陷

  1. 软件未达到产品说明书中已表明的功能
  2. 软件出现了产品说明书中指明不会出现的错误
  3. 软件功能超出了产品说明书虽未指出,但应达到的目标
  4. 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者使用效果不好。

3.2 软件缺陷产生的原因

  • 阶段:
    软件系统的复杂性呈现指数增长,需求变化增加了软件系统开发的复杂性,产生了大量不确定因素,导致许多缺陷产生。
  • 项目管理:
    开发时,由于时间的限制,导致编写文档缺失,而文档的贫乏容易使得代码维护和修改变得很难。
  • 团队工作
    团队组成人员本身的认知层面、拥有知识、处事原则各不相同。
  • 复审阶段
    由于没有或不全面的复审导致软件产生缺陷

3.3软件测试的目的

  1. 尽快尽早地在软件开发过程中发现BUG,并且通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现的那关软件开发过程中的缺陷。
  2. 确保软件缺陷被修复(但在实际中由于预算、时间、技术等问题不能修复全部的缺陷),帮助测试人员设计出有针对性的测试方法,改善测试的效率
  3. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

3.4 软件测试师一般承担的工作

进行测试设计、写作测试文档(测试计划、测试方案、测试用例等)
执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正

3.5 V,W,X模型的比较

  1. V模型:
    先开发后测试;

    • 优点:线性,步骤简单有序
    • 缺点:忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试
      在这里插入图片描述
  2. W模型:
    由两个V模型组成,开发与测试并行

    • 优点:有利于尽早发现问题,
    • 缺点:测试与开发保持着串行的线性前后关系,无法支持迭代开发模型
  3. H模型:
    强调测试是独立的,大部分时间可交叉,只要测试准备完成,就可以执行测试;

    • 优点:H模型兼顾效率和灵活性,可以被应用到各种规模类型的软件项目上
    • 缺点:管理型要求高;技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;对于整个项目组的人员要求非常高;

3.6 回归测试与一般测试

  1. 测试用例来源不同,一般测试根据系统规格说明书和测试计划进行,测试用例都是新的,而回归测试的测试用例是修改过的。
  2. 测试范围不同,一般测试检测整个程序的正确性,而回归测试是检测被修改的相关部分的正确性以及它与原有功能的整合
  3. 时间分配不同,在软件开发之前就已经计划一定的测试时间,而回归测试是不包含在整个产品的进度表中。

3.7 web测试

Web测试主要分为六个部分:
功能测试、性能测试、用户界面测试、兼容性测试、安全测试、接口测试

用户界面测试

1.导航测试:

导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?web应用系统页面结构、导航、菜单、连接的风格是否一致

2.  图形测试:

1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。

2)验证所有页面字体的风格是否一致。

3)背景颜色应该与字体颜色和前景颜色相搭配。

4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩,

5)最后,需要验证的是文字回绕是否正确。如果说明文字指向右边的图片,应该确保该图片出现在右边。不要因为使用图片而使窗口和段落排列古怪或者出现孤行。

内容测试:检验Web应用系统提供信息的正确性、准确性和相关性。

信息是否可靠,是否有语法或拼写错误,是否可以找到与当前浏览信息相关的信息列表或入口。

整体界面测试:

给用户的整体感觉,是否感到舒适,是否能凭直觉就知道找到的信息在什么地方,设计风格是否一致。

3.8 白盒测试:

定义:

指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

具体方法

白盒测试适应的测试有:

  1. 单元测试、
  2. 逻辑覆盖,按逻辑覆盖程度不同有:
    语句覆盖:线覆盖,面覆盖,若干个测试用例,是被测试程序中每条可执行语句至少执行一次。
    判定覆盖:设计的测试用例使程序中每个判定至少分别取真,假分支各一次。
    条件覆盖:每个判断中每个条件的可能取值至少一次。
    判定/条件覆盖:通过设计足够多的用例,是判断条件中的所有条件执行1次取值,同时所有判断的可能结果至少执行一次。
    条件组合覆盖:不仅可以覆盖所有条件可能取值的组合,还可以覆盖所有判断的可取分支,但会漏掉所有的路径。
    路径覆盖:覆盖率最大,但是呈指数级增长
    循环覆盖:(限制循环次数,有单循环和嵌套循环)
  3. 基本路径测试。

黑盒测试

定义

黑盒测试是指对程序功能性的测试,也就是不考虑内部的具体实现,仅仅就程序的功能是否满足需求进行测试,相当于一个看不见内部的黑盒子。

黑盒测试常用的方法

1:等价类划分 :
等价类是指某个输入域的子集合
分类
有效等价类,指符合输入域的子集合
无效等价类 ,指不符合输入域的子集合
2:边界值分析法
3:因果图法
4:判定表组合法

4 应用设计题

4.1 等价类划分

某城市电话号码由三部分组成,分别是:
地区码—— 空白或三位数字;
前 缀—— 非‘0’或‘1’开头的三位数字;
后 缀—— 4位数字。
假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。要求采用弱健壮等价类方法,即同时考虑有效值和无效值,基于单缺陷假设
(1)首先进行输入条件等价类划分,并编号,写出等价类表
(2)设计测试用例,以便覆盖所有的有效等价类
(3)为每一个无效等价类设计一个测试用例,列出完整的测试用例表。

在这里插入图片描述

在这里插入图片描述

4.2 基本路径测试

使用基本路径测试方法,为以下程序段设计测试用例。
(1)画出程序的控制流图。
(2)计算程序的循环复杂度,导出程序基本路径集中的独立路径条数。
(3)导出基本路径集,确定程序的独立路径。
(4)根据(3)中的独立路径,设计测试用例(确保基本路径集中的每一条路径的执行)的输入数据和预期输出。

void Do (int X,int A,int B)
{
1 if ( (A>1)&&(B=0) )
2 X = X/A;
3 if ( (A=2)||(X>1) )
4 X = X+1;
5 }
由于控制流图假设的是单条件,因此对于复合条件,可将其分解为多个单个条件,并映射成控制流图。
1: A>1;2: B=0 ;3: X = X/A ;4: A=2 ;5:X>1 ;6: X = X+1;7: }

在这里插入图片描述
在这里插入图片描述

4.3三角形等价类划分

在这里插入图片描述
在这里插入图片描述

5 设计题

测试杯子

6 理解辨析题

6.1解释测试技术的作用与意义:

软件测试:
用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试是为了发现错误而执行程序的过程

  1. 尽快尽早地在软件开发过程中发现BUG,并且通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现的那关软件开发过程中的缺陷。
  2. 确保软件缺陷被修复(但在实际中由于预算、时间、技术等问题不能修复全部的缺陷),帮助测试人员设计出有针对性的测试方法,改善测试的效率
  3. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

6.2 作为一名软件测试工程师,需要具备哪些能力?

软件测试工程师

  • 18
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值