软件测试的几个经典问题

其实这些问题真的在哪个论坛里都有,不过奇怪的也是,每次面试都会遇到,无论是自己面试还是给别人面试。。

 

PS:声明一下,这里的问题基本都不是原创的,答案呢,在软件测试百家争鸣,百花齐放的时代也是丰富多彩的。但是道理都差不多。仅作为参考,呵呵~~

问题一:什么是软件测试

1。出自(IEEE, 1986; IEEE, 1990).

Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features ofthe software item

就是一个通过分析软件和需求之间的差异,发现bug,对软件的功能进行评价的过程。

2。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。

3。软件测试是为了发现错误而执行程序的过程。

这一种也是大多数文档和书籍进行的定义,其实和第一个定义没有什么区别。

问题二:什么是测试案例”?

测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。

问题三:如果时间不够,无法进行充分的测试怎么办?

使用风险分析,确定测试的重点。

由于很少有机会对一个应用软件进行所有可能的测试 (包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西),对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素

ü  对于该项目的用途而言,哪种功能最重要?

ü  哪种功能对用户最明显?

ü  哪种功能对安全影响最大?

ü  哪种功能对用户最有用?

ü  对客户来说,该应用软件的哪个部分最重要?

ü  在开发过程中,该应用软件的哪个部分可以最先测试?

ü 哪一部分代码最复杂,容易导致出现错误?

ü 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?

ü 哪一部分程序与过去项目中引起问题的部分相类似/有关?

ü 哪一部分程序与过去项目中需要大量维护的部分相类似/有关?

ü 需求和设计的那些部分不清楚或不容易读?

ü 开发人员认为在应用软件中哪些部分是高风险的?

ü 哪些问题能造成最差的发行?

ü 哪些问题最能引起用户抱怨?

ü 哪些测试可以容易地覆盖多种功能?

ü 哪些测试在覆盖高风险部分的测试时使用时间最少?

问题四:如果需求一直在变化怎么办?

这是一个常见的令人头疼的问题。

ü如果可能,尽早与承担该项目风险的人接触,以便了解需求会怎样改变,从而可以尽早地改变测试计划和策略。

ü 如果在对应用程序进行初始设计时多考虑一些适应性,那么以后在发生需求的改变时,就不需要再为改变做很多事情了。

ü 好的代码注释和好的文档有助于开发人员作出相应的改变。

ü只要有可能,就应使用快速原型 (rapid prototyping),以帮助用户确认他们的需求,从而减少变更。

ü在项目的时间表中应当留出余量,以应付可能出现的变更。

ü尽量把新的需求纳入应用软件的下一版,而把原始需求作为第一版

ü通过谈判,把易于实现的新的变更列入项目,而把难于实现的新需求列入该应用软件的以后的版本。

ü要确保让客户和管理人员了解变更对进度表的影响、所带来的风险、以及因变更所引起的大量资金消耗。

ü在应付改变时,应在为建立自动测试而作的努力和重新进行测试所做的努力之间取得平衡。

ü在设计自动测试剧本时,试图使其有一些灵活性。

ü在对应用软件进行自动测试时,要把注意力集中在看来不大会改变的部分。

ü对变更进行适当的风险分析,以减少回归测试的要求。

ü在设计测试案例时要有一定的灵活性。做到这一点并不容易,所以要降低测试案例的详细程度,或者只建立高级的通用型的测试计划。

ü 少注意详细的测试计划和测试案例,要把重点放在专门的测试 (ad hoc testing) 上。

测试的几个原则

1. 应当把尽早地和不断地进行软件测试作为软件开发者的座右铭。
2.
测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
3.
程序员应避免检查自己的程序。
4.
在设计测试用例时,应包括合理的输入条件和不合理的输入条件。
5.
充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。
6.
严格执行测试计划,排除测试的随意性。
7.
应当对每一个测试结果做全面检查。
8.
妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

关于bug

测试的原则---Good Enough

  对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough是我们的原则。

  Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的,什么样的测试是过分的。目前状况唯一可用的答案是:制定最低测试通过标准和测试内容,然后具体问题具体分析。

测试的规律----木桶原理和80-20原则

1)木桶原理

  在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。

2Bug80-20原则。

  实践证明。80%bug往往隐含在20%的软件区域。所以一旦在某处发现了bug,多找找周围。这也是有经验的测试员的一种方式。

   一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%Bug,而系统测试又能找出其余Bug中的80%,最后的5%Bug可能只有在用户的大范围、长时间使用后才会曝露出来。因为测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值