软件测试的基本原则

2018年7月27日 1.89k 次阅读 0 条评论 1 人点赞

软件测试的基本原则

软件测试是一个需要态度严谨、认真负责的工作。
软件测试有一定的测试原则,这个原则是很重要的。
软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现Bug,并负责跟踪和分析产品中的问题,对不足之处提出质疑和改进意见。
为了达到一定的质量标准,在软件测试过程中,应注意和遵循的一些基本原则。
博主在网上搜集整理了以下几项:

所有的软件测试都应追溯到用户需求。

这是因为软件的目的是使用户完成预定的任务,并满足用户的需求,而软件测试中所发现的最严重的错误就是使软件达不到用户的目标,满足不了用户需求。

尽早地、不断地进行软件测试。

应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
由于软件的复杂性和抽象性,在软件生命周期各个阶段都有可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段的工作,而应当把它贯穿到软件开发的各个阶段中。
在软件开发的早期如需求分析和设计阶段就应开始测试工作,编写相应的测试文档。
同时,坚持在软件开发的各个阶段进行技术评审与验证,这样才能在开发过程中尽早发现和预防错误,杜绝某些缺陷和隐患,提高软件质量。
只要测试在生命周期中进行得足够早,就能够提高被测软件的质量,这就是预防性测试的基本原则。
程序中的错误并不一定是由编码所引起的,很可能是详细设计,概要设计阶段,甚至于是需求分析阶段的问题引起的。
有资料表明,60%以上的软件错误并不是程序错误,而是分析和设计错误。
因此,做好软件需求和设计段的测试工作就显得非常重要。这就是我们提倡的测试概念扩大化,提倡软件全生命周期测试的理念。

完全测试是不可能的,测试需要终止。

想要进行完全的测试,在有限的时间和资源条件下,找出所有的软件缺陷和错误,使软件趋于完美,是不可能的。
主要有三个原因:

  • 输入量太大;
  • 输出结果太多;
  • 路径组合太多;
  • 一个适度规模的程序,其路径组合近似天文数字,对于每一种可能的路径都执行一次的穷举测试是不可能的。
    此外,测试也是有成本的,越是测试后期,为发现错误所付出的代价就会越大,因此要根据一定的测试停止准则,确定最佳停止测试时间,不能无限地测试下去。

    测试无法显示软件潜在的缺陷。

    进行软件测试是可以查找并报告发现的软件缺陷和错误,但不能保证软件的缺陷和错误全部找到,继续进一步测试可能还会找到一些。
    也就是说测试只能证明软件存在错误而不能证明软件没有错误。

    充分注意测试中的群集现象。

    经验表明,测试后程序中残存的(隐藏的)错误数目与该程序中已发现的错误数目成正比。
    根据这个规律,应当对错误群集的程序段进行重点测试。在所测程序段中,如果发现的错误数目多,则残存的错误数目也比较多。
    所以,如果我们某一程序模块似乎比其他的程序模块有更多的错误倾向,就应当花费较多的时间和代价测试这个程序模块。
    例如某个程序由两个模块A和B组成,模块A中已经发现了5个错误,而模块B中仅仅找到了一个错误,那么经验表明,模块A与模块B相比,存在更多错误的可能性要大。

    程序员应避免检查自己的程序。

    基于心理因素,人们认为揭露自己程序中的问题总不是一件愉快的事,不愿否认自己的工作;
    大多数程序员都不能有效地测试自己编写的程序,因为他们无法改变思维方式来尽力暴露自己程序中的错误。
    当程序员“建设性”地设计和编写完程序之后,很难让他突然改变视角以一种“破坏性”的眼光来审查程序。
    因此,为达到测试目的,应该由客观、公正、严格的独立的测试部门或者独立的第三方测试机构进行测试。

    尽量避免测试的随意性。

    应该从工程的角度去理解软件测试,它是有组织、有计划、有步骤的活动。
    特别是对于做了修改之后的程序进行重新测试时,如不严格执行测试用例,将有可能忽略由修改错误而引起的大量的新错误。
    所以,回归测试的关联性也应引起充分的注意,有相当一部分最终发现的错误是在早期测试结果中遗漏的。 其它所有工作都应该避免随意性。

    对发现错误较多的程序段,应进行更深入的测试。

    一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。越需要深入和多次测试。

    在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

    不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件。
    测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。

    风里云里,我在这里等你!

    文章评论(0)