1、为什么选择测试开发

答:首先,我认为的测开是测试和开发工作都在做的。一方面,据我了解,在近几年,国内对软件测试越来越重视,并且从用户角度来说,对于同类产品,可能会更加注重产品的质量和服务,所以我觉得测试的发展前景是非常好的。其次,测试在一个项目开发的过程中是非常重要的一环。测试人员的责任非常大,责任越大成就感就越大。我很喜欢这样的工作。另一方面,测开还有一部分开发工作,无论是自动化脚本还是测试工具或框架,都提高了测试的效率,为质量效率保证工作提供了有力的保障。我对这方面非常感兴趣,并且测开的所需技术广度也是很高,所以我认为测开会激发我对这个岗位的热爱和持续学习的态度。(并且来说,我目前具备了一些测开所必备的理论知识和技能并且还在不断地学习中,我认为我可以较快地胜任这个岗位。)

2、怎么理解测试开发:

答:首先从岗位名字来看,要求测开工程师即要懂测试,又要懂开发。其次这个岗位融合了开发角色和质量意识,要求我们兼具开发人员的技能和测试人员的思维。总的来说,测试开发工程师的定位就是保障产品的质量和提高测试的效率。

3、为什么选择测试:

答:一方面我做事情和处理问题喜欢刨根问底,喜欢把问题全都找出来再一一解决,喜欢并享受这个过程,另一方面因为国内计算机已经过了野蛮发展的阶段,所以以后在存量市场是以用户体验和质量取胜的,而测试是这其中最关键的一环,所以肯定会越来越受到重视,选择测试是看中了发展的前景,并且个人很喜欢站在客户的角度去看待产品,很适合这个行业,所以我选择测试。

4、怎么理解测试:

答:测试是无处不在的,撇开软件,从生活来看比如买回来一个东西,会去检查质量问题,考试交卷前会检查等其实这都是在测试,目的就是为了发现错误,避免影响应用体验。回到程序中,测试是产品上线的最后一道把关,如果测试工作做得到位,就能避免很多的问题,像复工后钉钉系统短崩、12306高峰期买票老进不去,这其实就是性能做的不够好,测试人员在性能测试时也没测出来它的饱和值,所以说,测试在软件中是非常必要的,可以找出软件中存在的问题。

你认为一个优秀的测试人员应具备什么优点?

我认为一个优秀的测试人员首先应该对测试有很浓厚的兴趣,对待工作有很强的责任感和压力感;思维方面应该不走寻常路,从逆向去发现问题;同时也应该具备一定的开发能力和文字功底,保证写出来的测试用例清晰可行;也应有很好的沟通能力,和周围的同时能很好地交流

什么是bug?怎样描述一个bug?bug的生命周期

答:总的来讲,程序没有实现用户的合理需求时就说明有bug。一般产品都会有规格说明书,在规格说明书合理且正确的情况下,这时要是程序和规格说明书不符就是bug;
一条bug记录最基本应该包含bug编号、bug所属模块和版本、bug的优先级、具体的问题描述还有预期行为的描述、bug的级别、还有它的发现日期以及谁发现的、修改日期怎么修改的谁修改的,以及回归结果等,有多个bug同时存在时应该条理化,必要时可以有错误截图和日志,帮助开发人员清晰的定位bug;
新发现一个bug提交到平台还没指派给开发时它的状态是new,分派给开发以后状态就变成了open。 如果开发直接认为这个bug不需要修改,就变成了rejected,要是开发觉得可以延迟修改,就是dalayed。要是直接修改的话,修改完就是fixed,测试回归通过以后就是closed,不通过reopen

说一下黑盒测试和白盒测试?

黑盒测试就是功能性测试,比较简单,不关心程序的内部实现,从用户角度很容易理解,只看输出结果和预期的是否一致,它的主要测试方法有等价类边界值、因果图、错误推测,它的优点是执行起来比较快,不关心内部细节,缺点是很多程序路径都没有被测试到,这就会存在隐藏问题,测试用例不清晰的话,测试很难执行。
白盒测试是结构性测试,需要去关注程序的源代码和它的内部逻辑结构,主要测试方法包括代码检查、程序编译、路径覆盖、逻辑覆盖、循环覆盖、静态结构分析等,它能仔细考虑软件的实现,对代码的测试比较彻底,能揭示隐藏在代码中的错误,因为测试基于代码,只能知道开发人员实现的对不对,而不能得知设计是否正确,系统庞大时测试成本机会很高。

编写测试用例的方法?

主要包括白盒测试(逻辑覆盖、循环覆盖、基本路径覆盖)和黑盒测试(等价类、边界值、错误推测法、因果图法、场景法、状态图、随机测试)

测试模型

测试模型有四种,vwhx,常用的有v模型和w模型,

v模型以编码为分界点,明确的标注了测试过程中存在的不同测试类型,开发阶段和测试阶段有明确的对应关系;但它仅仅把测试过程放在需求分析、系统设计之后的一个阶段,忽视了测试对需求的分析和验证;

w模型由两个v模型组成,代表了开发和测试两条线并行;测试的对象不仅仅是程序,需求设计同样也要测试,有利于尽早全面的发现问题;但需求、设计、编码等活动被视为是串行的,测试和开发活动也保持着一种线性的前后关系,上一阶段完全解除,才可正式开始下一阶段的工作不能够很好的支持迭代的开发模型,,无法支持敏捷开发模式;

软件测试级别?

单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。(测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试)

集成测试:(集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。主要目的是检查软件单位之间的接口是否正确。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性

验收测试:验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。总结验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务,即软件的功能和性能如同用户所合理期待的那样。测试内容:同系统测试(功能...各类文档等)

软件测试相关面经_白盒测试