软件测试的八大原则

在对软件测试行业有了初步的聊了解以后,对于初学者并不能急于学习软件测试相关技术,而是先要掌握软件测试的原则,这样可以帮助各位建立一个正确的测试观念,帮助你在测试的道路上成长更快。关于软件测试的原则主要有如下几条。

  1. 所有的测试都应该追溯到用户的需求

    也就是说我们的测试都是要根据客户的要来做,因为客户是花了钱的,而软件开发行业的所有岗位也都是围绕客户而展开工作的,如:软件开发工程师,目的是为客户开发。UI设计师,也是根据客户的要求去设计产品。等等就不再一一赘述。

2.将"尽早和不断的测试"作为自己的座右铭,并默写100 遍

尽早做:"尽早"到是多早?按照正常的逻辑,测试人员的工作应该是等到开发人员把软件项目完成之后才能开始测试工作,实际上如果等到开发人员将软件开发完成之后才去测试就太晚了,黄花菜都结冰了。
  1. 我们测试人员大可以跟开发人员同时开发各自的工作,在开发人员开始进行开发的同时,测试人员可以去编写测试用例(文档)
  2. 在实际开发中,开发人员的工作是分模块开发,并不是一次性将软件完成,而是逐一的对每一个模块进行开发,如:开发人员先开发“用户注册”模块,再开发“用户登录”模块、等等。当开发人员每开发好一个模块,我们测试人员就可以对这个模块进行测试。简单来说就是一边开发一边测试,以达到节约老板时间的伟大目标。
    不断的测:一个功能测试一两遍没有问题不就行了吗?为什么还要不断的测?因为在软件开发的过程中,代码的很多模块都可能存在关联。例如程序员小A将“用户注册”模块开发完成之后,测试也没有问题。但是小A在对“用户登录”进行开发的时候,有可能就会导致之前开发的“用户注册”模块出现bug,所以测试人员需要不断的测试,才能保证软件的质量,记住:bug比你见过最狡猾的人还要狡猾。
  3. 测试工作应该由专门的测试人员完成

    程序员的对软件产品的测试往往只是针对某一个功能进行测试,而软件产品中的模块有很大的关联性,这就导致了程序员对程序的测试仅限于一个点,而没有大局观,无法保证软件的质量。所以专业的人干专业的事才是上天最好的安排。

4.Pareto(二八原则)原则

测试中你将发现80%的bug都是由其中20%的模块引起的。就像社会上80%的违法事件,是由一小撮犯罪分子导致的。知道这个原则,可以帮助测试人员快速的定位可能出现bug的模块。
  1. 在写测试用例的时候,应该考虑到各种情况

    刚才写到,我们测试人员要根据客户的需求进行测试,实际上这个说法是错误的,我们测试软件不仅要根据客户的需求来做,而且还要替客户想出他们需求中漏掉的地方。毕竟我们是专业的测试人员。

  2. 对测试出的bug,一定要有个确认的过程

    软件测试人员在实际工作中,当测试出一个bug后,千万不要像发现新大陆一样赶紧跟程序员汇报:“快来看啊,我又发现一个bug”,这样非常不利于内部人民团结,而且非常浪费时间。

    正确做法是:1.先确认bug。2. 每天下班的时候根据测出来的n个bug,写一份bug报告,然后第二天在时间比较早、程序员心情比较好(必须同时满足这两个条件)的情况下发给开发人员。

  3. 制定严格的测试计划

    软件产品上线的时间越早,那么产品的竞争力可能就越大。而软件测试工作是软件产品上线前非常重要的一环,直接影响到软件产品上线的时间,所以我们测试人员一定要制定一个严格的测试计划,并遵守测试计划,为产品的上线做好保障。

  4. 测试人员不可能测试出所有的bug

    如果一个软件产品中没有bug,那么只有一种情况,那就是bug暂时还没有被发现。无论开发人员如何升级产品,这款软件必然还是存在bug,我们测试人员不能永远的测试下去。那样的话,产品将永远无法上线使用。只要产品的bug不严重,测试人员就可以终止当前版本的测试。先让这款产品上线,等到开始下一个版本开始开发后,这笔账我们可以接着算。

带勺子的心灵鸡汤:如果把一款软件产品看做人的身体的话,那么bug就像病毒或缺陷。每一个看似健康和完美的人,其实都有不少的bug,只不过,有一些bug我们可以解决,而有一些bug可能要跟随我们人类几万年。

友信科创:帮助更多年轻人少走弯路。同时也欢迎你留言讨论。

原文地址:https://blog.51cto.com/7478974/2423626

时间: 2024-11-08 03:09:59

软件测试的八大原则的相关文章

自动化软件测试的指导原则[译]

在最近与软件测试人员的谈话中,我不断听到同样的事情:测试自动化在大多数项目中是需要的.合理使用以下指导原则,可以有助于自动化测试工作的开展. 指导原则1:避免过早开发测试脚本 我们鼓励软件测试人员,在应用程序开发初期就开展自动化测试.但是,在程序功能还不齐全的情况下,编写自动化测试脚本,效果会大打折扣.如果在程序还在不停改动的情况下编写测试脚本的话,你不得不随时重写你的脚本.但是我们不建议等到整个程序都稳定了才去补充测试脚本,比较好的方法是,审查整个程序,为程序中比较完整的功能去编写自动化测试脚

