软件测试之十个经典软件测试面试题

1.什么是软件测试,软件测试的目的?

  参考答案:

  什么是软件测试:

  ·软件测试就是在受控制的条件下对系统或应用程序进行*作并评价*作结果的过程,所谓控 制条件应包括正常条件与非正常条件。

  ·软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应 该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。

  ·软件测试贯穿于软件定义与开发的整个周期 ,软件的需求规格说明书 ,结构设计及程序编 *,都属于软件测试的对象。

  ·软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代*进行正确性检验的测试工作, 黑盒测试独立于程序代*,从用户的角度,通过一定的测试步骤与测试案例,验证软件功能、 性能等指标能否满足实际应用需求的测试工作。

  软件测试的目的:

  软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。

  2.软件测试的风险主要体现在哪里?

  参考答案:

  我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代*中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。

  因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。

资深软件测试专家之移动端测试系列 

  3.测试工具在测试工作中是什么地位?

  参考答案:

  国内的很多测试工程师对测试工具相当迷恋,尤其是一些新手,甚至期望测试工具可以取代手工测试。测试工具在测试工作中起的是辅助作用,一般用来提高测试效率。自动化测试弥补了手工测试的不足,减轻一定的工作量。实际上测试工具是无法替代大多数手工测试的,而一些诸如性能测试等自动化测试也是手工所不能完成的。

  对于自动测试技术,应当依据软件的不同情况来分别对待,一般自动技术会应用在引起大量重复性工作的地方、系统的压力点、以及任何适合使用程序解决大批量输入数据的地方。然后再寻找合适的自动测试工具,或者自己开发测试程序。一定不要为了使用测试工具而使用。

  4.发现的缺陷越多,说明软件缺陷越多吗?

  参考答案:

  这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。其中的原因主要如下:

  -代*复用、拷贝代*导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代*意味可能也复制了缺陷。

  -程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象,因此体力不只时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰时测试工程师大显身手的地方。

  “缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。

  5.所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

  参考答案:

  从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:

  -没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。

  -有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。

  -不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。

  最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。

  6.软件测试人员就是QA吗?

  参考答案:

  软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。

  软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

  7.如何减少测试人员跳槽带来的损失?

  参考答案:

  在IT行业里跳槽已经是一种司空见惯的现象,而且跳槽无论给公司还是给个人都会带来一定的损失。测试队伍也无疑会面临跳槽的威胁,作为测试经理管理者,只有从日常工作中开始做起,最能最大限度的减少损失。建议我们从以下两个方面做起:

  -加强部门内员工之间的互相学习,互相学习是建立学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉积下来,也就完成了隐性知识到显性知识的转化。

  -通常情况下,企业能为员工提供足够大的发展空间时,如果不是待遇特别低,员工都不会主动离开企业。因此我们要想留住员工,管理者就应该把员工的个人成长和企业的发展联系起来,为员工设定合理发展规划并付诸实现。不过这项要求做起来比较,要有比较好的企业文化为依托。

  8.测试产品与测试项目的区别是什么?

  参考答案:

  习惯上把开发完成后进行商业化、几乎不进行代*修改就可以售给用户使用的软件成为软件产品,也就是可以买“卖拷贝”的软件,例如Windows2000。而通常把针对一个或者几个特定的用户而开发的软件成为软件项目,软件项目是一种个性化的产品,可以是按照用户要求全部重新开发,也可以修改已有的软件产品来满足特定的用户需求。项目和产品的不同特点,决定我们测试产品和测试项目仍然会有很多不同的地方:

  -质量要求不同。通常产品的质量要高一些,修复发布后产品的缺陷成本较高,甚至会带来很多负面的影响。而做项目通常面向某一用户,虽然质量越高越好,但是一般只要满足用户要求就可以了。

  -测试资源投入多少不同。做软件产品通常是研发中心来开发,进度压力要小些。同时由于质量要求高,因此会投入较多的人力、物力资源。

  -项目最后要和用户共同验收测试,这是产品测试不具有的特点。

  此外,测试产品与测试项目在缺陷管理方面、测试策略制定都会有很大不同,测试管理者应该结合具体的环境,恰如其分的完成工作。

  9.和用户共同测试(UAT测试)的注意点有哪些?

  参考答案:

  软件产品在投产前,通常都会进行用户验收测试。如果用户验收测试没有通过,直接结果就是那不到“Money”,间接影响是损害了公司的形象,而后者的影响往往更严重。根据作者的经验,用户验收测试一定要让用户满意。

  实际上用户现场测试更趋于是一种演示。在不欺骗用户的前提下,我们向用户展示我们软件的优点,最后让“上帝”满意并欣然掏出“银子”才是我们的目标。因此用户测试要注意下面的事项:

  (1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。

  (2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释。争得时间后,及时修改缺陷来弥补。

  (3)永远不能欺骗用户,蒙混过关。道理很简单,因为软件是要给用户用的,问题早晚会暴露出来,除非你可以马上修改。

  和用户进行测试还要注意各种交流技巧,争取不但短期利益得到了满足,还要为后面得合作打好基础。

  10.如何编写提交给用户的测试报告?

  参考答案:

  随着测试工作越来越受重视,开发团队向客户提供测试文档是不可避免的事情。很多人会问:“我们可以把工作中的测试报告提供给客户吗?”答案是否定的。因为提供内部测试报告,可能会让客户失去信心,甚至否定项目。

  测试报告一般分为内部测试报告和外部测试报告。内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,这里不过多讨论,读者可以参考相关教材。这里主要讨论一下外部测试报告的写法,一般外部测试报告要满足下面几个要求:

  -根据内部测试报告进行编写,一般可以摘录;

  -不可以向客户报告严重缺陷,即使是已经修改的缺陷,开发中的缺陷也没有必要让客户知道;

  -报告上可以列出一些缺陷,但必须是中级的缺陷,而且这些缺陷必须是修复的;

  -报告上面的内容尽量要真实可靠;

  -整个测试报告要仔细审阅,力争不给项目带来负面作用,尤其是性能测试报告。

 资深软件测试专家之移动端测试系列

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
软件测试的定义 软件测试的目标 软件测试的原则 软件测试中验证和确认的区别 软件测试按照测试的基本策略可分为哪两种并加以详细说明 整个软件生命周期中,需要进行哪几项测试 系统测试的策略有哪些 文档测试主要包括哪些内容 停止测试的条件 测试的基本文档包括哪些 简要的说明一下软件工程中的V模型 为什么要开展测试工作 测试团队在项目中的基本责任是什么 软件缺陷的定义是什么 软件错误的分类有哪些 一个优秀的测试工程师需要具备的素质有哪些 软件质量的定义是什么 质量有哪6个特性 CMMI的中文名称是什么,共分为几级 缺陷报告的定义是什么 缺陷的来源有哪些 缺陷主要有哪些状态 软件缺陷报告有哪些属性 书写缺陷报告的基本原则(5C原则)是什么 一般情况下,缺陷报告的组织结包括哪些内容 缺陷报告需要注意的问有哪些 一般缺陷严重等级如何划分,并描述每个严重等级对应的错误内容 缺陷优先级常用的划分方法是什么 列出一些控件的名称 测试用例的定义 测试用例设计的步骤 测试用例设计的基本思想是什么 测试用例执行的步骤有哪些 黑盒测试用例设计有哪些方法 按照覆盖度由低到高写出白盒测试用例设计的方法 写出全球化、国际化和本地化的简称和它们之间的关系 国际化测试的特殊需求有哪些 本地化测试的基本内容是什么 一套完整的测试应该由哪些阶段组成 如何理解压力、负载、性能测试 所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗 软件测试人员就是QA吗 如何编写提交给客户的测试报告 当开发人员说不是bug时,你该如何应付

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

传说三哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值