一、软件测试的概念?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
二、软件测试的目的?
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
(1)/、测试是程序的执行过程,目的在于发现错误;
(2)、一个好的测试用例在于能发现至今未发现的错误;
(3)、一个成功的测试是发现了至今未发现的错误的测试。
想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。
测试的附带收获是,它能够证明软件的性能与需求说明相符合。
实施测试收集到的测试结果数据为可靠性分析提供了依据。
测试不能表明软件中不存在错误,它只能说明软件中存在错误。
三、软件测试的对象?
软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。
需求分析、概要设计、详细设计以及程序编码等各阶段所得到文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。
四、软件测试的重要性?
(1)、保证软件质量
(2)、研发成本和上线时间,节约预算。
五、测试的职责?
测试经理:制定测试计划,确保测试工作正常进行
测试人员:编写测试用例,搭建测试环境,执行测试并提出问题单,模块测试总结。
六、软件的分类?
按功能划分:系统软件、应用软件
按技术架构划分:单机版、B/S、C/S
按目标用户划分:产品软件、项目软件
七、B/S模式的特点?
优点:具有分布性特点,可以随时随地进行查询、浏览等业务处理;业务扩展简单方便,通过增加网页即可增加服务器功能;维护简单方便,只需要改变网页,即可实现所有用户的同步更新;开发简单,共享性强。
缺点:个性化特点明显降低,无法实现具有个性化的功能要求;操作是以鼠标为最基本的操作方式,无法满足快速操作的要求;页面动态刷新,响应速度明显降低;无法实现分页显示,给数据库访问造成较大的压力;功能弱化,难以实现传统模式下的特殊功能要求。
八、C/S模式的特点?
优点:由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快;操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求;C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
缺点:需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用
户群体,不能够实现快速部署安装和配置;兼容性差,对于不同的开发工具,具有较大的局限性;若采用不同工具,需要具有一定专业水准的技术人员才能完成。
九、测试工作的基本原则?
所有的软件测试都应追溯到用户需求;应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭;完全测试是不可能的,测试需要终止;测试无法显示软件潜在的缺陷;充分注意测试中的群集现象;程序员应避免检查自己的程序;尽量避免测试的随意性。
十、UML的解释?
它的全称是“统一建模语言”,它是一种用于描述,构造软件系统以及商业建模的语言。简单的理解就是它可以以一种直观的方式表示出一个系统地各项内容。
十一、软件开发模型?
1、瀑布模型;2、快速原型模型;3、增量模型;4、螺旋模型
十二、为什么软件会有毛病?
交流错误或者没有进行交流;软件的复杂性;编码错误;需求变更;时间压力;代码文档质量差;软件开发工具
十三、在软件开发过程中5个常见的问题及解决方法?
需求说明差;不切实际的时间表;测试不充分;不断增加功能;交流问题
可靠的需求;合理的时间表;适当的测试;尽可能坚持最初的需求;沟通
十四、什么是CMM?
CMM=Capability Maturity Model,即“性能完善模型”,由SEI开发。它是一个分5级的、可以描述结构 完善程度的模型,用它来说明所交付的软件的效能。它适用于大的机构,例如美国国防部的承包商。所以,它所涉及的许多质量控制过程适用于任何机构,如果合理地利用它,将会获益不浅。一个机构经过权威评审机构的评估,可以得到CMM等级。 十五、软件测试的生命周期?
项目启动、测试分析与计划、测试设计、测试执行、测试评估、验收测试、项目关闭 输出文档:测试计划、测试用例、问题单、评估报告、用户使用手册及操作指引 十六、V模型及其特征?
V模型:需求、功能、设计、编码(单元测试)、集成测试、系统测试、验收测试 特征:每个开发活动都有右边的测试活动相对应;软件开发过程是一个自顶向下,逐步细化的过程;测试过程是依相反顺序安排的自底向上,逐步集成的过程。
十七、W模型及其特征?
需求(需求测试)、功能(功能测试)、设计(设计测试)、编码(单元测试)、集成测试(构建)、系统测试(集成)、验收测试(安装)
特点:软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间;需求分析、概要设计、详细设计以及程序编程等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 十八、软件测试的分类,及解释?
(1)、单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能
(2)、集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构进行测试。
(3)、系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试
(4)、验收测试:
十九、单元测试、集成测试、系统测试、验收测试解释?
(1)单元测试又称模块测试,是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
(2)集成测试:在运行(可能是不完整)的应用中保证软件单元被结合后能正常操作的测试执行的阶段;主要测试模块与模块之间的借口,看能否结合没有差错
(3)系统测试:是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。
(4)验收测试:α测试和β测试;在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是无法预测的。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
二十、黑盒测试及白盒测试?
黑盒测试:黑盒测试又叫做功能测试或数据驱动测试。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明
白盒测试:此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
二十一、测试人员具体工作?
软件测试工程师:1、创作相关的测试计划和测试案例;2、识别可自动测试的区域;
3、参与组内的测试计划4、和测试案例以及测试脚本分析工作;5、手动或自动测试;
6、按照需求规格说明查证并验证各项功能;7、发现并报告bug,跟踪其状态;8、初步评估bug对产品其它部分的影响
测试组长:1、确定测试的策略2、参与对整个产品的完整测试计划的制定3、参与并管理测试4、评估bug对用户的影响5、跟踪关键bug状态6、管理测试工作和对象的资源7、参与面试新人8、交流状态和存在问题,并驱动问题的解决9、促进组内的交流
软件测试经理:1、定义时间进度表2、定义质量标准3、发起和计划长期的测试过程,使之规范化4、积极开发测试人员的技术技能5、组建测试队伍,招聘测试工程师6、合理安排各种资源7、负责制定产品测试所需的预算
二十二、什么时候停止测试?
发现所有的漏洞时菜停止测试是不可能的,关键在于是否经济
1、市场压力;2、质量目标;3、客户要求;4、费用约束
错误发现率:错误被发现的频率可以显示出系统的测试阶段是否接近完成
二十三、测试结束的标准是什么?
1、用例全部执行;2、覆盖率达到标准;3、缺陷率达到标准;4、其他指标达到质量标准
二十四、测试完成的标准?
1、 系统测试与用户需求说明书一致;2、功能测试用例通过率达到100%;3、非功
能性测试用例通过率达到95%;4、一、二级错误修复率应达到100%;5、三、四级错误修复率应达到80%以上;五级错误修复率应达到60%以上。
二十五、什么是测试用例?
测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以
便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。
注:开发一个以应用软件的测试案例的过程,需要全面、深入的考虑该软件的操作,所以有助于发现在其需求或设计里面的问题。因此,如果有可能,在开发周期中应当尽早准备测试案例。
二十六、如果错误太多无法测试怎么办?
在这种情况下,测试人员最好仔细研究报告,看错误或阻塞型的问题 (blocking-type
problems) 最初出现的地方,并把注意力放在最严重的错误上。由于这类问题会影响进度,并能反映出软件开发过程中的深层次的问题 (例如,部件测试或集成测试不充分、设计不良、不适当的建立和发布过程,等等),所以应当通知管理人员,并向他们提供一些证明文件。
二十七、时间不够,无法充分测试?
使用风险分析,确定测试的重点。
二十八、一个好的测试人员该具备的素质?
1、 沟通能力2、移情能力3、技术能力4、自信心5、外交能力6、幽默感7、很强
的记忆力8、耐心9、怀疑精神10、自我督促11、洞察力
二十九、开发与测试的关系?
开发与测试是一个有机的整体!测试依托与开发,测试也指导开发。
在产品的发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品
三十、常用的测试工具?
1、 功能测试工具——QTP
2、 性能测试工具——LoadRunner
3、 测试管理工具——TestDirector
4、 白盒测试工具——Nunit,Junit,C++Test,JTest
三十一、测试人员需要参与需求分析么?
如果条件允许,原则上来说,是越早介入需求分析越好,因为测试人员对需求理解越深刻,对测试工作的开展越有利,可以尽早的确定测试思路,减少与开发人员的交互,减少对需求理解上的偏差
一、软件测试的概念?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
二、软件测试的目的?
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
(1)/、测试是程序的执行过程,目的在于发现错误;
(2)、一个好的测试用例在于能发现至今未发现的错误;
(3)、一个成功的测试是发现了至今未发现的错误的测试。
想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。
测试的附带收获是,它能够证明软件的性能与需求说明相符合。
实施测试收集到的测试结果数据为可靠性分析提供了依据。
测试不能表明软件中不存在错误,它只能说明软件中存在错误。
三、软件测试的对象?
软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。
需求分析、概要设计、详细设计以及程序编码等各阶段所得到文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。
四、软件测试的重要性?
(1)、保证软件质量
(2)、研发成本和上线时间,节约预算。
五、测试的职责?
测试经理:制定测试计划,确保测试工作正常进行
测试人员:编写测试用例,搭建测试环境,执行测试并提出问题单,模块测试总结。
六、软件的分类?
按功能划分:系统软件、应用软件
按技术架构划分:单机版、B/S、C/S
按目标用户划分:产品软件、项目软件
七、B/S模式的特点?
优点:具有分布性特点,可以随时随地进行查询、浏览等业务处理;业务扩展简单方便,通过增加网页即可增加服务器功能;维护简单方便,只需要改变网页,即可实现所有用户的同步更新;开发简单,共享性强。
缺点:个性化特点明显降低,无法实现具有个性化的功能要求;操作是以鼠标为最基本的操作方式,无法满足快速操作的要求;页面动态刷新,响应速度明显降低;无法实现分页显示,给数据库访问造成较大的压力;功能弱化,难以实现传统模式下的特殊功能要求。
八、C/S模式的特点?
优点:由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快;操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求;C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
缺点:需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用
户群体,不能够实现快速部署安装和配置;兼容性差,对于不同的开发工具,具有较大的局限性;若采用不同工具,需要具有一定专业水准的技术人员才能完成。
九、测试工作的基本原则?
所有的软件测试都应追溯到用户需求;应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭;完全测试是不可能的,测试需要终止;测试无法显示软件潜在的缺陷;充分注意测试中的群集现象;程序员应避免检查自己的程序;尽量避免测试的随意性。
十、UML的解释?
它的全称是“统一建模语言”,它是一种用于描述,构造软件系统以及商业建模的语言。简单的理解就是它可以以一种直观的方式表示出一个系统地各项内容。
十一、软件开发模型?
1、瀑布模型;2、快速原型模型;3、增量模型;4、螺旋模型
十二、为什么软件会有毛病?
交流错误或者没有进行交流;软件的复杂性;编码错误;需求变更;时间压力;代码文档质量差;软件开发工具
十三、在软件开发过程中5个常见的问题及解决方法?
需求说明差;不切实际的时间表;测试不充分;不断增加功能;交流问题
可靠的需求;合理的时间表;适当的测试;尽可能坚持最初的需求;沟通
十四、什么是CMM?
CMM=Capability Maturity Model,即“性能完善模型”,由SEI开发。它是一个分5级的、可以描述结构 完善程度的模型,用它来说明所交付的软件的效能。它适用于大的机构,例如美国国防部的承包商。所以,它所涉及的许多质量控制过程适用于任何机构,如果合理地利用它,将会获益不浅。一个机构经过权威评审机构的评估,可以得到CMM等级。 十五、软件测试的生命周期?
项目启动、测试分析与计划、测试设计、测试执行、测试评估、验收测试、项目关闭 输出文档:测试计划、测试用例、问题单、评估报告、用户使用手册及操作指引 十六、V模型及其特征?
V模型:需求、功能、设计、编码(单元测试)、集成测试、系统测试、验收测试 特征:每个开发活动都有右边的测试活动相对应;软件开发过程是一个自顶向下,逐步细化的过程;测试过程是依相反顺序安排的自底向上,逐步集成的过程。
十七、W模型及其特征?
需求(需求测试)、功能(功能测试)、设计(设计测试)、编码(单元测试)、集成测试(构建)、系统测试(集成)、验收测试(安装)
特点:软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间;需求分析、概要设计、详细设计以及程序编程等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 十八、软件测试的分类,及解释?
(1)、单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能
(2)、集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构进行测试。
(3)、系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试
(4)、验收测试:
十九、单元测试、集成测试、系统测试、验收测试解释?
(1)单元测试又称模块测试,是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
(2)集成测试:在运行(可能是不完整)的应用中保证软件单元被结合后能正常操作的测试执行的阶段;主要测试模块与模块之间的借口,看能否结合没有差错
(3)系统测试:是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。
(4)验收测试:α测试和β测试;在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是无法预测的。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
二十、黑盒测试及白盒测试?
黑盒测试:黑盒测试又叫做功能测试或数据驱动测试。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明
白盒测试:此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
二十一、测试人员具体工作?
软件测试工程师:1、创作相关的测试计划和测试案例;2、识别可自动测试的区域;
3、参与组内的测试计划4、和测试案例以及测试脚本分析工作;5、手动或自动测试;
6、按照需求规格说明查证并验证各项功能;7、发现并报告bug,跟踪其状态;8、初步评估bug对产品其它部分的影响
测试组长:1、确定测试的策略2、参与对整个产品的完整测试计划的制定3、参与并管理测试4、评估bug对用户的影响5、跟踪关键bug状态6、管理测试工作和对象的资源7、参与面试新人8、交流状态和存在问题,并驱动问题的解决9、促进组内的交流
软件测试经理:1、定义时间进度表2、定义质量标准3、发起和计划长期的测试过程,使之规范化4、积极开发测试人员的技术技能5、组建测试队伍,招聘测试工程师6、合理安排各种资源7、负责制定产品测试所需的预算
二十二、什么时候停止测试?
发现所有的漏洞时菜停止测试是不可能的,关键在于是否经济
1、市场压力;2、质量目标;3、客户要求;4、费用约束
错误发现率:错误被发现的频率可以显示出系统的测试阶段是否接近完成
二十三、测试结束的标准是什么?
1、用例全部执行;2、覆盖率达到标准;3、缺陷率达到标准;4、其他指标达到质量标准
二十四、测试完成的标准?
1、 系统测试与用户需求说明书一致;2、功能测试用例通过率达到100%;3、非功
能性测试用例通过率达到95%;4、一、二级错误修复率应达到100%;5、三、四级错误修复率应达到80%以上;五级错误修复率应达到60%以上。
二十五、什么是测试用例?
测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以
便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。
注:开发一个以应用软件的测试案例的过程,需要全面、深入的考虑该软件的操作,所以有助于发现在其需求或设计里面的问题。因此,如果有可能,在开发周期中应当尽早准备测试案例。
二十六、如果错误太多无法测试怎么办?
在这种情况下,测试人员最好仔细研究报告,看错误或阻塞型的问题 (blocking-type
problems) 最初出现的地方,并把注意力放在最严重的错误上。由于这类问题会影响进度,并能反映出软件开发过程中的深层次的问题 (例如,部件测试或集成测试不充分、设计不良、不适当的建立和发布过程,等等),所以应当通知管理人员,并向他们提供一些证明文件。
二十七、时间不够,无法充分测试?
使用风险分析,确定测试的重点。
二十八、一个好的测试人员该具备的素质?
1、 沟通能力2、移情能力3、技术能力4、自信心5、外交能力6、幽默感7、很强
的记忆力8、耐心9、怀疑精神10、自我督促11、洞察力
二十九、开发与测试的关系?
开发与测试是一个有机的整体!测试依托与开发,测试也指导开发。
在产品的发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品
三十、常用的测试工具?
1、 功能测试工具——QTP
2、 性能测试工具——LoadRunner
3、 测试管理工具——TestDirector
4、 白盒测试工具——Nunit,Junit,C++Test,JTest
三十一、测试人员需要参与需求分析么?
如果条件允许,原则上来说,是越早介入需求分析越好,因为测试人员对需求理解越深刻,对测试工作的开展越有利,可以尽早的确定测试思路,减少与开发人员的交互,减少对需求理解上的偏差