软件测试工程师面试宝典(-59页-软件测试基本理论知识试题汇总)内容摘要:

dbms 读取一条记录时发生哪些事件。 什么是软件质量。 软件包是什么。 概括地说, 软件质量 就是 “软件与明确地和隐含地定义的需求相一致的程度 ”。 具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 软件包 (SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。 软件包由一个基本配置和若干可选部件构成,既可以是源代码形式,也可以是目标码形式。 用户手册和指南等文档是软件包的重要组成部分。 软 件产品质量特性是什么。 确保软件质量优良程度的内部因素称为 软件质量特性。 比较权威的软件质量特性划分应推 Boehm 提出的十二个基本质量特性。 分别为:设备无关性、完整性、精度、一致性、设备效率、可访问性、可通讯性、结构性、自说明性、简明性、易读性、可扩充性。 什么是软件质量保证。 其主要任务是什么。 软件质量保证 :为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。 主要任务: (1)用户要求定义 (2)力争不重复劳动 (3)掌握开发新 软件的方法 (4)组织外部力量协作 (5)排除无效劳动 (6)发挥每个开发者的能力 (7)提高软件开发的工程能力 (8)提高计划和管理质量 为了提高软件的质量和软件的生产率,软件质量保证的主要任务大致可归结为 8 点。 (1)用户要求定义:软件质量保证人员必须熟练掌握正确定义用户要求的技术,包括熟练使用和指导他人软件测试工程师面试宝典 10 使用定义软件需求的支持工具。 必须十分重视领导全体开发人员收集和积累有关用户业务领域的各种业务的资料和技术技能。 (2)力争不重复劳动:利用已有软件成果是提高软件质量和软件生产率的重要途径。 为此,不要只考虑如何开发新软件,而首先应考虑哪些既有软件可以复用,并在开发过程中,随时考虑所生产软件的复用性。 (3)掌握开发新软件的方法:对开发新软件的方法已经过长期的探索和积累,最普遍公认的成功方法就是软件工程学方法。 标准化、设计方法论、工具化等都属此列。 应当在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方法和工具。 (4)组织外部力量协作:一个软件自始至终由同一软件开发单位来开发也许是最理想的。 但在现实中常常难以做到。 因此需要改善对外部协作部门的开发管理。 必须明确规定 进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制。 (5)排除无效劳动:最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。 定量记录返工工作量,收集和分析返工劳动花费的数据非常重要。 另一种较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发。 这多是因软件开发计划不当,或者开发信息不流畅造成的。 为此,要建立互相交流、信息往来通畅、具横向交流特征的信息流通网。 (6)发挥每个开发者的能力:软件生产是人的智能生产活动,它依赖于人的能力和开发组织团队的能力。 开发者 必须有学习各专业业务知识、生产技术和管理技术的能动性。 管理者或产品服务者要制定技术培训计划、技术水平标准,以及适用于将来需要的中长期技术培训计划。 (7)提高软件开发的工程能力:要想生产出高质量的软件产品必须有高水平的软件工程能力。 即在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。 (8)提高计划和管理质量:对于大型软件项目来说,提高工程项目管理能力极其重要。 提高管理能力的方法是重视和强化项目开发初期计划阶段的项目计划评价,计划执行过程中及计划完成报告的 评价。 将评价、评审工作在工程实施之前就列入整个开发工程的工程计划之中。 正确地评价开发计划和实施结果,不仅可以提高软件开发项目管理的精确度,还可以积累项目管理经验资料,提高日后进行项目预算的精确度。 所以对 “计划 ”的质量管理非常重要。 1软件质量保证体系是什么。 国家标准中与质量保证管理相关的几个标准是什么。 他们的编号和全称是什么。 软件质量保证体系 为满足 质量要求 和 实施 质量管理 ,进行全部有计划和有系统的活动所需的 组织结构 、 程序 、 过程 和资源的总称。 GB/ T 19001 质量体系设计/开发、生产、安装和服务的质量保证模式( idtISO 9001) GB/ T 19002 质量体系生产和安装的质量保证模式( idt ISO 9002) GB/ T 19003 质量体系最终检验和试验的质量保证模式( idt ISO 9003) GB/ T 19004 质量管理和质量体系要素指南( idt ISO 9004) 1为什么要进行软件测试 ?软件测试的目的是什么 ? 为什么进行单元测试。 任何软件在开发过程中都会留下缺陷, 带有缺陷的软件产品如果提交出去,可能会给公司带来不可估量的损失,我们必须在客户之前发现尽可能多的问题,从而保障客户满意。 测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。 单元测试一般来说非常必要: ( 1) 现在强调测试的尽早介入。 相对而言,单元测试会在开发比较早的阶段就会进行,发现和修改缺陷的成本比较低,效率比较高。 ( 2) 代码级的很多问题,通过相对后期的系统测试是很难发现的,或者发现问题的成本非常大。 1什么是软件测试。 软件测试的目的与原则、策略以及软 件测试的意义 ? 软件测试 :使用人工或自动手段,努力发现产品中每个可以想象到的故障或弱点的过程。 其目的 在于软件测试工程师面试宝典 11 检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 最终目的是令客户满意。 软件测试原则:  应该在测试开始之前的相当长时间,就制定出测试计划。  测试应该从小规模开始,并逐步进行“大规模”测试  穷举 测试 是不可能的。  所有的测试都应该能追溯到用户需求。  应把 “尽早和不断地进行软件测试 ”作为软件开发者的座右铭。 实践证明单元测试能够尽早发现问题,减少后期测试的错误量。 可以采用 Junit 和 Jtest 来辅助进 行单元测试。  测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三部分组成。  应当避免由程序员检查自己的程序。 (指后期系统测试阶段,不包括单元测试)  测试用例的设计要确保能覆盖所有可能路径。 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 不合理的输入条件是指异常的,临界的,可能引起问题的输入条件。  充分注意测试中的群集现象 即缺陷的二八定理。 经验表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。 应该对错误群集的程序段进行重点测试。  严格执行测试计划,排除测试 的随意性。 测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准。  应当对每一个测试结果做全面的检查。  妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。  对于相对复杂的产品或系统来说,没有 Bugs 是不可能的,我们只能想办法把软件的 Bug 数控制在可以忍受的范围内。  缺陷具有免疫性,测试人员要根据新版本的特点去修改维护测试用例。  为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。 软件测试策略: ① 数据完整性测试 ② 功能测试 ③ 易用性原则(用户界面的测试、优秀 UI 的 7 个组成要素、软件中的辅助特性) ④ 性能测试 ⑤ 配置测试 ⑥ 兼容性测试 ⑦ 本地化测试 软件测试策略是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。 软件 测试 的策略、方 法和技术是多种多样的。 对于软件 测试 技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态 测试 和动态 测试。 从 测试 是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒 测试 和黑盒 测试。  静态 测试 与动态 测试 所谓静态 测试 是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。 静态测试包括代码检查、静态结构分析、代码质量度量等。 它可以由人工进行,也可以借助软件工具自动进行。 动态 测试 是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。 动态测试包括:( 1)功能确认与接口测试( 2)覆盖率分析( 3)性能分析( 4)内存分 析  黑盒测试与白盒测试 若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试 (Blackbox Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。 它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。 黑盒测试的方法有 若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试 (Whitebox Testing)方法。 其主要方法有逻辑驱动、基路 测试 等,软件测试工程师面试宝典 12 主要用于软件验证。  软件测试过程 单元测试 针对每个程序的模块,主要测试 5个方面的问题:模块接口、局部数据结构、边界条件、独立的路径和错误处理。 集成测试:自顶向下的测试、自底向上的测试、回归测试、烟雾测试 系统测试: 恢复测试、安全测试、压力测试、性能测试 确认测试: 测试、 测试 软件调试:蛮力法、回溯法、原因排除法 软件测试的意义: a. 发现软件错误; b. 有效定义和实现软件成分由低层到高层的组装过程; c. 验证软件是否满足任务书和系统定义文档所规定的技术 d. 为软件质量模型的建立提供依据。 1软件测试项目从什么时候开始。 为什么。 软件测试应该在需求分析阶段就介入 ,因为测试的对象不仅仅是程序编码 ,应该对软件开发过程中产生的所有产品都测试 ,并且软件缺陷存在放大趋势 .缺陷发现的越晚 ,修复它所花费的成本就越大 . 1 需求分析 的任务是什么。 有什么作用。 需求分析的过程和意 义。 需求分析的 任务 : • 深入描述软件的功能和性能 • 确定软件设计的约束和软件同其它系统元素的接口细节 • 定义软件的其它有效性需求 需求分析的作用: 确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 需求分析的过程和意义: (1) 问题识别  从系统的角度来理解软件并评审软件范围是否恰当  确定对目标系统的综合要求,即软件的需求  提出这些需求实现条件,以及需求应达到的标准 (2) 分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约 束,分析它们是否满足功能要求,是否合理。 剔除其不合理的部分,增加其需要部分。 最终综合成系统的解决方案,给出目标系统的详细逻辑模型。 (3) 编制需求分析阶段的文档  软件需求说明书  数据要求说明书  初步的用户手册  修改、完善与确定软件开发实施计划 (4) 需求分析评审  系统定义的目标是否与用户的要求一致。  系统需求分析阶段提供的文档资料是否齐全。  文档中的所有描述是否完整、清晰、准确反映用户要求。  与所有其它系统成分的重要接口是否都已经描述。  被开发项目的数据流与数据结构是否足够,确定。  所有图表是否清楚,在 不补充说明时能否理解。 软件测试工程师面试宝典 13  主要功能是否已包括在规定的软件范围之内,是否都已充分说明。  设计的约束条件或限制条件是否符合实际。  开发的技术风险是什么。  是否考虑过软件需求的其它方案。  是否考虑过将来可能会提出的软件需求。  是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。 需求分析的意义: 软件工程理论认为,在软件生命周期中,需求分析( Requirements Analysis)是最重要的一个阶段。 软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓 “磨刀不误砍柴功 ”。 在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。 1请画出软件测试活动的流程图。 ( 8 分) 测试需求 测试计划 测试用例设计 执行测试用例 结果分析 缺陷解决 回归测试 1试叙述对一个软件项目测试的全过程。 ( 10 分 ) (1)项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。 项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。 然后 SQA 进入项目,开始进行统计和跟踪 (2)开发人员根据需求文档完成需求分析文档,测试人员进。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。