软件测试
1、软件的定义?
- 软件是一系列按特定顺序组织的计算机数据和指令的集合,包括与计算机系统操作有关的程序、规程、规则、文件、文档和数据。软件被划分为系统软件、应用软件和中间件。软件不仅包括电脑程序,还包括与这些程序相关的文档,可简单地理解为程序和文档的集合。
2、为什么选择软件测试行业?
①互联网时代发展迅速,展望广阔,且本人对IT很感兴趣。
②互联网行业人才缺口大,受到各行各业广泛需求和关注。
③互联网行业薪资高于传统行业,可以提高个人生活水平和社交圈质量。
3、软件测试的概念?
- 通过执行程序,找出软件缺陷,对软件质量进行评估的一个过程
4、软件测试的目的?
①确保产品完成承诺的功能
②确保产品满足性能和效率的要求
③确保产品适应用户环境
5、软件测试的意义?
- 确保发布的产品符合用户的期望。
6、软件测试的原则?
①测试需追溯至用户需求。
②尽早启动测试。
③在测试工作开始前就进行测试计划。
④Pareto法则适用于软件测试。
⑤测试应从“小规模”开始,逐步转向“大规模”。
⑥为了达到最佳效果,应该由独立的第三方来构造测试。
⑦穷尽测试不可能。
⑧测试有风险。
⑨测试旨在发现缺陷。
⑩发现的缺陷越多,软件健全性越好。
⑪预防“杀虫剂”事件。
⑫不必修复所有软件缺陷。
⑬测试应遵循木桶原理。
⑭测试应遵循Good-enough原则。
⑮前进两步,后退一步。
7、软件测试中的二八定律?
①80%的缺陷聚集在20%的核心业务模块中。
②80%的bug隐藏在20%代码中。
③80%的bug由20%的测试人员发现的。
④20%的时间发现80%的bug,剩余80%的时间发现20%的bug。
⑤80%的时间用于测试计划、设计和实践,20%的时间用于测试执行。
⑥80%的bug通过静态测试发现,20%的bug则通过动态测试发现。
⑦80%的bug通过人工测试发现,20%的bug则通过自动化测试发现。
8、软件测试流程?
- 产品立项、确定需求分析、测试计划、测试用例(Test Case)、开发转测试、搭建测试环境、执行测试、提单/回归、测试报告、编写帮助文档、产品发布、产品维护
9、软件测试结束的标准?
①在系统测试过程中,一、二级缺陷数目达到项目质量管理目标要求,测试暂停返回开发。
②在开发生命周期内出现重大估算和进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据。
③如有新的需求变更过大,测试活动应暂停,待原测试计划和测试用例修改后,再重新执行测试。
④若开发暂停,则相应测试也应暂停,并备份暂停点数。
⑤所有功能和性能测试用例必须100%执行完成。
10、软件测试工作结束的条件?
①所有的测试需求都已经覆盖。
②全部系统测试用例已经通过测试,且测试经理已经批准系统测试报告。
③所有严重的问题都已经得到解决。
11、测试管理系统中,管理的核心是测试用例和缺陷。
12、测试方针描述了组织的测试原则,可以是文档形式或作为管理理念,规划了组织希望达到的测试目标。
13、测试策略文档描述组织的测试方法,包括风险管理、测试分级、测试阶段和概要测试活动。
14、测试文档是记录软件测试过程中的书面或图示信息,用于描述、定义、规定和报告要执行的软件测试及测试结果。
15、测试大纲由熟悉整个系统设计的设计人员编写,旨在明确测试内容和测试通过的标准,设计完整合理的测试用例,以便在系统实现后进行全面测试。
16、测试日志是监控测试过程、记录测试结果和软件质量评估的基础,同时也是数据分析和过程改进的重要依据。
17、测试日志的作用包括记录测试过程中的事件、描述被测系统或组件的测试结果以及作为测试报告的依据。
18、测试报告是指将测试过程和结果记录为文档,分析发现的问题和缺陷,为纠正软件质量问题提供依据,同时为软件验收和交付奠定基础。
19、软件测试文档有哪些?
需求分析说明书、测试计划、测试分析、测试用例、测试报告。
20、测试与调试的区别?
-
测试任务是:通过执行程序,暴露出潜在的错误,目的是:发现程序的错误
-
调试任务是:消除软件故障,保证程序可靠运行,目的是:纠正程序的错误
测试人员
1、测试人员的任务?
①寻找Bug;
②避免软件开发过程中的缺陷;
③衡量软件品质;
④关注用户需求。
总的目标是:确保软件的质量
2、测试人员的目标?
尽快发现尽可能多的缺陷,并确保修复这些缺陷。
3、测试人员具备的品质?
①有正确的态度,因为态度决定一切。
②具备专注和细致的品质。
③具备一定的开发技能。
④勇于追求问题的真相。
4、测试人员具备的素质和能力?
①强烈的责任心。
②良好的沟通能力。
③耐心、信心和细心。
④怀疑态度和缺陷预防意识。
⑤团队合作精神。
⑥一定的编程经验。
5、与开发员在bug问题上发生争执?
①自我检查:确定问题是否确实是bug。
②将问题详细地写在bug报告中,发给开发人员。
③发邮件给开发人员并抄送给领导,详细解释bug情况。
④找领导或者产品需求人员协商。
⑤请求测试组召开会议解决。
软件工程
1、软件工程的目标?
- 提高软件质量和生产效率,最终实现软件工业化生产
2、软件工程的核心内容?
- 开发、运行、维护和修复软件的系统方法
3、软件工程的主要环节?
- 人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护
模型
1、软件开发生命周期模型?
①大爆炸模型。
②边写边改模型。
③瀑布模型。
④螺旋模型。
⑤敏捷软件开发模型。
2、敏捷软件开发模型的特点?
- 注重快速交付、持续反馈和灵活变通,可提高产品质量和市场竞争力,但需高度自我组织和自我管理的团队,时间和成本不可预测。
3、敏捷软件开发的目的?
①通过过程和工具理解个人和交流的作用。
②通过全面的文档理解软件运行。
③通过合同和谈判得到客户的协作和认可。
④执行计划时需要响应变更。
4、软件测试过程模型?
①v模型
②w模型
③H模型
④X模型
⑤前置模型
5、前置模型的特点?
①开发与测试相结合
②测试与开发相结合
③对每个交付的内容进行测试
④设计阶段就进行测试计划和设计
⑤验收测试和技术测试保持相互独立
缺陷(bug)
1、以下五种情况中任意一种就可以称为缺陷:
①软件未能实现产品说明书中标明的功能。
②软件出现了产品说明书指明不会出现的错误。
③软件功能超出产品说明书指明的范围。
④软件未能实现产品说明书未明确但应达到的目标。
⑤软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或最终用户认为不好。
2、缺陷产生的原因?
①需求不断变化
②工期短、任务大。
③程序设计错误。
④文档不完善。
⑤沟通交流不够。
⑥软硬件支持不完善。
⑦软件的复杂性
3、如何处理针对项目中模棱两可的bug?
①检查界面交互设计文档,提出所有不满足的问题。
②检查质量手册文档,提出所有不满足的问题。
③审核需求文档并提出所有不满足需求的问题。
④与产品经理沟通并请求其判断是否可以提单。
4、 为何要进行管理bug?
①及时跟踪每个缺陷
②确保处理每个缺陷
③收集缺陷数据并进行数据分析。
此外,缺陷管理还是组织过程的一种财富。
5、遇到不可重现的bug,该怎么办?
①回忆步骤并尝试重现操作。
②提交bug与开发沟通。
③后续回归测试时重点关注。
④如果无法重现或没有信息,可以请求开发增加监控日志以便于分析问题。
⑤如果问题严重但无法重现,可以要求开发检查代码进行审查。
6、缺陷管理工具有哪些?
- 禅道(ZenTao)、Bugzilla、ClearQuest、JIRA、Quality Center
7、缺陷的状态有哪些?
- 已提交、已激活、已解决、已关闭
8、缺陷报告单的分类?
- 可以按照缺陷所属模块、严重等级、优先级、引入原因或重现率进行分类。
9、缺陷报告单的内容?
①缺陷编号
②缺陷模块
③缺陷位置
④缺陷标题
⑤前置条件
⑥操作步骤
⑦缺陷结果
⑧预期结果
⑨缺陷级别
⑩缺陷状态
10、缺陷报告写作准则(5C准则)?
①Correct(准确)
②Concise(简洁)
③Clear(清晰)
④Complete(完整)
⑤Consistent(一致)
11、缺陷报告(bug单)处理流程
①软件测试人员提交缺陷报告;
②测试负责人审核通过后将缺陷报告分配给相关的开发人员修改;
③缺陷被修改后由测试人员根据缺陷报告中的修改记录进行返测;
④返测通过的缺陷报告由负责人关闭,未通过的直接返回开发人员重新修改,缺陷报告直到缺陷被修复以后才关闭
12、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
- 在工作中,一条软件缺陷记录应包括缺陷编号、缺陷模块、缺陷位置、缺陷标题、前置条件、操作步骤、缺陷结果、预期结果、缺陷级别和缺陷状态。要有效地发现Bug,应参考需求和详细设计等前期文档来设计高效的测试用例,并严格执行这些测试用例。发现问题后,应充分确认并确定其存在,然后再发布Bug,这样才能提高Bug记录的质量。
测试计划/报告
1、测试计划的概念
- 指导测试过程的纲领性文件包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容
2、测试计划的目的:
- 粗略地估计测试大致需要的周期和最终测试报告递交的时间。
3、测试计划应该包含哪些内容?
- 项目简介、测试方法、测试对象、测试组织、测试项目、工作交付件。
4、测试用例是特定的操作序列、条件、期望结果和相关数据的集合,旨在实现某个特定目标的测试。
5、Test Case包含的八大元素有哪些?
- 用例编号、测试模块、用例标题、环境准备、前置条件、操作步骤、预期结果、测试结果
6、Test Case按照优先级分类
①优先级别高
②中等优先级别
③一般优先级别
④低等级别
7、软件功能需求规格说明书,是测试用例设计的主要参考文档
8、测试报告应该包含哪些内容?
- 项目简介、测试目的、测试环境、软件版本信息、测试结果分析、测试时间统计、测试评估、总结与评价
测试分类
1、测试按照类型分为:
- 功能测试(黑盒测试)
- 非功能性测试
- 白盒测试
- 变更相关的测试
2、黑盒测试又称为功能测试或数据驱动测试,测试人员不考虑逻辑结构和内部特性,只根据程序的需求说明书来检查功能是否符合要求。
3、黑盒测试常见的方法有八种:等价类划分法、随机测试法、错误推断法、边界值分析法、场景法、因果图法、判定表法、正交表法。
4、白盒测试也称结构测试或逻辑驱动测试,测试人员可以利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
5、白盒测试常见的方法有六种:语句覆盖法、判定覆盖法、条件覆盖法、判定/条件覆盖法、条件组合覆盖法、路径覆盖法。
6、黑盒测试优点:适应于阶段测试,有充分性度量手段,容易从产品功能角度测试,可生成较多工具支持。
黑盒测试缺点:某些代码得不到测试,若规格说明有误则无法发现,不易进行充分性测试。
白盒测试优点:可构成测试数据使特定程序部分得到测试。
白盒测试缺点:不易生成测试数据,无法对未实现规格说明的部分进行测试,工作量大,通常只用于单元测试,有应用局限。
7、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点?
-
黑盒测试的优点是简单,不需要了解程序内部的代码,可以从用户角度出发。缺点是覆盖率较低,复用性较低。
-
白盒测试的优点是可以帮助测试人员增大代码覆盖率,发现代码中的问题。缺点是无法测试所有运行路径,只能测试开发人员的代码,测试开销会很大。
8、黑盒测试方法简介:
①等价类划分法:将输入域划分为若干部分,并从每个部分中选取代表性数据作为测试用例,包括有效等价类和无效等价类。
②边界值分析法:测试输入或输出的边界值的黑盒测试方法。
③错误推测方法:列举出程序中可能发生的错误和特殊情况,并选择测试用例。
④因果图法:通过图解法分析输入的各种组合情况,从而设计测试用例。
⑤判定表:包括条件桩、条件条目、动作桩和动作条目。
⑥正交表法:从大量的实验点中挑选有代表性的点,应用正交表,合理地安排实验的一种科学的实验设计方法。
⑦随机测试法:随机选取所有可能输入值中的测试输入数据。
⑧场景法:根据不同的场景,设计符合需求的用例。
9、有了“黑盒”测试为什么还要“白盒”测试?
黑盒测试只能观察软件的外部表现,不能确定软件是否正确,因为程序可能用错误的运算方式得出正确的结果。白盒测试能发现程序中的隐患,例如数据溢出、内存泄漏、误差累计问题,黑盒测试在这方面存在不足。因此,黑盒测试和白盒测试都是必需的,以确保软件的正确性。
10、测试按照阶段性分为:
- 冒烟测试(Smoke Testing)
- 单元测试(Unit Testing)
- 集成测试(Integration Testing)
- 系统测试(System Testing)
- 验收测试(Acceptance Testing)
11、冒烟测试是软件测试的一种初始、快速的测试工作。目的是确定软件或新版本是否可以进行下一步的正式测试。如果该软件每5分钟与系统冲突,并导致系统崩溃,说明该软件存在问题,目前不具备进行进一步测试的条件。
12、单元测试:也称为模块测试,旨在对软件设计的最小单位——程序模块进行正确性检验。其目的是检查每个程序单元是否能正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,以便发现各模块内部可能存在的各种错误。
13、集成测试又称组装测试或联合测试,是在单元测试基础上对单元模块之间的连接和组装进行的测试。
14、集成测试的测试策略有哪些?
自顶向下集成、自底向上集成、大棒集成、三明治集成、持续集成。
15、单元测试通常是单人执行,而集成测试通常是多人执行或第三方执行
16、系统测试
- 在考虑所有的情况下,对整个系统进行的测试。
17、验收测试是一种以用户为主的测试方法,软件开发人员和QA人员应该参与其中。在测试过程中,除了考虑软件的功能和性能之外,还应该对软件的可移植性、兼容性、可维护性、错误恢复功能等进行确认。
18、验收测试的目的是建立对系统、系统的某部分或特定的系统非功能特征建立信心。
19、Alpha测试是在开发场地进行的测试,由潜在的客户/用户进行,开发者在旁边记录用户发现的问题。测试环境受开发方控制,用户数量少且时间较集中。
Beta测试是在用户自己的环境下进行的测试,由潜在的客户/用户进行,开发者不在测试现场。通常是由软件开发者向用户散发β版软件,然后收集用户的意见。测试环境不受开发方控制,用户数量相对较多,时间不集中。
20、回归测试是重复测试已修改过缺陷的程序,以检测是否引入了新的缺陷或者已有的缺陷是否被屏蔽。
21、按测试方法可以分为:静态测试(一定程度上也可以称为白盒测试)、动态测试(一定程度上也可以称为黑盒测试)
22、持续集成测试允许团队按需执行测试,而不是尽可能多地执行测试。持续测试通过提供即时反馈,增强了团队的信任;它也提高了业务利益相关者对交付的信心,并减少了项目成本,实现更快的交付解决方案,同时提供高质量、可靠的解决方案。
项目
1、一个完善的项目团队应该具备哪些人员?
- 项目经理、产品经理、软件开发经理、软件测试经理、软件开发工程师、软件测试工程师
2、需求分析的概念?
- 需求分析是测试的基础,用来确定测试工作的范围和作用。测试需求必须是可核实的,否则就不是真正的测试需求。
3、单元测试依据是详细设计说明书,集成测试依据是概要设计说明书
4、产品部门编写产品需求说明书后,开发人员开始编写概要设计说明书和详细设计说明书。
- 概要设计描述软件的结构,包括模块组成、层次结构、模块间的调用关系以及每个模块的功能。
- 详细设计阶段对每个模块的功能进行具体描述,将功能描述转化为精确、结构化的过程描述。
5、检查表(Check List)帮助评审员发现可能存在的缺陷,具有高可靠性和高效率的特点。
6、改进意见提供了改进组织过程的方案和建议,实施这些意见可以帮助组织提高等级水平。
7、质量成本是用于度量测试效率和价值的成熟方法。
8、风险是指意外结果发生的可能性。
9、风险管理主要有三种活动:
①风险识别
②风险分析
③风险减轻(也被称为风险控制)
10、什么是软件质量保证?软件质量保证人员与开发人员的关系如何?
- 软件质量保证(SQA)通过确保软件过程的质量来保证软件产品的质量。SQA和开发人员之间有管理上的独立性,两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题。
其它
1、国内的测试人员与开发人员的比例是1:4。
2、迭代是反复反馈的过程,目的是达到最终目标或成果。每次对过程的重复称为一次迭代,结果会作为下一次迭代的初始值。
3、如何区分外包和自研IT公司?
外包公司是将一些工作交给专业组织来完成,而自研公司则是在签约地点工作。
外包公司有两种形式:一种是把员工派到其他公司工作,另一种是承接外部项目。
4、输入三个整数,判断三个整数能否构成一个三角形,请用黑盒测试方法中的一种设计出相应的测试用例并详细说明所使用的黑盒测试方法。
使用等价类划分法设计测试用例,测试输入的三个整数能否构成三角形。
- 有效等价类包括输入三个正整数和输入三个正小数。
- 无效等价类包括输入为空、输入为负整数、输入为非数字、输入少于三个数和输入特殊字符等。
5、判断题:
①好的测试员应坚持不懈的追求完美。(错)
②如果没有产品说明书和需求文档的条件下,就没法进行动态黑盒测试。(错)
③软件测试最终的目的是为了找到软件程序所有的缺陷。(错)
④所有的软件系统,总是首先设计出黑盒测试用例。(对)
⑤所有软件都有一个用户界面,因此必须测试易用性。(对)
标签:面试题,黑盒,测试用例,测试,软件,缺陷,软件测试 From: https://www.cnblogs.com/xiaoxiangstudy/p/17277779.html