第一章软件工程及UML1.【基础题】UML:UnifiedModelingLanguage它是一种用于描述、构造软件系统以及商业建模的语言。简单的理解就是它可以以一种直观的方式表示出一个系统的各项内容。2.【基础题】软件开发模型有哪些?答:瀑布模型,快速原型模型,增量模型,螺旋模型。3.【基础题】软件质量因素有哪些?答:正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等。4.【基础题】经常采用的软件质量检查措施有哪些?1)事先把检查的主要内容制成一张表,使检查活动集中在主要问题上2)只评审工作,不评审开发者3)建立一个议事日程并遵循它4)不要花太多的时间争论和辩驳5)说清楚问题所在,但不要企图当场解决所有问题6)对检查人员进行适当的培训第二章软件测试基础1.【基础题】软件有哪些分类?2.【基础题】什么是软件测试?答:使用人工或自动手段,运行或检查某个系统的过程。其目的在于检查它是否满足规定的需求或弄清预期结果与实际结果之间的差别。3.【基础题】什么是Bug?答:软件的Bug指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件Bug分为以下三类:1)没有实现的功能2)完成了用户需求的功能,但是运行时会出现一些功能或性能上的问题3)实现了用户不需要的多余的功能4.【中等题】SQA与测试的区别?1)测试是在发现问题,SQA是在预防问题2)测试时Bug已经存在了,而SQA则需要将Bug扼杀在出现之前3)测试作为软件生命周期的一部分,其过程也要受到SQA监督5.【中等题】CMM:CapabilityMaturityModel,即“能力成熟度模型”。6.【提高题】CMM等级如何划分并简要说明?答:第一级:初始级:在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。第二级:可重复级:在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。第三级:定义级:在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。第四级:定量管理级:在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案,要对所有项目的重要的过程活动进行生产率和质量的度量。软件产品因此具有可预期的高质量。第五级:优化级:在这个等级,整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程进行修改的建议。7.【基础题】测试工作的基本原则?所有的软件测试都应追溯到用户需求应当把“尽早地和不断地进行软件测试”作为软件测试者地座右铭完全测试是不可能的,测试需要终止测试无法显示软件潜在的缺陷充分注意测试中地群集现象程序员应避免检查自己地程序尽量避免测试的随意性8.【中等题】测试工具分类及常用测试工具?答:功能测试工具—QTP性能测试工具—LoadRunner测试管理工具—TestDirector白盒测试工具—Nunit,Junit,C++Test,JTest,BoundsChecker,Logiscope第三章缺陷管理1.【基础题】缺陷的严重等级划分与描述?严重:系统崩溃、数据丢失、数据毁坏较严重:操作性错误、错误结果、遗漏功能一般:小问题、错别字、UI布局、罕见故障建议:不影响使用的瑕疵或更好的实现2.【基础题】缺陷的优先级别划分与描述?最高优先级:立即修复,停止进一步测试次高优先级:在产品发布之前必须修复中等优先级:如果时间允许应该修复最低优先级:可能会修复,但是也能发布3.【中等题】缺陷的严重等级和优先级别之间的关系?一般地,严重等级高的软件缺陷具有较高的优先级。严重等级高说明缺陷对软件造成的质量危害性大,需要优先处理,而严重等级低的缺陷可能只是软件不完美,可以稍后处理。严重等级高优先级不一定高。这有两种情况:一种是如果某个严重的软件缺陷只在非常极端的条件下产生,则没必要马上解决;还有一种情况是,如果修正一个软件缺陷需要修改软件的整体架构,可能会产生更多潜在的缺陷,而且软件由于市场压力必须尽快发布,那么即使缺陷严重等级很高,是否要修复还需要全盘考虑。严重等级低优先级不一定低。比如软件名称或公司名称拼写错误,虽然属于界面错误,严重等级不高,但是关系到软件和公司的市场形象,必须尽快修正。由此可见,缺陷严重级别和优先级之间没有必然的联系。实际操作时要根据具体情况来判断缺陷严重级别和优先级。4.【中等题】缺陷的一般处理流程?第四章测试方法1.【基础题】黑盒测试方法有哪些?答:等价类划分法,边界值分析法,因果图法,判定表驱动法,决策表法,错误推测法,正交试验法,功能图法,场景法。2.【基础题】简述黑盒测试的综合策略?首先应用场景法画出被侧软件的总体业务流程。然后针对某个具体页面或模块进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有效测试,这是减少工作量和提高测试效率最有效的方法。在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验。对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法。对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。功能图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据。3.【基础题】等价类划分法中等价类分为有效等价类和无效等价类4.【基础题】场景法中流程分为基本流和备选流。5.【基础题】因果图法中基本状态有恒等非或与,约束条件有E(互斥)I(包含)O(唯一)R(要求)M(屏蔽)第五章测试策略1.【基础题】常见的测试策略有哪些?界面测试、功能测试、易用性测试、安装卸载测试、兼容性测试、数据库测试、可靠性测试、安全性测试、文档测试2.【基础题】Web应用测试的功能测试主要测试哪几个方面?链接测试、表单测试、Cookies测试、设计语言测试、数据库测试3.【基础题】Web应用测试的性能测试主要测试哪几个方面?连接速度测试、压力测试、负载测试4.【基础题】Web应用系统客户端兼容性测试主要测试哪几个方面?平台测试、浏览器测试5.【提高题】Web应用系统的安全性测试区域主要有哪些?现在的Web应用系统基本采用先注册,后登录的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登录而直接浏览某个页面等Web应用系统是否有超时的限制,也就是说,用户登录后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登录才能正常使用为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题6.【中等题】数据库测试包括哪些方面?数据库容量测试,包含大容量测试和大记录量测试数据完整性测试,包括主键,外键,数据类型,长度,索引等合理性的测试7.【中等题】兼容性测试包括哪些方面?硬件兼容性,包括CPU,内存,硬盘,打印机等测试软件兼容性,包括操作系统,浏览器,数据库,以及其他软件等兼容性测试8.【基础题】界面测试包括哪些方面?整体界面测试,包括易用性,规范性,合理性,美观与协调,一致性界面元素测试,包括窗口,菜单,图标,鼠标,文字,辅助系统等第六章测试分类1.【基础题】分别解释什么是单元测试、集成测试、系统测试、验收测试以及它们之间的关系?单元测试中,单元是认为规定的最小的被测功能模块,其具体含义需要根据实际情况来判定。如:在C语言中单元一般指一个函数;在Java中单元一般指一个类;在图形化软件中单元也可以指一个窗口或一个菜单。单元测试的依据主要有两个:一是源程序本身,包括代码和注释;还有一个是项目的《详细设计》文档。集成测试是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试。重点测试不同模块的接口部分,检查各个单元模块结合到一起能否协同配合,正常运行。集成测试一般由白盒测试工程师或开发人员进行。集成测试应该在单元测试之后进行。但实际项目中,如果等到所有单元测试都完成再进行集成测试则效率太低,所以往往单元测试和集成测试同步进行。也即是:在单元测试中先测试几个单元的自身功能,然后再集成测试一下这几个单元的接口(即参数传递)。集成测试的依据是单元测试的模块以及《概要设计》文档。集成测试之后,就进行系统测试。系统测试是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统是否能和系统(包括硬件、外设、网络和系统平台、支持平台等)正确配置、连接,并满足用户需求等。系统测试将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。主要依据是《系统需求规格说明书》文档。验收测试是指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,用户决定是接收或拒收系统。验收测试在系统测试后期进行,以用户测试为主,或者有测试人员等质量保障人员共同参与的测试。它是软件正式交给用户使用的最后一道工序。2.【中等题】什么是α测试和β测试?α测试指的是由用户、测试人员、开发人员等共同参与的内部测试β测试指的是内测后的公测,即完全交给最终用户测试3.【基础题】功能测试分为哪几种?逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试4.【提高题】性能测试主要有几种并逐一解释?时间性能:主要指软件的一个具体事务的响应时间空间性能:主要指软件运行时所消耗的系统资源一般性能测试:指的是让被测试系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试稳定性测试:也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定程度负载测试:指让被测试系统在其能忍受压力的极限范围之内连续运行,来测试系统的稳定性压力测试:指持续不断给被测试系统增加压力,直到将被测试系统压垮为止,用来测试系统所呢承受的最大压力5.【提高题】分别解释什么是回归测试、冒烟测试、随机测试?回归测试是指对软件的新的版本测试时,重复执行上个版本测试时的用例。回归测试可以用在任何测试阶段进行,既有黑盒测试的回归,也有白盒测试的回归。冒烟测试就是先保证系统能跑的起来,不至于让测试工作做到一半突然出现错误导致业务中断。目的就是先通过最基本的测试,如果最基本的测试都有问题,就直接打回开发部了,减少测试部门时间的浪费。随机测试是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性错误。在实际项目中,一般都是先做大规模正规测试,再辅助一些随机测试。随机测试可能发现一些隐蔽的错误,但是无法统计代码覆盖率和需求覆盖率,很难进行回归测试。我们应该先做正规测试,如果时间允许的话,再辅助一些随机测试。第七章测试管理1.【中等题】简述需求分析的任务?确定对系统的综合要求(功能需求,性能需求,出错处理需求,接口需求,约束,将来可能提出的需求)分析系统的数据要求(软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化)导出系统的逻