如何学习软件测试

【原创】如何学习软件测试
很多同学问到我应该如何学习测试?现在网上的资料、视频都很多,书买了不少看了不少。但是就是觉得还是没有头绪,什么等价法、边界值到底应该怎么用还是一头雾水。的确,现在是知识爆炸的时代,太多的资料让学生都看花了眼,更是缕不出头绪。那么,作为初学者或者已经工作了1-2年的同学应该如何学习和提升自己的能力呢? 我以我自身的经验和体会给到大家一些建议,不能说是最完美的,但是至少应该还是有一些帮助的。

以项目的维度学习软件测试

无论是软件开发还是软件测试都是一门需要较强动手能力的工作,只听或者只看不做,你永远学不会软件测试。而作为一个软件产品的研发到发布,测试工作只是其中的一部分。而要想学好测试或者成为测试专家,你必须融入到整个软件开发过程中去。软件测试脱离了整个软件开发流程是不可能孤立存在的。了解整个项目的流程,包括:需求、设计、评审、测试、校验等才能更好的了解测试和把控测试。以下是软件项目的开发基本流程:

需求设计->需求评审---->系统设计->系统设计评审->代码编写->代码评审---->产品内网提测->系统测试->回归测试->产品上线
|--------->测试设计->测试设计评审->用例编写->用例评审---------^

只有你参与到整个项目中去,对软件测试开发的整体流程都接触后,你才能对软件测试有更清楚的认识。软件测试是门手艺活,需要更多的是动手操作而不是啃书本,其次软件技能的提升也是通过:操作+理解,而不是死记硬背。

关于自动化测试
其实,自动化测试在整个软件测试过程中并不是必要条件。自动化测试只是为了提高测试效率和节省测试成本。换句话说,一个项目没有自动化测试照样可以正常进行。当然,任何一样事物都具有双面性,下面说说自动化的优缺点。

自动化优点:

  1. 执行快
  2. 自动运行,无需人工干预
  3. 节省人力成本
  4. 重点用于项目回归测试

自动化的缺点:

  1. 开发成本高
  2. 不稳定,维护成本高

其实自动化最大的优势在于回归测试,产品每发布一个版本,能够快速的回归测试。但是,目前来说自动化测试是无法取代人工测试的,因为手工测试是真实的用户体验。

自动化测试的分类

  1. UI自动化
  2. API自动化

UI自动化:其实就是模拟人工的操作,一个按钮一个按钮的点击和输入。但是UI自动化稳定性很差,用户界面一旦变化,很多用例都会失败
API自动化:对接口层通过代码调用的方式进行测试。这样的测试不受UI界面的变化的影响,稳定性也要高很多,但是对测试人员的代码能力要求要高很多。

给初学者的建议:

  1. 找一个项目去做一做,从测试计划->测试用例编写->测试执行->提交Bug,然后再反过来看理论的书籍,这样会理解更透彻
  2. 如果学校没有实习项目,可以争取去找一份外面的实习工作,接触实际的项目
  3. 熟悉Bugzilla, BugFree等Bug管理工具使用
  4. 熟悉TestLink等用例管理工具的使用
  5. 先将整个测试流程都熟悉后,再接触自动化

给进阶者的建议:

  1. 多关注产品的原理、架构和实现
  2. 多和开发沟通了解产品的特性
  3. 深入开发的代码,能够理解产品代码
  4. 思考一下目前的功能测试用例是否能够自动化
  5. 尝试使用工具自动化一些功能测试的用例
  6. 学习一门语言,如Java,考虑是否能从API层面进行测试

大家不要总抱怨自己总在:点点点,其实你的项目并不是那么的简单,你要学的东西还很多,多和开发沟通,你会获得更多。

猜你喜欢

转载自blog.csdn.net/paischool/article/details/88530189