浅谈软件测试(一)

本人在作软件测试以前,作软件开发,只不过是一些简单的Windows应用程序. 我的认为本身在开发方面并无什么天赋,也不喜欢,甚至曾经怀疑过是否是要放弃IT,转入其余行业。但换了一份工做,并有幸到知名IT公司从事软件测试工做。今后,肯定了软件测试正是我一直寻找并立志于一直从事下去的行业。数据库

我作软件测试的工做并不长,几年而已,但深深喜欢这个行业。很奇怪,同是关于软件,讨厌开发,却喜欢测试。数据结构

一、软件开发和测试的区别ide

这是一个能够引发不少争论的话题。开发有时比较讨厌测试团队,由于测试,就是挑毛病。尤为是产品出现问题时,开发和测试更是相互推卸责任。不少软件开发人员,看不起测试的工做,认为没有什么技术含量。其实,这是很大的误区。 软件开发和软件测试确实有很大的不一样。首先,技术要求不一样。从开发语言来说,开发也分不少方面。用JAVA开发的不多转向.net, 作嵌入式的不会去作网站。开发对于技术的要求是“精”,开发成天研究的是如何实现软件的功能,要用哪些类,这些类的哪些方法,数据结构的研究,变量的肯定和函数之间的调用。若是作上曾应用,大部分开发都想的是如何使用API, 库函数等等,固然这些大部分都是别人写好的,本身去使用。我想很受有人能去Sun或Misrosoft作库函数的开发吧。虽然使用的是现成的东西,但想作一个东西出来,哪怕只有很简单的功能,也是不容易的。要考虑的东西不少,譬如说效率,如何定义函数,接口等等。因此开发看测试时,大多自命不凡。呵呵,没办法,我的也认为,从技术角度讲,开发确实比测试难。作一个东西,总比测一个东西难吧。函数

下面说说测试的技术要求。软件测试,80%都是重复性劳动。测试的主要工做包括,搭建 测试环境,设计测试用例, 执行测试用例, 开bug, 验证bug. 测试的难点在于: 1. 如何根据产品的功能,设计测试用例, 测点在什么地方 2. 如何在有限的时间里,合理的安排人员,资源,尽量多的测试产品,尽量多的发现产品的缺陷 3. 如何合理的将重复性劳动变为自动执行(automation) 第一点,要求测试人员很是熟悉产品的功能,而且根据本身的知识贮备,分析出那些须要测,哪些不须要。好比,一个log in 的功能,1)界面须要测, 2)field 的max length 须要测, 3) 用户名或者密码错误,软件怎样处理, 4)重复错误登录,软件怎样处理 5)正确登录后,退出,在登入,软件怎样处理, 6)须要跨平台吗? 只是举了一个简单的例子,能够看出,开发和测试的出发点就是不一样的,开发是如何实现软件, 而测试时如何发现软件的缺陷。 第二点,要求测试人员要考虑资源和时间的合理分配,(大部分是测试经理要考虑的问题)那部分要分配的资源多些,那部分少些。好比说这个release 有一个新的功能,那么这个功能应该在全部的平台,版本都要测,全面的测试。而一些原有的功能,有些能够交叉测,有些能够在推测会有用户使用的方面,多测一些(regression test) 第三点,就是如何automation. 这对于软件测试而言,是很是经典的话题。应不该该automation, 如何automation, 我想在之后的帖子中再议。测试

软件测试对于技术的要求的广但不精,对于软件的理解,数据库,操做系统,Linux, 脚本,都是必会的。整体说来,有开发经验的对于从事测试工做,帮助很大。能够帮助理解软件,会考虑软件是如何实现的,很是有助于设计测试用例。网站

相关文章
相关标签/搜索