免费智能真题库 > 历年试卷 > 软件评测师 > 2012年下半年 软件评测师 上午试卷 综合知识
  第67题      
  知识点:   软件失效分类   缓冲区溢出   软件系统
  关键词:   测试   缓冲区溢出   软件系统   缓冲区        章/节:   软件测试基本概念       

 
经测试发现某软件系统存在缓冲区溢出缺陷,针对这一问题,最可靠的解决方案是 (67)。
 
 
  A.  更改防火墙设置
 
  B.  对软件系统自身进行升级
 
  C.  安装防病毒软件
 
  D.  安装入侵检测系统
 
 
 

 
  第57题    2018年下半年  
   50%
Bug记录信息包括( )。
①被测软件名称 ②被测软件版本
③测试人 ④错误等级
⑤开发人 ⑥详细步骤
  第57题    2019年下半年  
   45%
以下关于软件失效术语的叙述中,不正确的是( )。
  第70题    2012年下半年  
   32%
对于测试中所发现错误的管理是软件测试的重要环节,以下关于错误管理原则的叙述正确的是(70)。
   知识点讲解    
   · 软件失效分类    · 缓冲区溢出    · 软件系统
 
       软件失效分类
        软件测试使用各种术语描述软件出现的问题,通用的术语如下:
        . 软件错误(software error)。
        . 软件缺陷(software defect)。
        . 软件故障(software fault)。
        . 软件失效(software failure)。
        区分这些术语的概念很重要,它关系到测试工程师对软件失效现象与机理的深刻理解,而这些概念常常在文献中被混淆。本书将根据国际经典软件测试论著,对软件失效的机理进行阐述。
        由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,因而软件失效机理可能有不同的表现形式。但总的说来,软件失效机理可描述为:软件错误→软件缺陷→软件故障→软件失效。
        ①软件错误:在可以预见的时期内,软件仍将由人来开发。在整个软件生存期的各个阶段,都贯穿着人的直接或间接的干预。然而,人难免犯错误,这必然给软件留下不良的痕迹。软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。可见,软件错误是一种人为过程,相对于软件本身,是一种外部行为。
        ②软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,如少一逗点、多一语句等。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。
        ③软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。譬如,软件处于执行一个多余循环过程时,我们说软件出现故障。此时若无适当措施(容错)加以及时处理,便产生软件失效。显然,软件故障是一种动态行为。
        ④软件失效:软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。
        综上所述,软件错误是一种人为错误。一个软件错误必定产生一个或多个软件缺陷。当一个软件缺陷被激活时,便产生一个软件故障;同一个软件缺陷在不同条件下被激活,可能产生不同的软件故障。软件故障如果没有及时的容错措施加以处理,便不可避免地导致软件失效;同一个软件故障在不同条件下可能产生不同的软件失效。
        在软件生存期中存在和产生形形色色的软件错误、缺陷、故障和失效。不同的软件,其错误、缺陷、故障和失效无论在表现形式、性质乃至数量上都可能大不相同,试图对它们作一个全面而详细的阐述是不现实的,所以有必要加以区别对待。关于“错误”的广义定义是:不正确的事务和行为。在1999年(美)John D. Musa的《软件可靠性工程》书中,关于“软件错误”是这样描述的:“错误是在系统运行时,引起或可能潜在地引起失效的缺陷,是一种面向开发的概念。”例如,当用户单击某个具体的菜单时,本应在屏幕上出现特定的对话框,但是却没有出现。这种行为就是一个失效。造成这种失效的错误可能是遗漏代码。这里给出的定义是“电气与电子工程师协会(IEEE)”和“美国标准协会(ASA)”的标准,是通过引起失效和错误的系统成分,来定义失效和错误的。这些成分一般是硬件、软件和人。
        John D. Musa在1999年对软件错误的定义是:软件错误是代码中的缺陷,是由错误引起的,是由一个或多个人的不正确或遗漏行为造成的。例如,系统工程师在定义需求时可能会犯错误,从而导致代码错误,而代码错误又导致在一定条件下执行系统时出现失效。“缺陷”是指欠缺或不够完备的地方。软件的欠缺和不完备主要是针对产品说明书而言的。2001年(美)Ron Patten著的《软件测试》一书对软件缺陷进行了定义。按照一般定义,只要软件出现的问题符合下列5种情况的任何一种,就叫做软件缺陷:①软件未达到产品说明书中标明的功能;②软件出现了产品说明书中指明的不会出现的错误;③软件功能超出了产品说明书指明的范围;④软件未达到产品说明书虽未指出但应达到的目标;⑤软件测试人员认为软件难以理解、不易使用、运行速度慢,或最终用户认为不好使用。实践表明,大多数软件缺陷产生的原因并非源自编程错误,主要来自于产品说明书的编写和产品方案设计。
        产品说明书成为软件缺陷的罪魁祸首,是因为产品说明书编写得不全面、不完整和不准确,而且经常更改,或者整个开发组没有很好地沟通和理解。这也就是出自于软件需求说明书本身的问题,或开发人员对需求说明书的理解与沟通不足。
        软件缺陷的第二大来源是设计方案,也就是软件设计说明书。这是程序员开展软件计划和构架的地方,就像建筑师为建筑物绘制蓝图一样。这里产生软件缺陷的原因与产品说明书或需求说明书是一样的,片面、多变、理解与沟通不足。
        总之,软件缺陷是开发的软件与软件需求说明书、设计说明书的不一致;软件的实现未满足应达到目标的用户潜在需求。故障是指一个实体发生障碍和毛病。软件故障在ISO 14598软件产品评价标准中的定义是:计算机程序中的不正确的步骤、过程或数据定义。
        软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态,软件出现故障若无适当措施(容错)加以及时处理,便产生软件失效。显然,软件故障是一种动态行为。
        在软件设计和编程过程中,花费很大的精力确保软件系统能从各种故障导致的失效中恢复。当遇到软件出现故障时,系统不能像软件设计和用户要求那样运行而导致失效,就需要有故障恢复措施,以保证故障恢复后的继续执行。软件失效是系统行为对用户要求的偏离,是一种面向用户的概念。这就是说,失效意味着系统的运行。只有在执行程序过程中才会发现软件失效,发现的潜在失效可以是设计审查、代码阅读和其他方法产生的结果。有的项目组还把文档错误计算在软件错误之内,这一般是不正确的,因为文档并不直接影响程序的执行。因为用户接受的是程序使用的错误信息,文档错误可能会导致用户的失效。但是,用户并不是软件成分,不能把用户看成是与失效和可靠性有关的单独的系统成分。
        对失效严重程度进行分类,主要是为了结合失效频率来解决失效优先级的确定。常见的分类标准包括对人员生命、成本和系统能力的影响。失效强度常常应用于软件可靠性工程中,最初是指单位时间内的失效次数;基于软件大量的使用经验,失效强度表示为每个自然单元出现的失效数目更加方便。失效强度是表示可靠性的另一种形式。
        关于概念不可能彼此分得很清楚,实际上也没有太大的必要。目前软件测试界一般主要使用缺陷(defect)和错误(error)这两个词。在测试过程中,我们找到的错误会有不同的类型,对错误的分析与管理是十分重要的。
 
       缓冲区溢出
        缓冲区溢出攻击可以使攻击者有机会获得一台主机的部分或全部的控制权。据统计,缓冲区溢出攻击占远程网络攻击的绝大多数。缓冲区溢出成为远程攻击主要方式的原因是,缓冲区溢出漏洞会给予攻击者控制程序执行流程的机会。攻击者将特意构造的攻击代码植入有缓冲区溢出漏洞的程序之中,改变漏洞程序的执行过程,就可以得到被攻击主机的控制权,如下图所示。
        
        通过缓冲区溢出获取主机的控制权
 
       软件系统
        网络系统软件包括网络操作系统和网络协议等。网络操作系统是指能够控制和管理网络资源的软件,是由多个系统软件组成,在基本系统上有多种配置和选项可供选择,使得用户可根据不同的需要和设备构成最佳组合的互联网络操作系统。网络协议是保证网络中两台设备之间正确传送数据的约定。
   题号导航      2012年下半年 软件评测师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第67题    在手机中做本题