题目详情

关于软件测试的描述,不正确的是(  )。

  • A.采用桌前检查、代码走查和代码审查属于动态测试方法
  • B.控制流测试和数据流测试属于白盒测试方法
  • C.软件测试可分为单元测试、集成测试、确认测试、系统测试等类别
  • D.回归测试的目的是软件变更后,变更部分的正确性和对变更需求的符合性以及功能、性能等要求的不损害性

正确答案及解析

正确答案
A
解析

本题考查软件测试及其管理知识,静态测试一般采用桌前检查、代码走查和代码审查。

1、软件测试方法可分为静态测试和动态测试。静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查(DeskChecking)、代码走查和代码审查。(选项A)

动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。(选项B)

2、测试的类型

根据国家标准GB/T15532—2008,软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等类别。(选项C)

(1)单元测试。单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。单元测试的技术依据是软件详细设计说明书,着重从模块接口、局部数据结构、重要的执行通路、出错处理通路和边界条件等方面对模块进行测试。

(2)集成测试。集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。集成测试的技术依据是软件概要设计文档。除应满足一般的测试准入条件外,在进行集成测试前还应确认待测试的模块均已通过单元测试。

(3)确认测试。确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型。

①内部确认测试。内部确认测试主要由软件开发组织内部按照SRS进行测试。

②Alpha测试和Beta测试。对于通用产品型的软件开发而言,Alpha测试是指由用户在开发环境下进行测试,通过Alpha测试以后的产品通常称为Alpha版;Beta,测试是指由用户在实际使用环境下进行测试,通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后,才能把产品发布或交付给用户。

验收测试。验收测试是指针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。验收测试的目的是,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或SRS。验收测试的结论是用户确定是否接收该软件的主要依据。除应满足一般测试的准入条件外,在进行验收测试之前,应确认被测软件系统已通过系统测试。

(4)系统测试。系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的技术依据是用户需求或开发合同,除应满足一般测试的准入条件外,在进行系统测试前,还应确认被测系统的所有配置项已通过测试,对需要固化运行的软件还应提供固件。一般来说,系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等,其中,最重要的工作是进行功能测试与性能测试。功能测试主要采用黑盒测试方法;性能测试主要验证软件系统在承担一定负载的情况下所表现出来的特性是否符合客户的需要,主要指标有响应时间、吞吐量、并发用户数和资源利用率等。

(5)配置项测试。配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与SRS的一致性。配置项测试的技术依据是SRS(含接口需求规格说明)。除应满足一般测试的准入条件外,在进行配置项测试之前,还应确认被测软件配置项已通过单元测试和集成测试。

(6)回归测试。回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。(选项D)

包含此试题的试卷

你可能感兴趣的试题

问答题

试题一(共 20 分)阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸对应栏内。【说明】设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左至右是递增,每列元素从上到下是递增。以下流程图旨在该矩阵中需找与给定整数 X 相等数。如果找不到则输出“false”;只要找到一个(可能有多个)就输出“True”以及该元素下标 i 和 j(注意数组元素下标从 1 开始)。例如,在如下矩阵中查找整数 8,则输出伟:True,4,12 4 6 94 5 9 106 7 10 128 9 11 13流程图中采用算法如下:从矩阵右上角元素开始,按照一定路线逐个取元素与给定整数 X 进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等数或超出矩阵范围(找不到)。【流程图】

初级程序员,章节练习,基础复习,初级程序员练习

【问题】该算法时间复杂数是()

供选择答案:A.O(1) B.O(m+n) C.(m*n) D,O(m2+n2)

查看答案
问答题

阅读以下说明和流程图,填补流程图中空缺,将解答填入答题纸对应栏内。

[说明]

指定网页中,某个关键词出现次数除以该网页长度称为该关键词在此网页中词频。对新闻类网页,存在一组公共关键词。因此,每个新闻网页都存在一组词频,称为该新闻网页特征向量。

