免费智能真题库 > 历年试卷 > 系统架构设计师 > 2021年下半年 系统架构设计师 上午试卷 综合知识
  第33题      
  知识点:   静态测试   功能测试   软件测试
  关键词:   功能测试   计算机辅助分析   软件测试   软件质量   算法   测试        章/节:   测试与评审       

 
软件测试是保障软件质量的重要手段。(33)是指被测试程序不在机器上运行,而采用人工监测和计算机辅助分析的手段对程序进行监测。(34)也称为功能测试,不考虑程序的内部结构和处理算法,只检查软件功能是否能按照要求正常使用。
 
 
  A.  静态测试
 
  B.  动态测试
 
  C.  黑盒测试
 
  D.  白盒测试
 
 
 

 
  第41题    2022年下半年  
   47%
在黑盒测试方法中,()方法最适合描述在多个逻辑条件取值组合所构成的复杂情况下,分别要执行哪些不同的动作。
  第44题    2009年下半年  
   31%
软件测试是为了发现错误而执行程序的过程。黑盒测试法主要根据(44)来设计测试用例。
  第42题    2018年下半年  
   30%
软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括(42)等方法;后者采用人工和计算机辅助静态分..
   知识点讲解    
   · 静态测试    · 功能测试    · 软件测试
 
       静态测试
        静态测试指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态分析中进行人工测试的主要方法有桌前检查(Desk Checking)、代码审查和代码走查。经验表明,使用这种方法能够有效地发现30%~70%的逻辑设计和编码错误。
        (1)桌前检查。由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。检查项目包括检查变量的交叉引用表;检查标号的交叉引用表;检查子程序、宏、函数;等值性检查;常量检查;标准检查;风格检查;比较控制流;选择、激活路径;对照程序的规格说明,详细阅读源代码;补充文档。
        由于程序员熟悉自己的程序和自身的程序设计风格,这种桌前检查可以节省很多的检查时间,但应避免主观片面性。
        (2)代码审查。代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分两步。
        第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员在充分阅读这些材料之后,进入审查的第二步。
        第二步,召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。实践表明,程序员在讲解过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。
        在会前,应当给会审小组每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误罗列出来,供与会者对照检查,以提高会审的实效。这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供在会审时使用。
        (3)代码走查。代码走查与代码审查基本相同,其过程也分为两步。
        第一步,把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。
        第二步,开会的程序与代码会审不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机。即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论使用。
        :使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。
 
       功能测试
        Web应用功能测试指Web应用系统的基本功能的测试,其案例的设计方法可参见有关《黑盒测试技术》章节的内容。
        考虑到Web应用本身的特点,其功能测试还要注意以下几个方面。
        . 客户端的选择。
        Web应用客户端软件环境主要包括操作系统和浏览器。除非有特殊要求,测试功能时,我们一般选择比较流行的配置,如选择WindowsXP+IE6.0的简体中文版本。需要注意的是,浏览器的种类和版本有可能影响功能的正确实现。
        . 客户端浏览器的配置。
        一般情况下,开发者不会过多地考虑客户端配置问题,只是将更多的时间用于实现服务端的程序,而用户也往往不会刻意地对所使用的浏览器进行适应性配置。如果测试人员完全按照浏览器的缺省配置测试一个Web应用的功能,有可能会出现较多的因浏览器配置而引起的问题。下面以IE6.0为例进行说明,IE6.0的主要配置界面如下图所示。
        
        IE6.0的主要配置界面
        例如Cookie设置就会影响含有Cookie的Web应用的功能能否成功地实现。其他如脚本设置、安全设置、显示设置等大多数设置都会影响到Web应用功能的实现。
        . 客户端的显示设置。
        大多数人都喜欢使用1024×768像素的显示设置,但并不是所有的Web应用都支持这种设置。不合适的显示设置不但会使Web应用系统的界面显示异常,还可能导致应用功能无法实现。
        . 内容测试。
        由于Web应用带有一定的开放性,尤其是发布于互联网上的网站,其内容是完全开放的,因此在Web系统的功能测试中还要重点测试一个方面,即内容测试。
        内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题,甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的“拼音与语法检查”功能;信息的相关性是指,是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中所谓的“相关文章列表”。
        下面介绍两种Web应用功能测试的自动化技术,一个是Web应用链接质量保证技术,另一个是Web应用功能测试技术,下面分别论述。
               Web应用链接质量保证技术
               链接是使用户从一个页面浏览到另一个页面的重要手段,链接的质量决定着功能是否能够成功实现。
               要保证每个链接的质量,需要做好三件事情:
               ①该链接将用户带到它所说明的地方;
               ②被链接页面是存在的;
               ③保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面。
               链接测试非常复杂。比如当网页的结构非常复杂且数量巨大时,链接检查的速度就迫切需要提高。当网络连接总是不稳定的时候,误判的频率增大导致工作量加大,就需要保证工作进度。还有,测试的结果能否清晰地报告出来等,这些需求都提高了测试的复杂度。
               要测试Web应用的链接,可以借助于自动化的Web应用链接测试工具,例如WebCheck、Linkbot、TestPartner等。这些测试工具在测试过程中自动扫描Web应用的所有链接,定位及报告问题。针对应用中存在的各种各样的链接,比如图片、框架(Frame)、插件(Plugin)、背景、样式表(Style Sheet)、脚本、Java Applet等以及支持的连接种类,比如HTTP、FTP、GOPHER、HTTPS等工具都能够支持。另外,对本地的链接和重定向的链接也能很好地支持。例如WebCheck能够定位约50个的问题类型,并且提供19个HTML格式的报告。
               利用自动化测试工具测试Web应用的链接,主要优势体现在以下几个方面。
               . 简单易用;
               . 在实现上采用多线程技术,因此检查速度特别快;
               . 对断开的连接可以再次检查,避免误判;
               . 没有检查连接的数量限制,只受系统资源的约束;
               . 可以分析Web应用的结构;
               . 检查结果可以分类查看,自动生成HTML格式的报告。
               Web应用链接主要测试点如下。
               . 测试内部和外部链接中成功和失败的链接点,以及应用中不被其他链接调用的页面;
               . 测试链接中新网页、老网页、慢网页以及丢失的图象标题标签和属性标签等;
               . 分析Web应用的结构是否合理,包括显示和某个URL相关的链接及按照标题、描述、作者、大小、最后修改时间、类型为URL链接分类等。
               Web应用功能测试技术
               如果开发人员刚创立一个新的Web应用系统。在发布应用系统之前,它必须经过测试以确保一切设定功能都能正常运行,这样的测试任务中,针对同一模块或者同一功能点的测试可能需要重复多次。另外,在一个公司中不同项目的测试可能并行展开,例如人事部门的HR系统、客服部门的CRM系统、物流部门的ERP系统等。这样的现状就会使测试人员面临这样一个问题,即“如何有效地测试不断修改着的一个或多个应用程序”。如果资源有限的话,这个问题就更加棘手。人工测试的工作量太大,况且很多公司负担不起额外的时间来培训新的测试人员。为了解决这个问题,就需要一个能简单操作的测试工具来自动完成功能性测试。
               Mercury Interactive的WinRunner就是一个功能性测试工具。它通过捕获和重放用户对Web应用程序的操作,WinRunner可自动执行功能性测试。下面我们来看一个标准的测试过程,主要步骤包括:创建测试脚本、插入检查点、运行测试以及分析结果。
               . 创建测试脚本。
               创建测试脚本只需记录下一个标准的业务流程,如下一张订单或建立一个新的商家账户。测试人员在GUI上点击鼠标,测试工具记录流程就可建立测试脚本,即使技术知识有限的用户也能生成完整的测试。脚本可以直接编辑来满足各种复杂测试的需求。例如,WinRunner可以将两种测试脚本创建方式结合在一个环境下,来适应测试需求。这两种测试脚本创建方式分别是模拟控件操作和模拟鼠标操作。
               . 插入检查点。
               在记录一个测试的过程的脚本中,测试工程师可插入检查点,测试工具会收集检查点的性能指标。脚本运行时,测试工具在查寻潜在错误的同时,会比较检查点所设定的结果和实际测试结果,对其一一验证。例如,WinRunner允许您使用几种不同类型的检查点,包括文本、GUI、位图和数据库。用一个位图检查点,可以确认一个位图图像,如公司的图标是否出现在指定位置。
               . 运行测试。
               建立起测试脚本,并插入检查点和做一些必要修改后,就可以开始运行测试。当测试工具执行测试时,它会自动操作应用程序,正如一个真实用户根据记录流程执行着每一步的操作。
               . 分析结果。
               一旦测试结束后,就需要分析测试结果。测试工具一般会提供详尽的、易读的报告,这些报告对在测试运行中发生的重要事件进行描述,如出错内容和检查点等。
               一次测试结束后,随着时间推移,开发人员会对应用程序做进一步的修改,并需要另加额外的测试。有了前面利用自动化测试工具进行测试的基础,不必改动测试脚本,就可以重新建一个新的测试,这样大大地节省了时间和资源,充分利用了测试投资。
               功能自动化测试工具还能验证数据库的数值,从而确保交易的准确性。例如,在创建测试脚本时,可以设定哪些数据库表格和记录资料需要检测。在重放时,测试程序就会核对数据库内的实际数值与脚本中设定的数值,在有更新/修改,删除或插入的记录上会使用突出标识以引起注意。
               有时为了彻底全面地测试一个应用程序,需要了解对于不同类型的数据,它是如何运行的。测试工具可以将一个记录下的业务流程转化为一个数据驱动的测试,来反映多个用户各自独特且真实的操作行为。以一个订单输入的流程为例,测试人员或许希望将一些锁定的项目栏,如定单号或客户名转化为可变栏,这样就可以用多套数值来检测应用程序了。数据来源可以采用自动生成表格,也可直接从其他的表格或数据库中导入。数据驱动性测试不仅节省了时间和资源,而且提高了应用程序的测试覆盖率。
               利用自动化测试工具在对脚本进行编辑的时候,可以从列表里选择一个功能函数加到脚本中,以提高测试能力。例如,点击“calendar”,然后从年历功能中的下属目录中选择,如“calendar_select_date()”,工具会提供函数的解释。选定了这个函数后,可以输入参数,再将这个函数插入到测试脚本中。
 
       软件测试
        测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
        软件测试是针对一个程序的行为,在有限测试用例集合上动态验证软件是否达到预期的行为。
        软件测试过程如下:
        (1)拟定测试计划。
        (2)编制测试大纲。
        (3)设计和生成测试用例。
        (4)实施测试。
        (5)生成测试报告。
        软件测试方法:
        .人工测试:采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。人工测试包括个人复查、抽查和会审等。
        .机器测试:把设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致。机器测试包括黑盒测试(功能测试)和白盒测试(结构测试)。
        软件测试伴随软件开发和维护过程,通常可以在概念上划分为以下三个阶段:
        .单元测试:也称为模块测试,在模块编写完成且无编译错误后就可以进行。
        .集成测试:也称为组装测试,就是把模块按系统设计说明书的要求组合起来进行测试。
        .系统测试:是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装和确认测试。其目的是通过与系统需求相比较,发现所开发的系统与用户需求不符合的地方。
   题号导航      2021年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第33题    在手机中做本题