软件测试杂谈
Anny
序
做测试三年多,终于从一个测试工程师变成测试经理,虽然工资是拿的测试工程师的工资,做测试加管理的工作,最近带新人,确实很痛苦,真不想带人,不过既然带了就好好带吧。
下面总结出我对测试的理解,相关的测试想法跟一点点的测试经验,仅供大家参考。我所谈的内容全部为自己理解,许多定义可会不严谨。本文绝无半点抄袭,请读过的同行进来点评和指正。Anny在此先谢谢大家从百忙中抽出时间来读这些内容,非常感谢大家对我的批评与指正。
Anny的联系方式:anny_lv@126.com,由于工作较忙,白天不能上网,晚上我会一一回复大家的邮件。
什么是软件测试
许多测试书籍都不能给软件测试定义比较严谨的概念 ,而我有怎能定义好呢?之前专门跟朋友谈论过这个话题,不过响应的人并不多。
在那次的讨论中我对软件测试提出了两层意义,第一层:验证软件可用;第二层:验证软件不可用。
大家看见我这样的定义会觉得比较矛盾,请听我详细描述。
第一层:验证软件可用,开发人员集合他们的思维跟想象,借助相关需求文档,设计文档设计出软件,可软件是否符合用户或者满足需求文档的要求呢?这是验证软件可用。个人觉得相关的测试有单元测试、集成测试、测试、β测试。
第二层:验证软件不可用,软件在使用的过程中,由于外在因素导致软件出错,那会是什么样的结果呢?为了防止这些以外因素导致的软件错误,就需要软件测试来验证,就是尽一切可能性导致软件不可使用。个人觉得这类测试没有固定形式,需要大家不断地积累。
关于软件测试的定义大家可以到网络上进行搜索,相信GOOLGE、百度等搜索引擎一定能帮助大家很快定位到需要的答案。
软件测试种类
根据测试种类分,软件测试分为,白盒测试、灰盒测试、白盒测试。在此我引入了灰盒测试的概念。下面对各测试模式进行描述。
白盒测试
从字面上解释白盒为,通过透明白盒子可以看到盒子内的东西。而白盒测试则可以这样理解,被测试模块被装在一个白盒子里,我们能清楚的看到代码是如何运转的,所以我们通过对白盒子里相关某块或者相关指标进行测试,得出相应的结果。即白盒测试。
灰盒测试
从字面上解释灰盒为,通过半透明盒子,只可以看到盒子里部分东西,或者模糊地看到一些东西。而灰盒测试则可以这样理解,被测试模块被装在半透明盒子里,我们通过能看清楚的某块或者相关指标进行测试,而我们看不清楚的地方,选用黑盒测试进行测试。
黑盒测试
从字面上解释黑盒为,通过黑色盒子我们看不到盒子内部东西,而黑盒测试则可以这样理解,被测试模块被装在黑盒当中,我们只能通过输入的信息和输出的信息来判断黑子里的代码是否满足要求。
根据测试性质分,软件测试分为功能测试、性能测试、UI测试、本地化测试等
功能测试
功能测试:测试软件的功能是否满足需求。功能测试主要黑盒测试为主。
许多公司进行功能测试的时候只是进行手工黑盒测试,目前用的较多的功能自动化测试工具是QTP,而目前市面上有许多免费开源的功能测试工具,大家可以搜索一下。
性能测试
性能测试:测试软件的性能是否满足需求。性能测试相对要借助测试工具。
许多公司对性能测试并不重视,只是通过加压来出分测试报告,告诉用户我们已经做了性能测试。而真正意义上的性能测试是通过性能测试发现软件在性能上存在哪些缺陷。用的较多的性能测试工具是LOADRUNNER。
UI测试
UI测试:对界面进行测试,查看文本框、按钮、文字大小是否满足需求文档中规定的。查看界面中是否存在错字别字等。
单独进行UI测试的公司我没有遇到过,很多时候UI测试都是放到集成测试中做的,在集成测试时对界面进行测试。
本地化测试
本地化测试:本地化测试有点跟UI测试接近,而区别在于,本地化测试是将界面语言翻译成某国语言,要符合那个国家的语言习惯,包括界面排版等要依据原版本为蓝本进行测试。
我所了解的本地化测试,是从朋友的朋友那得知的,他们公司是专门做本地化测试。就是对微软的操作系统进行本地化测试。
根据测试模块分,软件测试分为单元测试、验收测试、集成测试、尔法测试、贝塔测试等。
单元测试
单元测试:即测试的最小单位,即测试的功能点,或者说是测试的模块。单元测试主要是开发进行测试。
开发在完成某段代码后,要对其进行验证,这个验证过程就即为单元测试。
验收测试
验收测试:整合开发的代码进行打包,然后验证软件是否可用。
验收测试在多数情况下是由QA进行处理。QA在接受到开发的发版请求后,对项目团队的代码进行走读,保证代码运行正确后,进行打包部署,部署后进行模块的验证,验证模块并没有出错,然后可以提交QC进行集成测试。
集成测试
集成测试:开发人员或者QA将软件部署后,开发对整个系统进行详细测试,可以根据流程进行测试,也可以通过场景进行测试的过程叫集成测试。
集成测试普遍使用的是黑盒手工测试,也有一部分公司会选用功能测试工具进行集成测试,手工测试跟自动化测试工具各有利弊,这需要公司对项目进行衡量了。
尔法测试
尔法测试:尔法测试是紧接着集成测试后面的测试,是集成测试后公司将软件交付给使用方进行内测的版本。
通常进行尔法测试的是第三方测试公司。第三方测试公司受聘于软件使用方,当软件开发方将软件部署到软件使用方的环境后,由第三方公司进行软件测试,校验软件是否满足软件使用方的要求。
贝塔测试
贝塔测试:尔法测试通过后的版本交付给使用方的试用版本,这个版本跟正式版本已经没有多大的区别了。
我们以QQ2009举例吧,QQ2009的贝塔版本跟正式版本没有什么区别。区别在于是先有贝塔版本,贝塔版本经过用户使用后,没有抛出什么奇怪的异常后,软件公司将发布正式版本。