北京联合大学信息学院软件测试复习题文档格式.docx
《北京联合大学信息学院软件测试复习题文档格式.docx》由会员分享,可在线阅读,更多相关《北京联合大学信息学院软件测试复习题文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
Bug:
缺陷–Bug,缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)毛病(incident)异常(anomy)
动态测试:
在抽样测试数据上执行程序并分析输出以及发现错误的过程
●包括白盒测试技术和黑盒测试技术
静态测试:
不执行程序代码而寻找文档、程序代码中可能存在的错误的过程。
静态测试可以人工进行,也可以借助软件工具自动进行。
●包括代码审查、文档审查以及由软件工具自动进行的静态分析
黑盒测试:
黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通过测试来检测每个功能是否都正常使用。
●功能分解法、等价类划分法、边界值分析法、因果图方法、随机测试方法、猜错法
白盒测试:
白盒测试也称为结构测试或逻辑驱动测试,前提是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能够按预定要求正确工作,而不管产品的功能,主要用于软件验证。
单元测试:
●单元测试的对象是软件设计的最小单位——模块。
单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。
单元测试多采用白盒测试技术,对系统内多个模块可以进行并行测试。
集成测试:
集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题
两种集成方式:
一次性集成方式和增殖式集成方式。
系统测试:
系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等
验收测试:
验收测试是为了向用户表明系统能够按照用户需求正常运行。
经过集成测试后,已经把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除,接着要进一步验证系统在功能和性能方面的有效性,这就是验收测试。
桩模块:
桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。
用于代替所测模块调用的子模块。
主模块作为驱动模块,与之直接相连的模块用桩模块代替。
在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
驱动模块:
驱动单元用以仿真被测试单元的上级单元,驱动单元在单元测试中接受测试数据,把相关的数据传给被测试单元,启动被测试单元,并输出相应的结果。
而桩单元用以仿真被测试单元工作过程中所调用的单元,由被测试单元调用,它们一般只进行很少的数据处理。
简答题
1、简述软件生命周期有哪些阶段。
划分为孕育、诞生、成长、成熟、衰亡等阶段。
软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动
2、简述按照测试目标划分的软件测试分类
验收测试、功能测试、性能测试、强度测试、安全性测试、确认测试
3、简述按照测试对象划分的软件测试分类
单元测试、部件测试、系统测试、代码审查、文档审查
4、简述软件测试的阶段划分
单元集成系统验收
5、简述软件缺陷的等级划分
关键缺陷、重要缺陷、一般缺陷
6、简述测试用例的要素及其含义。
测试目标→测试用例的输入数据→预期结果(与实际结果对照)
7、简述黑盒测试技术方法种类
黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测、功能图法等,主要用于软件确认测试。
8、简述代码走查和代码审查的区别
PPT:
代码审查主要检查代码和设计的一致性,代码对标准的遵循,代码的可读性,代码的逻辑表达的正确性,代码结构的合理性等方面。
包括:
变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等。
代码审查是由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。
走查不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。
走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。
9、简述单元测试的步骤
单元测试的计划→设计→执行→结果分析
10、简述软件集成策略。
基于分解的集成策略
1.基于分解的集成(大爆炸集成、自顶向下、自底向上集成,三明治集成
2.基于调用同的集成
3.基于路径的集成
4.分层集成
5.基于功能的集成
11、简述集成测试和系统测试的区别
集成测试和系统测试的区别
1、测试对象
集成测试的测试对象是由通过了单元测试的各个模块所集成起来的组件。
而系统测试的测试对象,除了软件之外,还有计算机硬件及相关的外围设备、数据采集和传输机构、计算机系统操作人员等的整个系统。
2、测试时间
集成测试是介于单元测试和系统测试之间的测试。
在测试时间上,先于系统测试。
3、测试方法
集成测试通常会采用灰盒测试。
而系统测试通常使用黑盒测试。
4、测试内容
集成测试的主要内容就是各个单元模块之间的接口,以及各个模块集成后所实现的功能。
而系统测试的主要内容就是整个系统的功能和性能。
5、测试目的
集成测试的主要目的就是发现单元之间接口的错误,以及发现集成后的软件同软件概要设计说明不一致的地方。
而系统测试的主要目的就是,通过与系统需求定义相比较之后发现软件与系统定义不符合或矛盾的地方。
6、测试角度
集成测试工作的开展更多的是站在测试工作人员的角度上。
系统测试工作的开展更多的是站在用户的角度来进行。
12、简述至少6种系统测试的策略
1.功能测试(FunctionalTest):
功能测试属于黑盒测试技术范畴,是系统测试中要进行的最基本的测试,它不用考虑软件内部的具体实现过程。
主要是根据产品的需求规格说明书和测试需求列表,验证产品是否符合产品的需求规格。
2.协议一致性测试(ProtocolConformanceTesting):
分布式系统中,很多计算功能的完成需要由分布式系统内的多台计算机相互进行通信、交换信息、协调合作来完成的,必须遵循一定的规则(协议)。
所以要进行协议测试。
3.性能测试(PerformanceTest):
应用在网络方面和客户端方面的测试
4.压力测试:
压力测试又称强度测试,是在各种资源超负荷情况下观察系统的运行情况。
在压力测试过程中,测试人员主要关注的是非正常资源占用的情况下系统的处理时间。
注意:
区分压力测试和容量测试
5.容量测试:
容量测试是面向数据的,在系统正常运行的范围内测试并确定系统能够处理的数据容量。
也就是观察系统承受超额的数据容量的能力。
6.安全性测试:
要验证系统内的保护机制能否抵御入侵者的攻击。
7.恢复性测试:
恢复性测试的目标就是验证系统从软件或者硬件失败中恢复的能力。
在测试过程中会采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力。
8.备份测试:
备份测试为了验证系统在软件或者硬件失败的事件中备份其数据的能力,它属于恢复性测试的一个部分。
9.GUI测试:
GUI(GraphicUserInterface)即图形化用户接口,GUI测试只是软件产品界面测试的一部分,GUI测试分为两个部分,一方面要能使得界面实现与最初设计的情况相符合;
另一方面是要确认界面能够正确处理事件。
10.健壮性测试:
健壮性测试又被称为容错性测试。
主要是测试系统在出现故障时。
11.兼容性测试:
目的就是检验被测应用对其他应用或者系统的兼容性,比如在对一个共享资源(数据、数据文件或者内存)进行操作时,检测两个或多个系统需求能否正常工作以及相互交互使用。
12.可用性测试:
可用性测试是面向用户的系统测试。
13.可安装性测试:
可安装性测试的目的就是要验证成功安装系统的能力。
安装系统处在一个开发项目的结束也是被测系统的开始。
14.文档测试:
文档测试是对系统提交给用户的文档进行验证,并不是一般性的审查活动。
通过文档测试保证用户文档的正确性并使得操作手册能够准确无误。
15.在线帮助测试:
在线帮助测试给用户提供一种实时的咨询服务。
16.数据转换测试:
主要是为了验证已存在的数据转换并载入一个新的数据库是否有效。
17.验收测试:
验收测试是将程序与其最初的需求及最终用户当前的需要进行比较的过程。
13、简述测试项目管理的三维模型
时间维——全过程管理:
对软件测试项目的全过程进行控制。
空间维——全方位管理:
对于软件测试质量有关的关键因素事实全方位管理。
组织维——人员管理:
构建从测试人员、设施小组到测试机构的多层次的管理模式。
论述题
1、什么是软件测试,请谈谈为什么要进行软件测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
为什么要进行软件测试?
就是因为软件缺陷的存在。
因为只有通过测试,才可以发现软件缺陷。
也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性
2、请谈谈什么是自动化测试及其好处并举例说明。
自动化测试(automatedtest)是相对手工测试(manualtest)而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。
测试工具的使用是自动化测试的主要特征
好处:
测试周期缩短、更高质量的产品、软件过程更规范、高昂的团队士气、节省人力资源,降低企业成本、充分利用硬件资源,降低企业成本。
举例:
手工测试VS自动测试
3、试述软件测试的概念模型,并解释。
在开发过程中,从需求阶段到编码阶段,主要是采用验证手段进行测试,如需求评审、设计评审、代码走查以及代码审查等,从而完成对开发的中间结果的正确性的评估。
编码完成并经过代码审查等测试之后,此时的测试主要在软件的可执行模式下进行,即利用确认手段进行测试,确认测试包括单元测试、集成测试、系统测试以及用户验收测试等,其相应的关系。
测试目标
测试依据
缺陷定义
测试对象
解决方案
测试结果
测试工具
测试方法
测试策略
测试组织
测