设两个新闻网页特征向量分别为:甲(a1,a2,...,ak)、乙(b1,b2,...,bk),则计算这两个网页相似度时需要先计算它们内积S=a1b1+a2b2+...+akbk。一般情况下,新闻网页特征向量维数是巨大,但每个特征向量中非零元素却并不多。为了节省存储空间和计算时间,我们依次用特征向量中非零元素序号及相应词频值来简化特征向量。为此,我们用(NA(i),A(i)|i=1,2,...,m)和(NB(j),B(j)|j=1,2,...,n)来简化两个网页特征向量。其中:NA(i)从前到后描述了特征向量甲中非零元素A(i)序号(NA(1)<NA(2)<...),NB(j)从前到后描述了特征向量乙中非零元素B(j)序号(NB(1)<NB(2)<...)。

下面流程图描述了计算这两个特征向量内积S过程。

初级程序员,章节练习,基础复习,初级程序员练习

查看答案
问答题

试题(15 分)阅读以下说明和流程图,填补流程图中空缺,将解答填入答题纸对应栏 内。【说明】设有整数数组 A[1:N](N>1),其元素有正有负。下面流程图在该数组 中寻找连续排列若干个元素,使其和达到最大值,并输出其起始下标 K、元素 个数 L 以及最大和值 M。例如,若数组元素依次为 3,-6,2,4,-2,3,-1,则输出 K=3,L=4,M=7。 该流程图中考察了 A[1:N]中所有从下标 i 到下标 j(j≥i)各元素之和 S,并动态地记录其最大值 M。【流程图】

初级程序员,章节练习,基础复习,初级程序员练习

注:循环开始框内应给出循环控制变量初值和终值,默认递增值为 1,格式为:循环控制变量=初值,终值

查看答案
问答题

阅读以下说明和流程图,填补流程图中空缺,将解答填入答题纸对应栏内。

[说明]

本流程图旨在统计一本电子书中各个关键词出现次数。假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1)},其中包含了很多重复项,经下面流程处理后,从中挑选出所有不同关键词共m个{K(j)|j=1,…,m},而每个关键词K(j)出现次数为NK(j),j=1,…,m。

[流程图]

初级程序员,章节练习,基础复习,初级程序员练习

查看答案
问答题

阅读下列说明、C++代码和运行结果,填补代码中空缺,将解答填入答题纸对应栏内。

[说明]

对部分乐器进行建模,其类图如下图所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。

初级程序员,章节练习,基础复习,初级程序员练习

类图

下面是实现上述设计C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

using namespace std; enum Note(/*枚举各种音调*/ MIDDLE_C,C_SHARP,B_FLAT }; classInstrument{/*抽象基类,乐器*/ public: ______; //play函数接口 virtual voidadjust()=0; //adjust函数接口 }; class Wind ______{ public: void play(Note n) { cout<<"Wind.play() "<<n<<endl; } void adjust(){cout<<"Wind.adjust()"<<endl; } ); /*类Percussion和Stringed实现代码略*/ class Brass ______{ public: void play(Note n) {cout<<"Brass.play() "<<n<<endl; } void adjUSt(){cout<<"Brass.adjust()"<<endl;) }; classWoodwind:public Wind{ public: void play(Note n) { cout<<"Woodwind.play()"<<n<<endl; } }; class MusiC { public: voidtune(Instrument*i) { i->play(MIDDLE_C.; } voidadjust(Instrument*i){ i->adjust(); } void tuneAll(______ e[],int numIns){ /*为每个乐器定调*/ for(int i=0; i<numIns; i++){ this->tune(e[i]); this->adjust(e[i]); } } }; /*使用模板定义一个函数size,该函数将返回数组array元素个数,实现代码略*/ int main(){ Music*music=______ Music(); Instrument*orchestra[]={new Wind(),new Woodwind() }; music->tuneAll(orchestra,size(orchestra));/*size返回数组orchestra元素个数*/ for(int i=0;i<size(orchestra);i++) deleteorchestra[i]; delete music; }

本程序运行后输出结果为:

Wind.play()0 Wind.adjust() Woodwind.play()0 Wind.adjust()

查看答案

相关题库更多 +