简答题
1、什么是软件测试?
答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
2、软件测试的目的?
答:测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。
3、白盒测试有哪几种方法?
答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。
4、软件的缺陷等级应如何划分?
1).致命错误,可能导致本模块以及其他相关模块异常,死机等问题;
2).严重错误,问题局限在本模块,导致模块功能失效或异常退出
3).一般错误,模块功能部分失效; 4).建议问题,由问题提出人对测试对象的改进意见;
5、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别)
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1)、是否有不正确或遗漏的功能? 2)、在接口上,输入是否能正确的接受?能否输出正确的结果?
3)、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4)、性能上是否能够满足要求? 5)、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1)、对程序模块的所有独立的执行路径至少测试一遍。
2)、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3)、在循环的边界和运行的界限内执行循环体。 4)、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
6、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。
集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
软件集成后,需要完成确认和系统测试。
确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基
本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
7、针对缺陷采取怎样的管理措施?
1). 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
2). 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
3). 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
4). 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。
5). 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。
8、单元测试、集成测试、系统测试的侧重点是什么?
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。
9、设计用例的方法、依据有那些?
答:白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构
黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书。
10、测试用例通常包括那些内容?着重阐述编制测试用例的具体做法不同结构的用例包括的不一样(版本、编号、项目、设计人员、设计日期、输入、预期输出„„)
答:软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。 用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” .重要级别:定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然,测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
13、黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别
答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
1.单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
2.集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。
3.系统测试主要针对[b]概要设计[/b],检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能
4.验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要(需求)。
5. 白盒测试有几种方法
答:总体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
6. 系统测试计划是否需要同行审批,为什么
答:需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
8 比较负载测试,容量测试和强度测试的区别
答:负载测试:在一定的工作负荷下,系统的负荷及响应时间。
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:容量测试目的是通过测试预先分 析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试 还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。
9 测试结束的标准是什么?
答:用例全部测试。覆盖率达到标准。缺陷率达到标准。其他指标达到质量标准。
10 描述软件测试活动的生命周期?
答:测试周期分为计划、设计、实现、执行、总结。其中:
计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 设计:完成测试方案,从技术层面上对测试进行规划;
实现:进行测试用例和测试规程设计;
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。
总结:记录测试结果,进行测试分析,完成测试报告。
4 怎么做好文档测试
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。
检查文档的编写是否满足文档编写的目的
内容是否齐全,正确、内容是否完善、标记是否正确
一、软件测试的意义是什么?
它的意义在于:它是在软件投入运行前,对软件需求分析,设计规格说明和编码实现的最终审查:是软件质量保证的关键步骤.
二、软件测试和软件开发过程具有怎么样的关系?
软件测试贯穿在软件的开发过程中,在每个开发阶段具有不同的任务.
在需求分析阶段,主要进行测试需求分析,系统测试计划的制定.在详细设计和概要设计阶段,主要确保集成测试计划和单元测试计划完成.在编码阶段,主要由开发人员测试自己负责开发的模块的代码,若项目较大时,则有专门人员进行编码阶段的测试任务.在测试阶段,主要对系统进行测试,并提交相应的测试结果报告和测试分析报告.
三、白盒测试的重点以及相应的对策是什么?
1、模块接口测试,重点检查进出模块的数据是否正确
2、模块局部数据结构测试,重点检查局部数据结构能否保持完整性
3、模块边界条件测试,重点检查临界数据是否正确处理
4、模块独立执行路径测试,重点检查由于计算错误,判定错误,控制流错误导致的程序错误
5、模块内部错误处理测试,重点检查内部错误处理设施是否有效
四、白盒测试的覆盖准则是什么?
1、ESTCA覆盖准则
对于A>==
对于A> C时,应适当的选择A的值,使得A=C+M
对外部输入变量赋值,使其在每个测试用例中使用不同的值,避免变量名写错,避免应该使用变量的地方却使用了常量
2、LOSAJ覆盖准则
第一层:语句覆盖
第二层:分支覆盖
第三层:LCSAJ覆盖。即程序中每个LCSAJ在测试中至少经历一次
第四层:两两LCSAJ覆盖
..........
第N+2(N为自然数)层:每N个首尾相连的LCSAJ组合都要在测试中至少经历一次
五、什么是静态黑盒测试?什么是动态黑盒测试?
静态黑盒测试即是:主要对产品说明书进行检查和审阅,从中发现软件缺陷。动态黑盒测试:主要测试软件在使用过程中的实际行为,测试工作就是进行输入、接受输出、检测结果。
七、什么是软件自动化测试?软件自动化测试的原理和方法有哪些?
软件自动化测试是一项让计算机代替测试人员进行软件测试的技术是指编写软件去测试其它软件也可以被理解为使用一个商业通用测试自动化工具编写一个软件来测试其它软件 或者 编写驱动被测试应用程序的的测试脚本以执行键盘鼠标动作和后台进程并验证应用程序响应和行为
主要的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术和虚拟用户技术
九、什么是性能测试?性能测试主要包括什么内容?
是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 主要包括以下三个方面:应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
十、客户端性能测试的主要内容是什么?
并发性能测试 其过程是一个负载测试和压力测试的过程即逐渐增加负载直到系统的瓶颈或者不能能够接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
疲劳强度测试 是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程
大数据量测试 针对大数据量的独立数据量测试与综合数据量测试
速度测试 针对有速度要求的业务进行手工测速度
十一、什么是兼容性测试?主要包括那些基本内容?
是指检查软件在一个特定的硬件,软件,操作系统网络等环境下是否能够正常的运行;检查软件之间能否正确的交互和共享信息,以及检查软件版本之间的兼容性问题
主要包括三类基本测试:平台和设备兼容测试(测试软件在给定的系统平台上能否正常运行),向下兼容测试(针对早期版本功能在新版本中的保留情况)和交叉兼容测试(验证共同存在的两个相关但不同的软件产品之间的兼容性)
十二、数据共享兼容性主要是几种?
文件导出和导入是许多程序与自身以前版本其它程序保持兼容的方式。
剪切复制和粘贴是程序之间传输数据的常见共享方式。
DDE和OLE是Windows中在两个程序之间传输数据的方式,数据传输自动进行。
十三、什么是可用性测试?
验证对应用程序有意向的用户是否能够和应用程序正确的进行交互,同时感到使用起来明确而方便。 十四、可用性测试时确定目标受众需求的方法有哪些?
行业专家法,专题组法,调研法,对同类产品的研究,观察用户的操作.
十五、什么是安全性测试?主要包括那些内容?
是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程.
主要包括:作用于整个系统的系统级安全需求.与某些特定功能相关的特定安全性的需求
对外部输入变量赋值,使其在每个测试用例中使用不同的值,避免变量名写错,避免应该使用变量的地方却使用了常量
2、LOSAJ覆盖准则
第一层:语句覆盖
第二层:分支覆盖
第三层:LCSAJ覆盖。即程序中每个LCSAJ在测试中至少经历一次
第四层:两两LCSAJ覆盖
..........
第N+2(N为自然数)层:每N个首尾相连的LCSAJ组合都要在测试中至少经历一次
五、什么是静态黑盒测试?什么是动态黑盒测试?
静态黑盒测试即是:主要对产品说明书进行检查和审阅,从中发现软件缺陷。动态黑盒测试:主要测试软件在使用过程中的实际行为,测试工作就是进行输入、接受输出、检测结果。
七、什么是软件自动化测试?软件自动化测试的原理和方法有哪些?
软件自动化测试是一项让计算机代替测试人员进行软件测试的技术是指编写软件去测试其它软件也可以被理解为使用一个商业通用测试自动化工具编写一个软件来测试其它软件 或者 编写驱动被测试应用程序的的测试脚本以执行键盘鼠标动作和后台进程并验证应用程序响应和行为
主要的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术和虚拟用户技术
九、什么是性能测试?性能测试主要包括什么内容?
是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 主要包括以下三个方面:应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
十、客户端性能测试的主要内容是什么?
并发性能测试 其过程是一个负载测试和压力测试的过程即逐渐增加负载直到系统的瓶颈或者不能能够接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
疲劳强度测试 是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程
大数据量测试 针对大数据量的独立数据量测试与综合数据量测试
速度测试 针对有速度要求的业务进行手工测速度
十一、什么是兼容性测试?主要包括那些基本内容?
是指检查软件在一个特定的硬件,软件,操作系统网络等环境下是否能够正常的运行;检查软件之间能否正确的交互和共享信息,以及检查软件版本之间的兼容性问题
主要包括三类基本测试:平台和设备兼容测试(测试软件在给定的系统平台上能否正常运行),向下兼容测试(针对早期版本功能在新版本中的保留情况)和交叉兼容测试(验证共同存在的两个相关但不同的软件产品之间的兼容性)
十二、数据共享兼容性主要是几种?
文件导出和导入是许多程序与自身以前版本其它程序保持兼容的方式。
剪切复制和粘贴是程序之间传输数据的常见共享方式。
DDE和OLE是Windows中在两个程序之间传输数据的方式,数据传输自动进行。
十三、什么是可用性测试?
验证对应用程序有意向的用户是否能够和应用程序正确的进行交互,同时感到使用起来明确而方便。 十四、可用性测试时确定目标受众需求的方法有哪些?
行业专家法,专题组法,调研法,对同类产品的研究,观察用户的操作.
十五、什么是安全性测试?主要包括那些内容?
是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程.
主要包括:作用于整个系统的系统级安全需求.与某些特定功能相关的特定安全性的需求
十六、软件安全测试方法有哪些?
功能测试,漏洞扫描,模拟攻击实验,侦听技术
功能测试:在软件设计和开发过程中,软件中会增加一些必要的安全防护措施
漏洞扫描:采用成熟的网络漏洞检查工具检查系统相关漏洞
模拟攻击实验:测试人员模拟非授权攻击,检查防护系统是否坚固
侦听技术:侦听技术实际上是在数据通信或数据交互过程,对数据进行截取分析的过程。
十九、测试面向对象软件和传统软件有何不同?
首先面向对象编程的特性如封装继承和多态性对测试的某些方面产生了影响.另一方面面向对象的开发过程以及分析和设计方法也对测试产生了影响有利于尽早测试.
二十一、什么是指导性审查?评价的标准和基本角色有哪些?
指导性审查是一种增强了的专为检验模型而创建的检测技巧,也可以用来验证模型是否能符合项目的需求 评价标准:模型是否正确,模型对信息的描述是否完整,模型内部是否一致以及是否与它的基础模型一致 基本角色:领域专家,测试者,开发者
二十八、系统测试用例的选择策略是什么?
1、确定用户使用系统的使用概貌,即确定用户是怎样使用系统的然后根据这些步骤创建测试用例
2、分析产品可能包含的缺陷类型,然后编写测试用例来检测这些缺陷。为了测试需求的一致性,可以从说明需求的用例来构建测试用例
二十九、系统测试的主要内容什么?
功能测试:最基本的测试
性能测试:主要测试软件的运行性能
强度测试:测试系统能力的最高实际限度
安全测试:验证安装在系统内的保护机构确实能够对系统进行保护
健壮性测试:测试系统在出现故障时能否自动恢复或者忽略故障继续进行
安装卸载测试:确保用在系统中的软件包能够提供足够的安装步骤使得产品在工作条件下可以交付使用
3、 一个问题单从提交到关闭正常情况主要包括那些步骤,请顺序列出。(3分)
初始化,问题审核,开发经理审核,开发人员修改,测试经理审核,回归测试,关闭。
4、 测试案例(用例)包括那些属性?(2)
模块,子模块,编号,用例等级,输入(或者预制条件、操作步骤),输出(预期结果),测试结果,
5、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分)
人不可能执行完美的黑盒测试,穷尽其全部路径,而白盒测试可以发现软件设计结构的问题,而且白盒测试在穷尽路径方面比黑盒测试效率高,尽早的发现问题,可以节约产品研发成本。
6、软件生命周期主要包括那些过程?(2分)
需求分析,概要设计,详细设计,编码,测试,运行,维护,死亡。
7、软件测试大体有那些活动?(如测试计划,2分)
测试计划,测试设计,测试执行,测试总结等。
8、 集成测试的几个主要模式中那些需要桩那些需要驱动?(2分)
桩:自顶向下,三明治,大棒 驱动:自底向上,三明治,大棒
17、举例白盒测试用例设计方法,黑盒测试用例设计方法。(3分)
白盒:逻辑覆盖,基本路径 黑盒:边界值,等价类划分,因果图,错误推断,功能图
18、举例软件开发模型有那些(写出至少4个)。(3分)
瀑布,螺旋,渐进,V,原型,增量,迭代等。
1:说明软件测试和调试的目的有何区别?
软件测试的目的是:用最少的人力和物力在最短的时间内尽可能多的发现系统中潜在的软件缺陷和错误 软件调试的目的是:尽可能多的解决软件中隐藏的错误
2:软件缺陷有哪些表现?
(1)软件没有达到产品说明书的要求(2)软件出现预期结果和实际结果不一致的表现
(3)软件功能超出产品说明书的范围(4)软件没有达到用户期望的目标(5)用户
5:软件测试原则有哪些?
(1)在测试前应检查需求说明书是否完整 (2)不应虚想程序中没有缺陷或找不出缺陷
(3)测试之前应预测测试的结果数据。 (4)尽可能避免测试自己写的程序
(5)测试用例应该兼顾有效输入和无效输入。 (6)测试的充分性和有效性。
(7)人力、物力,测试工作分配适当
6:什么是软件生命周期?
生命周期:制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用。 怎样做好文档测试?
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。
检查文档的编写是否满足文档编写的目的
内容是否齐全,正确、内容是否完善、标记是否正确
软件测试与调试有什么区别?
软件测试与调试在目的、技术和方法等方面存在很大的区别,主要表现在如下方面:
(1) 测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
(2) 测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
(3) 测试是有计划的,需要进行测试设计;调试是不受时间约束的。
(4) 测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程。
(5) 测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
(6) 测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
(7) 大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 软件测试包括哪些类型的测试?这些测试之间的区别是什么?
软件测试包括单元测试、集成测试、确认测试和系统测试等。
单元测试集中于单个模块的功能和结构的检验;
集成测试集中于模块组合的功能和软件结构检验;
确认测试主要检查软件是否符合合同要求,包括需求规格说明、设计规格说明和用户手册等;
系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否达到。
五、简答题:共3小题,每小题5分,满分15分。
如何划分等价类?
1).在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
2).在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,则可以确立一个有效等价类和一个无效等价类。
3).在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。
4).在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。
5).在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6).在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
软件验收测试应完成哪些主要测试工作?
1)文档资料的审查验收 2)功能测试 3)性能测试 4)强化测试 5)性能降级执行方式测试
6)检查系统的余量要求 7)安装测试 8)用户操作测试
简述软件开发-软件测试的对用关系。
4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。
7. 每周/每两周的构建过程。8. 点对点的测试过程。 9. 组内培训过程。
黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?
白:优点:迫使测试人员去了解软件的实现
检测代码中的每条路径和分支、揭示隐藏在代码中的错误 、对代码的测试进行比较彻底
缺点:白盒测试投入较大,成本较高、白盒测试不验证规格的正确性、无法检查代码中遗漏的路径和数据敏感性错误 黑:优点:对较大的代码单元来说,黑盒测试比白盒测试的效率高
测试人员不需要了解实现得细节,包括特定的编程语言
测试人员和编程人员是相互独立的
从用户的角度进行测试,很容易被接受和理解
有助于暴露任何与闺阁不一致或者歧异的地方
测试用例可以在规格完成后马上进行
缺点:不能测试程序内部特定部位、如果程序未执行的代码无法发现、没有清晰的和简明的规格,测试用例很难被设计
黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
3. 试说出软件测试的十大原则?
所有测试的标准都是建立在用户需求之上。软件测试必须基于“质量第一”的思想去开展各项工作。事先定义好产品的质量标准。软件项目一启动,软件测试也就是开始。穷举测试是不可能的。第三方进行测试会更客观,更有效。软件测试计划是做好软件测试工作的前提。测试用例是设计出来的,不是写出来的。不可将测试用例置之度外,排除随意性。对发现错误较多的程序段,应进行更深入的测试。
4. 什么是回归测试?回归测试的目的是什么?
定义:是指在修改了源代码后,用原有的测试用例进行重新进行测试以确认修改没有引入新的错误或导致
其他代码产生错误 目的:所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等,不影响软件原有功能的正确性。
1、什么是软件测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
2、什么是测试用例
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
测试用例是执行的最小实体。
3、什么是黑盒测试?
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
4、什么是白盒测试?
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
5、什么是桩模块,什么是驱动模块?
桩模块(Stub)桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试 模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的
数据处理,以便检验被测模块与其下级模块的接口。
驱动模块驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测
试模块的上一级模块,相当于被测模块的主程序。驱动模块在单元测试中接收数
据,把相关的数据传送给被测试的模块,启动被测模块,并打印出相应的结果。
6、用黑盒测试设计测试用例有哪些常用方法?
判定表驱动分析方法、正交实验设计方法、功能图分析方法、因果图方法、错误推测法、边界值分析法
8、软件测试工作过程有哪些?
确定测试计划、设计测试用例、测试执行、测试总结
9、测试执行的工作过程有哪些?
(1)全方位地观察测试用例执行结果(2)加强测试过程记录(3)及时确定发现的问题
(4)提交缺陷时与开发的关系处理 (5)及时更新测试用例(6)提交一份优秀的问题报告单
11、系统测试有哪几类?
恢复测试、安全测试、强度测试、性能测试
12、Web系统测试通常包括哪些?
性能测试、连接测试、导航测试、界面测试、兼容性测试、帮助文档测试
13、什么是并发用户数?
并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户数。
软件测试的目的和原则
目的:在于检测某个系统是否满足规定的需要或弄清楚预期结果与实际结果之间的差别
原则:(1)软件测试应该追溯到用户需求(2)应尽早和不断地测试(3)穷尽测试是不可能的(4)具有良好的测试态度(5)对待缺陷的基本原则(6)对测试结果的处理原则。
黑盒白盒测试的概念及优缺点
黑盒测试概念:也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功
能是否都能正常使用
优点:
1)简单,不需要了解程序内部的代码及实现;
2)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
3)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
4)在做软件自动化测试时比较方便。
缺点:
1)测试不可能覆盖所有的代码,覆盖率较低,
2)自动化测试的复用性较低。
白盒测试概念:白盒测试方法又称结构测试,它是根据程序的内部结构设计测试数据,检查程序中的每条通路是否都能按要求正确运行
优点:
帮助软件测试人员发现问题,增加覆盖率,提高代码质量,发现隐藏的问题
缺点:
程序运行有很多路径,不可能测试所有的路径。
基于代码,只能测试程序设计的对不对,不能判断功能设计合不合理。
测试开销大。
单元测试 集成测试 系统测试的概念
单元测试 是指对软件中的最小可测试的单元或基本组成单元进行检查和验证。
集成测试 是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,进行集成测试。目的是确保个单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确。
系统测试 是将已经过良好的集成测试的软件系统,作为整个计算机系统的一部分,与计算机硬件、外部设备、支持软件、数据以及人员等其他系统元素结合在一起,在实际使用(运行)环境下对计算机系统进行一系列的严格测试来发现软件中的潜在缺陷,保证系统交付给用户之后能够正常使用。
为什么在单元测试之后要设计集成测试
单元测试概念,集成测试概念(见题3)
在测试过程中经常遇到的情况是:单元测试中每个模块都能单独工作,但将这些模块集成在一起之后,某些模块就不能正常工作了。因此,单元测试无法代替集成测试,每个模块的性能最优并不能保证集成之后的指标达到最优。
黑盒测试的几种方法及特点
边界值测试 (测试的思想较为简单,自动化程度高,较容易实现自动化测试,是等价类测试良好的补充。但该法有较大的冗余和漏洞,对布尔型和逻辑型问题无效。)
等价类测试 (具有良好的理论基础,可以处理布尔型和逻辑型的问题,达到测试的完备性和无冗余性,工作量较低。但无法保证对整个有效域的覆盖。)
因果图测试 (很好的描述了输入条件之间的组合,降低测试冗余。但因果图的绘制十分繁琐,且其最终输出的是一个决策表。)
决策表测试 (很好的描述了输入条件之间的组合,降低测试冗余,若与等价类测试相结合,将得到完备且无冗余的测试。但该法仅针对输入域展开分析,不适用于对输出域来展开测试。)
黑盒测试的两种方法:通过测试 与 失败测试 的概念
通过测试: 通过执行测试用例看看软件基本功能是否实现,以确定软件在普通情况下能够正确运行
失败测试: 采取各种手段通过“搞垮软件”来找出缺陷,是纯粹为了破坏软件而设计和执行测试用例。
1、功能测试的定义,并指出几种主要的测试用例设计方法。
答:功能测试也叫黑盒测试或数据驱动测试,是根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
测试用例设计的主要方法有:等价类划分方法、边界值分析方法、错误推测法、因果图法、判定表方法、功能图法、正交试验法。
2、什么叫集成测试?集成测试策略中增值式测试和非增值式测试是什么?
答:集成测试又称组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有的模块按照设计要求组装成子系统或系统进行的测试活动。
增值式测试就是把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,直至将所有的单元模块组装成为符合要求的软件系统。
非增值式测试是先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序。
3、简述软件测试的主要过程
答:软件测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。然后,进行集成测试,根据设计规定的软件体系结构,把已经测试过的模块组装起来,在组装过程中,检查程序结构组装的正确性。确认测试则是要检查已经实现的软件是否满足了需求规格说明书中的各种需求,以及软件配置是否完全、正确。最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。严格地说,系统测试已经超出了软件工程的范围。
简答题
1、什么是软件测试?
答:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
2、软件测试的目的?
答:测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。
3、白盒测试有哪几种方法?
答:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。
4、软件的缺陷等级应如何划分?
1).致命错误,可能导致本模块以及其他相关模块异常,死机等问题;
2).严重错误,问题局限在本模块,导致模块功能失效或异常退出
3).一般错误,模块功能部分失效; 4).建议问题,由问题提出人对测试对象的改进意见;
5、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别)
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1)、是否有不正确或遗漏的功能? 2)、在接口上,输入是否能正确的接受?能否输出正确的结果?
3)、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4)、性能上是否能够满足要求? 5)、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1)、对程序模块的所有独立的执行路径至少测试一遍。
2)、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3)、在循环的边界和运行的界限内执行循环体。 4)、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
6、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
答:大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告
初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。 接下来是模块集成和集成以便组成完整的软件包。
集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
软件集成后,需要完成确认和系统测试。
确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。
单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基
本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
7、针对缺陷采取怎样的管理措施?
1). 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
2). 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
3). 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
4). 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。
5). 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。
8、单元测试、集成测试、系统测试的侧重点是什么?
答:单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。
9、设计用例的方法、依据有那些?
答:白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构
黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书。
10、测试用例通常包括那些内容?着重阐述编制测试用例的具体做法不同结构的用例包括的不一样(版本、编号、项目、设计人员、设计日期、输入、预期输出„„)
答:软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。 用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” .重要级别:定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然,测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
13、黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别
答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
1.单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
2.集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。
3.系统测试主要针对[b]概要设计[/b],检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能
4.验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要(需求)。
5. 白盒测试有几种方法
答:总体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
6. 系统测试计划是否需要同行审批,为什么
答:需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
8 比较负载测试,容量测试和强度测试的区别
答:负载测试:在一定的工作负荷下,系统的负荷及响应时间。
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:容量测试目的是通过测试预先分 析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试 还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。
9 测试结束的标准是什么?
答:用例全部测试。覆盖率达到标准。缺陷率达到标准。其他指标达到质量标准。
10 描述软件测试活动的生命周期?
答:测试周期分为计划、设计、实现、执行、总结。其中:
计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 设计:完成测试方案,从技术层面上对测试进行规划;
实现:进行测试用例和测试规程设计;
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。
总结:记录测试结果,进行测试分析,完成测试报告。
4 怎么做好文档测试
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。
检查文档的编写是否满足文档编写的目的
内容是否齐全,正确、内容是否完善、标记是否正确
一、软件测试的意义是什么?
它的意义在于:它是在软件投入运行前,对软件需求分析,设计规格说明和编码实现的最终审查:是软件质量保证的关键步骤.
二、软件测试和软件开发过程具有怎么样的关系?
软件测试贯穿在软件的开发过程中,在每个开发阶段具有不同的任务.
在需求分析阶段,主要进行测试需求分析,系统测试计划的制定.在详细设计和概要设计阶段,主要确保集成测试计划和单元测试计划完成.在编码阶段,主要由开发人员测试自己负责开发的模块的代码,若项目较大时,则有专门人员进行编码阶段的测试任务.在测试阶段,主要对系统进行测试,并提交相应的测试结果报告和测试分析报告.
三、白盒测试的重点以及相应的对策是什么?
1、模块接口测试,重点检查进出模块的数据是否正确
2、模块局部数据结构测试,重点检查局部数据结构能否保持完整性
3、模块边界条件测试,重点检查临界数据是否正确处理
4、模块独立执行路径测试,重点检查由于计算错误,判定错误,控制流错误导致的程序错误
5、模块内部错误处理测试,重点检查内部错误处理设施是否有效
四、白盒测试的覆盖准则是什么?
1、ESTCA覆盖准则
对于A>==
对于A> C时,应适当的选择A的值,使得A=C+M
对外部输入变量赋值,使其在每个测试用例中使用不同的值,避免变量名写错,避免应该使用变量的地方却使用了常量
2、LOSAJ覆盖准则
第一层:语句覆盖
第二层:分支覆盖
第三层:LCSAJ覆盖。即程序中每个LCSAJ在测试中至少经历一次
第四层:两两LCSAJ覆盖
..........
第N+2(N为自然数)层:每N个首尾相连的LCSAJ组合都要在测试中至少经历一次
五、什么是静态黑盒测试?什么是动态黑盒测试?
静态黑盒测试即是:主要对产品说明书进行检查和审阅,从中发现软件缺陷。动态黑盒测试:主要测试软件在使用过程中的实际行为,测试工作就是进行输入、接受输出、检测结果。
七、什么是软件自动化测试?软件自动化测试的原理和方法有哪些?
软件自动化测试是一项让计算机代替测试人员进行软件测试的技术是指编写软件去测试其它软件也可以被理解为使用一个商业通用测试自动化工具编写一个软件来测试其它软件 或者 编写驱动被测试应用程序的的测试脚本以执行键盘鼠标动作和后台进程并验证应用程序响应和行为
主要的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术和虚拟用户技术
九、什么是性能测试?性能测试主要包括什么内容?
是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 主要包括以下三个方面:应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
十、客户端性能测试的主要内容是什么?
并发性能测试 其过程是一个负载测试和压力测试的过程即逐渐增加负载直到系统的瓶颈或者不能能够接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
疲劳强度测试 是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程
大数据量测试 针对大数据量的独立数据量测试与综合数据量测试
速度测试 针对有速度要求的业务进行手工测速度
十一、什么是兼容性测试?主要包括那些基本内容?
是指检查软件在一个特定的硬件,软件,操作系统网络等环境下是否能够正常的运行;检查软件之间能否正确的交互和共享信息,以及检查软件版本之间的兼容性问题
主要包括三类基本测试:平台和设备兼容测试(测试软件在给定的系统平台上能否正常运行),向下兼容测试(针对早期版本功能在新版本中的保留情况)和交叉兼容测试(验证共同存在的两个相关但不同的软件产品之间的兼容性)
十二、数据共享兼容性主要是几种?
文件导出和导入是许多程序与自身以前版本其它程序保持兼容的方式。
剪切复制和粘贴是程序之间传输数据的常见共享方式。
DDE和OLE是Windows中在两个程序之间传输数据的方式,数据传输自动进行。
十三、什么是可用性测试?
验证对应用程序有意向的用户是否能够和应用程序正确的进行交互,同时感到使用起来明确而方便。 十四、可用性测试时确定目标受众需求的方法有哪些?
行业专家法,专题组法,调研法,对同类产品的研究,观察用户的操作.
十五、什么是安全性测试?主要包括那些内容?
是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程.
主要包括:作用于整个系统的系统级安全需求.与某些特定功能相关的特定安全性的需求
对外部输入变量赋值,使其在每个测试用例中使用不同的值,避免变量名写错,避免应该使用变量的地方却使用了常量
2、LOSAJ覆盖准则
第一层:语句覆盖
第二层:分支覆盖
第三层:LCSAJ覆盖。即程序中每个LCSAJ在测试中至少经历一次
第四层:两两LCSAJ覆盖
..........
第N+2(N为自然数)层:每N个首尾相连的LCSAJ组合都要在测试中至少经历一次
五、什么是静态黑盒测试?什么是动态黑盒测试?
静态黑盒测试即是:主要对产品说明书进行检查和审阅,从中发现软件缺陷。动态黑盒测试:主要测试软件在使用过程中的实际行为,测试工作就是进行输入、接受输出、检测结果。
七、什么是软件自动化测试?软件自动化测试的原理和方法有哪些?
软件自动化测试是一项让计算机代替测试人员进行软件测试的技术是指编写软件去测试其它软件也可以被理解为使用一个商业通用测试自动化工具编写一个软件来测试其它软件 或者 编写驱动被测试应用程序的的测试脚本以执行键盘鼠标动作和后台进程并验证应用程序响应和行为
主要的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术和虚拟用户技术
九、什么是性能测试?性能测试主要包括什么内容?
是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 主要包括以下三个方面:应用在客户端性能的测试,应用在网络上性能的测试和应用在服务器端性能的测试
十、客户端性能测试的主要内容是什么?
并发性能测试 其过程是一个负载测试和压力测试的过程即逐渐增加负载直到系统的瓶颈或者不能能够接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
疲劳强度测试 是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程
大数据量测试 针对大数据量的独立数据量测试与综合数据量测试
速度测试 针对有速度要求的业务进行手工测速度
十一、什么是兼容性测试?主要包括那些基本内容?
是指检查软件在一个特定的硬件,软件,操作系统网络等环境下是否能够正常的运行;检查软件之间能否正确的交互和共享信息,以及检查软件版本之间的兼容性问题
主要包括三类基本测试:平台和设备兼容测试(测试软件在给定的系统平台上能否正常运行),向下兼容测试(针对早期版本功能在新版本中的保留情况)和交叉兼容测试(验证共同存在的两个相关但不同的软件产品之间的兼容性)
十二、数据共享兼容性主要是几种?
文件导出和导入是许多程序与自身以前版本其它程序保持兼容的方式。
剪切复制和粘贴是程序之间传输数据的常见共享方式。
DDE和OLE是Windows中在两个程序之间传输数据的方式,数据传输自动进行。
十三、什么是可用性测试?
验证对应用程序有意向的用户是否能够和应用程序正确的进行交互,同时感到使用起来明确而方便。 十四、可用性测试时确定目标受众需求的方法有哪些?
行业专家法,专题组法,调研法,对同类产品的研究,观察用户的操作.
十五、什么是安全性测试?主要包括那些内容?
是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程.
主要包括:作用于整个系统的系统级安全需求.与某些特定功能相关的特定安全性的需求
十六、软件安全测试方法有哪些?
功能测试,漏洞扫描,模拟攻击实验,侦听技术
功能测试:在软件设计和开发过程中,软件中会增加一些必要的安全防护措施
漏洞扫描:采用成熟的网络漏洞检查工具检查系统相关漏洞
模拟攻击实验:测试人员模拟非授权攻击,检查防护系统是否坚固
侦听技术:侦听技术实际上是在数据通信或数据交互过程,对数据进行截取分析的过程。
十九、测试面向对象软件和传统软件有何不同?
首先面向对象编程的特性如封装继承和多态性对测试的某些方面产生了影响.另一方面面向对象的开发过程以及分析和设计方法也对测试产生了影响有利于尽早测试.
二十一、什么是指导性审查?评价的标准和基本角色有哪些?
指导性审查是一种增强了的专为检验模型而创建的检测技巧,也可以用来验证模型是否能符合项目的需求 评价标准:模型是否正确,模型对信息的描述是否完整,模型内部是否一致以及是否与它的基础模型一致 基本角色:领域专家,测试者,开发者
二十八、系统测试用例的选择策略是什么?
1、确定用户使用系统的使用概貌,即确定用户是怎样使用系统的然后根据这些步骤创建测试用例
2、分析产品可能包含的缺陷类型,然后编写测试用例来检测这些缺陷。为了测试需求的一致性,可以从说明需求的用例来构建测试用例
二十九、系统测试的主要内容什么?
功能测试:最基本的测试
性能测试:主要测试软件的运行性能
强度测试:测试系统能力的最高实际限度
安全测试:验证安装在系统内的保护机构确实能够对系统进行保护
健壮性测试:测试系统在出现故障时能否自动恢复或者忽略故障继续进行
安装卸载测试:确保用在系统中的软件包能够提供足够的安装步骤使得产品在工作条件下可以交付使用
3、 一个问题单从提交到关闭正常情况主要包括那些步骤,请顺序列出。(3分)
初始化,问题审核,开发经理审核,开发人员修改,测试经理审核,回归测试,关闭。
4、 测试案例(用例)包括那些属性?(2)
模块,子模块,编号,用例等级,输入(或者预制条件、操作步骤),输出(预期结果),测试结果,
5、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分)
人不可能执行完美的黑盒测试,穷尽其全部路径,而白盒测试可以发现软件设计结构的问题,而且白盒测试在穷尽路径方面比黑盒测试效率高,尽早的发现问题,可以节约产品研发成本。
6、软件生命周期主要包括那些过程?(2分)
需求分析,概要设计,详细设计,编码,测试,运行,维护,死亡。
7、软件测试大体有那些活动?(如测试计划,2分)
测试计划,测试设计,测试执行,测试总结等。
8、 集成测试的几个主要模式中那些需要桩那些需要驱动?(2分)
桩:自顶向下,三明治,大棒 驱动:自底向上,三明治,大棒
17、举例白盒测试用例设计方法,黑盒测试用例设计方法。(3分)
白盒:逻辑覆盖,基本路径 黑盒:边界值,等价类划分,因果图,错误推断,功能图
18、举例软件开发模型有那些(写出至少4个)。(3分)
瀑布,螺旋,渐进,V,原型,增量,迭代等。
1:说明软件测试和调试的目的有何区别?
软件测试的目的是:用最少的人力和物力在最短的时间内尽可能多的发现系统中潜在的软件缺陷和错误 软件调试的目的是:尽可能多的解决软件中隐藏的错误
2:软件缺陷有哪些表现?
(1)软件没有达到产品说明书的要求(2)软件出现预期结果和实际结果不一致的表现
(3)软件功能超出产品说明书的范围(4)软件没有达到用户期望的目标(5)用户
5:软件测试原则有哪些?
(1)在测试前应检查需求说明书是否完整 (2)不应虚想程序中没有缺陷或找不出缺陷
(3)测试之前应预测测试的结果数据。 (4)尽可能避免测试自己写的程序
(5)测试用例应该兼顾有效输入和无效输入。 (6)测试的充分性和有效性。
(7)人力、物力,测试工作分配适当
6:什么是软件生命周期?
生命周期:制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用。 怎样做好文档测试?
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。
检查文档的编写是否满足文档编写的目的
内容是否齐全,正确、内容是否完善、标记是否正确
软件测试与调试有什么区别?
软件测试与调试在目的、技术和方法等方面存在很大的区别,主要表现在如下方面:
(1) 测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
(2) 测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
(3) 测试是有计划的,需要进行测试设计;调试是不受时间约束的。
(4) 测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程。
(5) 测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
(6) 测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
(7) 大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 软件测试包括哪些类型的测试?这些测试之间的区别是什么?
软件测试包括单元测试、集成测试、确认测试和系统测试等。
单元测试集中于单个模块的功能和结构的检验;
集成测试集中于模块组合的功能和软件结构检验;
确认测试主要检查软件是否符合合同要求,包括需求规格说明、设计规格说明和用户手册等;
系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否达到。
五、简答题:共3小题,每小题5分,满分15分。
如何划分等价类?
1).在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
2).在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,则可以确立一个有效等价类和一个无效等价类。
3).在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。
4).在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。
5).在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6).在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
软件验收测试应完成哪些主要测试工作?
1)文档资料的审查验收 2)功能测试 3)性能测试 4)强化测试 5)性能降级执行方式测试
6)检查系统的余量要求 7)安装测试 8)用户操作测试
简述软件开发-软件测试的对用关系。
4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。
7. 每周/每两周的构建过程。8. 点对点的测试过程。 9. 组内培训过程。
黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?
白:优点:迫使测试人员去了解软件的实现
检测代码中的每条路径和分支、揭示隐藏在代码中的错误 、对代码的测试进行比较彻底
缺点:白盒测试投入较大,成本较高、白盒测试不验证规格的正确性、无法检查代码中遗漏的路径和数据敏感性错误 黑:优点:对较大的代码单元来说,黑盒测试比白盒测试的效率高
测试人员不需要了解实现得细节,包括特定的编程语言
测试人员和编程人员是相互独立的
从用户的角度进行测试,很容易被接受和理解
有助于暴露任何与闺阁不一致或者歧异的地方
测试用例可以在规格完成后马上进行
缺点:不能测试程序内部特定部位、如果程序未执行的代码无法发现、没有清晰的和简明的规格,测试用例很难被设计
黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
3. 试说出软件测试的十大原则?
所有测试的标准都是建立在用户需求之上。软件测试必须基于“质量第一”的思想去开展各项工作。事先定义好产品的质量标准。软件项目一启动,软件测试也就是开始。穷举测试是不可能的。第三方进行测试会更客观,更有效。软件测试计划是做好软件测试工作的前提。测试用例是设计出来的,不是写出来的。不可将测试用例置之度外,排除随意性。对发现错误较多的程序段,应进行更深入的测试。
4. 什么是回归测试?回归测试的目的是什么?
定义:是指在修改了源代码后,用原有的测试用例进行重新进行测试以确认修改没有引入新的错误或导致
其他代码产生错误 目的:所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等,不影响软件原有功能的正确性。
1、什么是软件测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
2、什么是测试用例
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
测试用例是执行的最小实体。
3、什么是黑盒测试?
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
4、什么是白盒测试?
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
5、什么是桩模块,什么是驱动模块?
桩模块(Stub)桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试 模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的
数据处理,以便检验被测模块与其下级模块的接口。
驱动模块驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测
试模块的上一级模块,相当于被测模块的主程序。驱动模块在单元测试中接收数
据,把相关的数据传送给被测试的模块,启动被测模块,并打印出相应的结果。
6、用黑盒测试设计测试用例有哪些常用方法?
判定表驱动分析方法、正交实验设计方法、功能图分析方法、因果图方法、错误推测法、边界值分析法
8、软件测试工作过程有哪些?
确定测试计划、设计测试用例、测试执行、测试总结
9、测试执行的工作过程有哪些?
(1)全方位地观察测试用例执行结果(2)加强测试过程记录(3)及时确定发现的问题
(4)提交缺陷时与开发的关系处理 (5)及时更新测试用例(6)提交一份优秀的问题报告单
11、系统测试有哪几类?
恢复测试、安全测试、强度测试、性能测试
12、Web系统测试通常包括哪些?
性能测试、连接测试、导航测试、界面测试、兼容性测试、帮助文档测试
13、什么是并发用户数?
并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户数。
软件测试的目的和原则
目的:在于检测某个系统是否满足规定的需要或弄清楚预期结果与实际结果之间的差别
原则:(1)软件测试应该追溯到用户需求(2)应尽早和不断地测试(3)穷尽测试是不可能的(4)具有良好的测试态度(5)对待缺陷的基本原则(6)对测试结果的处理原则。
黑盒白盒测试的概念及优缺点
黑盒测试概念:也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功
能是否都能正常使用
优点:
1)简单,不需要了解程序内部的代码及实现;
2)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
3)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
4)在做软件自动化测试时比较方便。
缺点:
1)测试不可能覆盖所有的代码,覆盖率较低,
2)自动化测试的复用性较低。
白盒测试概念:白盒测试方法又称结构测试,它是根据程序的内部结构设计测试数据,检查程序中的每条通路是否都能按要求正确运行
优点:
帮助软件测试人员发现问题,增加覆盖率,提高代码质量,发现隐藏的问题
缺点:
程序运行有很多路径,不可能测试所有的路径。
基于代码,只能测试程序设计的对不对,不能判断功能设计合不合理。
测试开销大。
单元测试 集成测试 系统测试的概念
单元测试 是指对软件中的最小可测试的单元或基本组成单元进行检查和验证。
集成测试 是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,进行集成测试。目的是确保个单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确。
系统测试 是将已经过良好的集成测试的软件系统,作为整个计算机系统的一部分,与计算机硬件、外部设备、支持软件、数据以及人员等其他系统元素结合在一起,在实际使用(运行)环境下对计算机系统进行一系列的严格测试来发现软件中的潜在缺陷,保证系统交付给用户之后能够正常使用。
为什么在单元测试之后要设计集成测试
单元测试概念,集成测试概念(见题3)
在测试过程中经常遇到的情况是:单元测试中每个模块都能单独工作,但将这些模块集成在一起之后,某些模块就不能正常工作了。因此,单元测试无法代替集成测试,每个模块的性能最优并不能保证集成之后的指标达到最优。
黑盒测试的几种方法及特点
边界值测试 (测试的思想较为简单,自动化程度高,较容易实现自动化测试,是等价类测试良好的补充。但该法有较大的冗余和漏洞,对布尔型和逻辑型问题无效。)
等价类测试 (具有良好的理论基础,可以处理布尔型和逻辑型的问题,达到测试的完备性和无冗余性,工作量较低。但无法保证对整个有效域的覆盖。)
因果图测试 (很好的描述了输入条件之间的组合,降低测试冗余。但因果图的绘制十分繁琐,且其最终输出的是一个决策表。)
决策表测试 (很好的描述了输入条件之间的组合,降低测试冗余,若与等价类测试相结合,将得到完备且无冗余的测试。但该法仅针对输入域展开分析,不适用于对输出域来展开测试。)
黑盒测试的两种方法:通过测试 与 失败测试 的概念
通过测试: 通过执行测试用例看看软件基本功能是否实现,以确定软件在普通情况下能够正确运行
失败测试: 采取各种手段通过“搞垮软件”来找出缺陷,是纯粹为了破坏软件而设计和执行测试用例。
1、功能测试的定义,并指出几种主要的测试用例设计方法。
答:功能测试也叫黑盒测试或数据驱动测试,是根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
测试用例设计的主要方法有:等价类划分方法、边界值分析方法、错误推测法、因果图法、判定表方法、功能图法、正交试验法。
2、什么叫集成测试?集成测试策略中增值式测试和非增值式测试是什么?
答:集成测试又称组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有的模块按照设计要求组装成子系统或系统进行的测试活动。
增值式测试就是把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,直至将所有的单元模块组装成为符合要求的软件系统。
非增值式测试是先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序。
3、简述软件测试的主要过程
答:软件测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。然后,进行集成测试,根据设计规定的软件体系结构,把已经测试过的模块组装起来,在组装过程中,检查程序结构组装的正确性。确认测试则是要检查已经实现的软件是否满足了需求规格说明书中的各种需求,以及软件配置是否完全、正确。最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。严格地说,系统测试已经超出了软件工程的范围。