常见的软件测试方法及汇总

按测试设计方法分类

黑盒测试(Black Box)html

  测试内容:黑盒测试是把测试对象看作一个黑盒子,利用黑盒测试法进行动态测试时,须要测试软件产品已经实现的功能是否符合功能设计要求,不需测试软件产品的内部结构和处理过程。
  黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序全部功能需求的输入条件。黑盒测试并非白盒测试的替代品,而是用于辅助白盒测试发现其余类型的错误。编程

黑盒测试具体说明连接:what's the 黑盒测试安全

 

白盒测试(White Box)架构

  测试内容:设计者能够看到软件系统的内部结构,而且使用软件的内部知识来指导测试数据及方法的选择。
  白盒测试一般被认为是单元测试与集成测试,期中有六种测试方法:语句覆盖、断定覆盖、条件覆盖、断定/条件覆盖、条件组合覆盖。并发

白盒测试具体说明连接:what's the 白盒测试函数

  
灰盒测试(Gray Box)工具

  测试内容:介于黑盒和白盒之间,是一种综合测试的方法,他将白盒测试和黑盒测试结合在一块儿,构成一种无缝测试技术。
  灰盒测试是基于程序运行时的外部表现又结合程序内部逻辑结构来设计测试用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。灰盒测试法旨在验证软件知足外部指标以及软件的全部通道或路径都进行了检验。post

灰盒测试具体说明连接:what's the 灰盒测试性能


总结单元测试

  实际工做中,对系统的了解越多越好。目前大多数的测试人员都是作黑盒测试,不多有作白盒测试的。 由于白盒测试对软件测试人员的要求很是高,须要有不少编程经验。作.NET程序的白盒测试你要能看得懂.NET代码。作JAVA程序的测试,须要你能看懂JAVA的代码。 若是你都能看懂了,你还会作测试么

 

按测试是手动仍是自动上分类

手动测试(Manual Test)  

  测试内容:测试人员用鼠标去手动测试 (测试GUI),用鼠标各类点点点,手工测试更能容易发现软件的Bug。

自动化测试(Automation Test)

  测试内容:用程序测试程序 (测试API),由测试人员根据手工测试的Case来决定自动化测试的Case,再编写程序或者脚原本替代手工作自动化测试

总结

  对于项目来讲, 手动测试和自动化测试同等重要,都是保障软件质量的方法。 目前大部分的项目组都是手动测试和自动化测试相结合。由于不少测试没法作成自动化,不少复杂的业务逻辑也很难自动化, 因此自动化测试没法取代手动测试。
  对于软件测试人员我的发展来讲, 作自动化测试是个挑战,也是测试人员发展的一个方向,  须要测试人员学习大量的开发知识(开发的知识真是学无止境啊)。 从长远角度来看,自动化测试确定是愈来愈吃香的。而手动测试比较适合刚工做不久的人,手动测试最大的缺点就是技术含量低,单调乏味,容易废人。
  总的来讲,手工测试胜在测试业务逻辑,而自动化测试胜在测试底层架构。
  若是被测试的程序可测试性比较好, 颇有必要作成自动化测试。 能作自动化的尽可能作成自动化, 好比下面这些情形是能够作自动化的:

 

按测试的目的分类

功能测试
  测试内容:测试的范围从小到大,从内到外, 从程序开发人员(单元测试)到测试人员,到通常用户Alpha/Beta测试

  • Unit Test 单元测试:在最低的功能/参数上验证程序的准确性,好比测试一个函数的正确性(开发人员作的)
  • Functional Test 功能测试:验证模块的功能  (测试人员作的)
  • Integration Test 集成测试:验证几个互相有依赖关系的模块的功能 (测试人员作的)
  • Scenario Test  场景测试:验证几个模块是否能完成一个用户场景 (测试人员作的)
  • System Test  系统测试:对于整个系统功能的测试 (测试人员作的)
  • Alpha 测试:软件测试人员在真实用户环境中对软件进行全面的测试 (测试人员作的)
  • Beta 测试:真实的用户在真实的用户环境中进行的测试, 也叫公测   (最终用户作的)

