2011.11.1好日子,今天博客访问量超过1000了。 2012.01.29,访问量突破2000了. 2012.02.01,访问量突破3000了.继续进步

测试自我培训之一(软件测试方法和测试流程)

上一篇 / 下一篇  2012-01-18 02:10:35 / 个人分类:测试流程培训

第一天自我培训课程:软件测试方法和测试流程

 

什么是黑盒测试?

黑盒测试特别注重测试软件的功能需求.采用这种方法,测试工程师把测试对象看作一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明.

什么是白盒测试?

白盒测试时,软件测试人员可以访问程序员的代码.并通过检查代码的线索来协助测试.

什么是灰盒测试?

灰盒测试一方面考虑程序代码的功能性表现,另一方面,又要考虑程序代码的内部结构,例如性能测试,自动化测试.

 

什么是静态测试?

静态测试属于黑盒测试,就是用眼看,阅读程序代码,文档资料等,与需求说明书中的客户需求作比较,找出程序代码中设计不合理以及文档资料有错误的地方.打个比方检查一个二手汽车的过程,静态测试就是踢一下轮胎,看看车漆等.:一般进行代码的静态测试时,一般采用一些代码走查的工具.静态测试的核心是对产品说明书进行审查,为的是找出根本性的问题,疏忽和遗漏之处.

什么是动态测试?

动态测试就是执行被测对象的程序代码,输入事先设计好的测试用例,检查代码运行得到的结果和测试用例中设计的预期结果之间是否有差异.动态测试有四部分组成:设计测试用例,执行测试用例,分析比较输出结果,输出测试报告.动态测试的主要方法有:黑盒测试,白盒测试,灰盒测试.

 

补充:测试中无规格说明书的情况下,可以进行探索性测试:了解软件,设计测试,执行测试同时进行,把软件当作产品说明书来看待.而且找到最了解软件的人进行交流.

 

什么是手工测试?

手工测试就是通过手工模拟用户的业务流程,来使用软件,从而发现软件产品中的缺陷.

什么是自动化测试?

自动化测试就是利用一些测试工具,模拟用户的业务使用流程,让他们自动运行来查找缺陷,也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷.在自动化测试中,查看器和监视器测试工具能够看到正常情况下看不到的软件运行的细节.

 

经过很多文档和培训资料获取了上面的很多方法定义和比喻后,所以我现在以V模型测试流程来配合以上的几种测试方法总结:

 

需求测试:

在我们进行测试之前,对测试需求本身也要进行测试,因为需要排除需求方法的错误.所以我们需要对需求规格说明书,概要设计文档,详细设计文档,数据库设计等进行查阅,这样运用到我们上面黑盒静态测试方法和无需求说明下的探索性测试进行需求测试.

需求测试注重:完整性,正确性,一致性,可行性,无二义性,健壮性(意思是是否对可能出现的异常进行了分析),必要性,可测试性,可修改性.

 

单元测试:

单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。我们主要采用到静态测试与动态测试相结合的方法,首先是静态的代码走查,检查程序代码中不符合编程规范,存在错误或者遗漏的地方,后续运用单元测试工具对程序代码内逻辑结构,函数调用等方面的测试.

例如我在2个安卓项目中接触到的自动化测试-Robotium,它是google提供的测试包,能够把每个apk里面的布局分成几个模块(单元),然后进行单元测试,流程就是自动把每个模块写成用例然后通过自动化方式执行测试.

 

集成测试:

进行完单元测试之后,我们把所有模块组装起来,进行集成测试.检查其接口是否存在问题,以及组装后的整体功能,性能表现.集成测试一般以黑盒测试为主,白盒测试为辅的测试方法,由测试工程师进行测试.在硬件测试的领域中,我个人认为该阶段也要注重配置测试,与软件集成测试是差不多的意思.

 

备注:在测试过程中有代码覆盖率的测试.介于单元测试和集成测试中,因为代码覆盖率我个人理解为编写小工具和代码来进行覆盖代码的测试,即不属于单元,也不属于测试工程师的集成测试,此处作为遗留问题进行跟进.

 

系统测试:

系统测试是将通过集成测试的软件部署到某种较为复杂的计算机用户环境进行测试.

例如,我负责一个有web平台的产品测试,根据客户的需求,我的电脑上安装了很多热门软件,也使用了不同的浏览器.也例如我在安卓项目中使用不同的输入法对产品进行测试.再例如我在自动化敏捷测试工作组中自动化安装卸载的测试.

这里面涉及到的测试就是黑盒测试方法,测试点是安装卸载测试,兼容性测试,功能确认测试,安全性测试.

这里也把几种关键的测试拿出来说说:

兼容性测试:是指检查软件之间是否能够正确地交互和共享信息.向后兼容指可以使用软件的以前版本,向前兼容是指可以使用软件的未来版本.

易用性测试:无论是嵌入式产品还是虚拟产品都有着易用性测试,无论是否存在UI,都要对产品的直观,一致,灵活,舒适,正确,实用进行测试,总的一句就是人体工程.

测试文档:不同与需求测试,此文档为测试软件中带有的帮助文档等信息测试.

 

性能测试:

最简单的总结就是要求被测软件在业务处理速度,处理能力和所耗用的硬件系统资源比率满足用户的需求.性能测试更多的和压力测试,负载测试,冒险测试等进行对比和区别.

在说明前,引入一个概念:许多时候,系统性能的改善是测试、调整、再测试、再调整、……一个持续改进的过程,这就是我们经常说的性能调优(perormance tuning)。

 

负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

 

压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

(未完接--测试自我培训之一(软件测试方法和测试流程)2)


TAG:

51_Caixia的个人空间 引用 删除 51_Caixia   /   2017-02-22 23:25:02
5
菜菜的个人空间 引用 删除 xixi_2012   /   2012-10-28 16:32:36
1
 

评分:0

我来说两句

acbennn

acbennn

站在云端看浮云,晕. CSDN的博客:http://blog.csdn.net/bullswu/article/details/6798437

日历

« 2024-05-19  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 60665
  • 日志数: 44
  • 建立时间: 2011-09-18
  • 更新时间: 2013-09-22

RSS订阅

Open Toolbar