软件测试的艺术(一):软件测试的重要原则

软件测试是为了发现错误而执行程序的过程,这就说明目的是为了发现错误,动作是执行程序. 在进行软件测试的过程中,要遵循很多的原则,以下是几个重要的测试原则: 1)      测试用例中一个必需部分是对预期输出或结果进行定义. 对于软件测试,必须是有明确的定义输入数据和条件,同时对输出结果有准确的判断.这样才能辨别是否是有效的测试,当前的结果是否是正确的. 2)      程序员应当避免测试自己编写的程序. 人都会有固定思维,一方面是可能对软件需求规格书的理解偏差,导致编写的程序也有偏差,所以自己没

面向对象程序设计八大原则

1. 单一职责原则(Single Responsibility Principle) 每一个类应该专注于做一件事情. 2. 里氏替换原则(Liskov Substitution Principle) 超类存在的地方,子类是可以替换的. 3. 依赖倒置原则(Dependence Inversion Principle) 实现尽量依赖抽象,不依赖具体实现. 4. 接口隔离原则(Interface Segregation Principle) 应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接

软件测试的重要原则

"测试是为发现错误而执行程序的过程" 1.测试用例中必须有对预期输出结果的精确描述 2.应当尽量避免编码人员测试自己编写的程序 (注:此处不是指"调试",调试由程序编写人员来完成会有效得多.) 3.应当彻底检查每个测试的执行结果 4.测试用例除了有效和预期的输入,也应当关注无效和未预料到的输入 5.测试用例不应当用后即弃,除非软件本身就是一次性的 保留测试用例,当程序其他部件发生变动后重新执行,即所谓的"回归测试". 6.计划测试工作时不应假定不

软件测试的艺术-CH2

by GlenFord J. Myers(U.S.A) 测试是为发现错误而执行程序的过程 软件测试心理学 人类的行为总是倾向于具有高度目标性,建议一个正确的目标有重要的心理学影响,如果我们的目标在于证明程序中的错误,那我们设计的测试数据就会发现更多的问题, 反之,则相反. 如果在测试阶段发现了错误并且成功得到修复,那么测试是成功的 如果本次测试可以确定再无其它可以查出的错误,那么本次测试仍然是成功的 总结,软件测试更适宜被视为试图发现程序中错误的破坏性过程.一个成功的测试用例,通过诱发程序发生错

软件测试人员成长必备知识篇

软件质量篇 软件质量包括两个相关但截然不同的概念 功能性质量(Functional Quality):反映软件是否按照设计实现并满足相应的功能性需求. 结构性质量(Structural Quality):反映软件是否满足相关的非功能性需求. 评价软件的功能性质量和结构性质量,有一系列衡量指标,有了衡量指标之后,另一个重要的问题就是如何获得这些指标的量化数值.软件测试是验证这些指标的有效方法. 测试的通过指标是根据质量的需求来定义的,系统通过了测试,可以从量化的角度说明它符合需求. 正确性(Cor

小白福音!零基础入门软件测试,首选必备课程

第1章 课程介绍本章将从软件测试的起源与发展.测试行业的现状及职业生涯规划等整体做介绍. 1-1 课程介绍1-2 软件测试的发展1-3 软件测试的发展与职业规划1-4 软件测试之"独孤九剑"第2章 软件测试工程师必备基础知识本章将讲解软件的概念.软件的生命周期.软件测试方法.软件测试常见模型.软件测试的覆盖率及软件测试规范,一步步带你揭开测试大门. 2-1 软件的十大特性2-2 软件的分类2-3 软件生命周期2-4 软件开发模型2-5 软件开发文档2-6 软件测试方法2-7 生命周期各

软件测试的定义以及分类

一.软件测试的定义 1. 软件测试 为了发现程序中错误而执行程序的过程. 2. 软件测试的目的 1)软件测试为了发现程序存在的代码或业务逻辑错误: 2)软件测试为了检验产品是否符合用户需求: 3)软件测试为了提高用户的体验  3.软件测试遵循的原则 1)测试应该尽早介入:----需求分析 2)所有的测试都应追溯到用户需求: 3)程序员应该避免检查自己的程序.除了单元测试.因为程序员对于自己的作品,思维具有局限性.无法保证测试质量.交给第三方或者专业测试,运用各种测试技术,利用丰富的测试经验和对b

软件测试基础理论整理(一)

1.什么是软件测试? 软件.网站或系统等在没有发布到用户手中之前先保证它能够 满足的一切需求,能够正常使用,保证产品到用户手中的一个质量安全保证问题.从功能.性能.安全.从各个接口.逻辑方面解决它,从不同的角度去解决这个产品到用户 手中出现的各种问题.使用人工或者自动手段来提高软件的安全和质量以及性能以及其他的一些问题,保证它的质量,保证用户体验.测试人员发现问题.跟进问题解决的过程,其目的在于检测它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 2.软件测试的法则: (功能.可靠性.易