非功能测试
  测试内容:一个软件除了基本功能以外,还有不少功能以外的特性,这些叫“Quality of Service requirement”服务质量需求。没有软件的功能,这些特性都无从表现出来,所以,咱们要在软件开发的适当阶段-基本功能完成后作这些测试。

  • Stress test 压力测试:验证软件在超过负载设计的状况下仍能返回正确的结果,没有崩溃
  • Load test 负载测试:测试软件在负载状况下可否正常工做
  • Performance test性能测试:测试软件的效能,是否提供满意的服务质量
  • Accessibility test:软件辅助功能测试-测试软件是否向残疾用户提供足够的辅助功能
  • Localization/Globalization:本地化/全球化测试
  • Compatibility Test:兼容性测试
  • Configuration Test:配置测试-测试软件在各类配置下可否正常工做
  • Usability Test:可用性测试 –测试软件是否好用
  • Security Test:软件安全性测试

性能测试
  性能测试要求测试人员熟练性能测试工具,好比QTP, LoadRunner, Jmeter。  Visual Studio也提供了不少性能测试的工具. 要求测试人员对低层协议很是理解和编写脚本
  性能测试很是有技术含量, 颇有发展前途, 是软件测试人员的一个职业发展方向。
  性能测试推荐看一本书:《软件性能测试过程详解与案例剖析》

安全性测试
  安全性测试的内容很广, 很是有难度啊。 我只接触过XSS(跨站脚本攻击)和SQL注入攻击。
  安全性测试很是有技术含量, 我认为也是软件测试人员的一个职业发展方向

 

按阶段分类

单元测试

  是指对软件中的最小可测试单元进行检查和验证。桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。

集成测试

  是单元测试的下一阶段,是指将经过测试的单元模块组装成系统或子系统,再进行测试,重点测试不一样模块的接口部门。集成测试就是用来检查各个单元模块结合到一块儿可否协同配合,正常运行。

系统测试

  指的是将整个软件系统看作一个总体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。系统测试的主要依据是《系统需求规格说明书》文档。

验收测试

  指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。 验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即彻底交给最终用户测试。

 

按测试的时机和做用分类

  在开发软件的过程当中,很多测试起着“烽火台”的做用,它们告诉咱们软件开发的流程是否畅通。

  • Smoke Test:“冒烟”–若是测试不经过,则不能进行下一步工做
  • Build Verification Test(BVT):验证构建是否经过基本测试。
  • Acceptance Test:验收测试,为了全面考核某功能/特性而作的测试

BVT测试是一种Smoke Test, 指Build生成好以后,自动运行的自动化测试脚原本检查这个Build的基本功能。 若是BVT测试失败了,须要开发人员立刻修改,从新生成Build

 

按测试测策略分类

  • Regression Test 回归测试:对一个新的版本,从新运行以往的测试用例,看看新版本和已知的版本相比是否有退化 (regression)
  • Ad hoc Test 探索性测试:随机进行的,探索性的测试。
  • Sanity Test:粗略的测试, 只须要执行部分的测试用例(好比不少Web网页,肯定比较重要以及经常使用的URL连接是活着的,能正常打开返回数据)

Regression Test 回归测试

对软件测试人员来讲就是重复测试,因此回归测试最好是自动化的,不然测试人员就要一遍又一遍地重复测试: 

  • 开发人员作些小改动,就须要测试人员作回归测试。确保现有的功能没有被破坏
  • Bug Fix 也须要回归测试,确保新的代码修复了Fix, 也确保现有的功能没有被破坏
  • 项目后期,须要作一个完整回归测试,确保全部的功能都是好的

Ad hoc Test 探索性测试
  日常我最喜欢作随机测试了, 抛开test case.  本身按照本身的思路,随便点点。 若是测试GUI,Ad hoc能发现大量的bug。这个主要是基于测试人员对软件系统的了解以及测试人员本身我的的测试经验积累,差很少行成了一种习惯性的操做

 

其余测试类型

回归测试

  是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。

冒烟测试

  是指在对一个新版本进行大规模的测试以前,先验证一下软件的基本功能是否实现,是否具有可测性。

随机测试

  是指测试中全部的输入数据都是随机生成的,其目的是模拟用户的真实操做,并发现一些边缘性的错误。

 

 

 

参考:https://blog.csdn.net/zbj18314469395/article/details/79853677

相关文章
相关标签/搜索