什么是软件测试?
软件测试定义是:为了发现程序中的错误而执行程序的过程它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。
软件测试的内容:软件测试主要工作内容是验证(verification)和确认( validation ),下面分别给出其概念:验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。
(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件(Do it right)1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
从不同的角度出发,软件测试可以划分为不同的分类:从是否关心软件内部结构和具体实现的角度划分A.白盒测试B.黑盒测试C.灰盒测试从是否执行程序的角度A.静态测试B.动态测试。
从软件开发的过程按阶段划分有A.单元测试B.集成测试C.确认测试D.验收测试E.系统测试
软件测试学习方法?
介绍一下软件测试:实际软件测试要求要高于软件开发,不仅要懂开发技术,还要懂得设计技术,测试技术,做到高级测试的话,水平要在高级开发之上;当前国内情况:软件测试基本是用开发水平比较低的人,有些甚至都不懂开发技术,主要是成本考虑(测试薪水比较低,所以要求自然比较低),大部分是一些刚毕业的,或在大专生之类的,测试时间也很短,基本就是一个形式(主要为接项目时有利),大部分测试由开发人员完成;目前主要一些外企有高水平的专业测试队伍,国内一些比较强的公司有部分专业测试队伍(水平也不是很高,但比较专业了);以后国内软件业必须逐步向国际水准看齐,所以软件测试是有潜力的;测试学习:1、基本编程能力(可通过学习一门语言,比如C语言,同时要学习数据结构、基本数据库技术);2、编程语言学习;(C、C++、C#、Java等,至少要2种)3、操作系统原理(有关内存分配、进程、线程原理等)、操作系统应用(Windows、Linux/Unix 都要了解);4、数据库技术、重要数据库应用(SQL Service、Orical、DB2、MySQL等)5、测试工具(自动化测试工具,好多,了解2种以上)6、测试管理(有了前面技术,这个管理类东西,几天就可以了解,但要完全懂,需要长期实践,就像项目经理一样,看起来简单,实际上需要许多经验,需要不断学习)
【学软件测试要多久】软件测试容易学吗?要多长时间才可以学会?...
完整的测试是评定软件质量的一种方法 软件测试完整分类,参见!其实说白了,这种观点指出测试是以查找错误为中心! (1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者 发现当前软件开发过程中的缺陷,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试:软件测试的完整分类 以上的都是官话; (3)成功的测试是发现了至今为止尚未发现的错误的测试,可能会产生误导,软件测试就是在开发人员做出软件投放市场前,尽可能早的找出软件当中所存在的BUG,另外测试人员还要具备相当的口才,方便与开发人员还有客户交流。
然而,以确保开发的产品适合需求。
使用人工或者自动手段来运行或测试某个系统的过程、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
Grenford J.Myers曾对软件测试的目的提出过以下观点: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,都不是完美的!尽早的找出漏洞,公司的损失也就越低!这也就是软件测试人员越来越受重视的原因! 其实软件测试是一种相当乏味枯燥的工作,一般面公司都比较偏向稍微内向的人,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性; (3)没有发现错误的测试也是有价值的!因为任何软件在理论上来说都是存在问题的,而不是为了演示软件的正确功能.但是只从字面意思理解,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,实际上并非如此 展开
软件测试,要做什么?,,怎么去做?
软件测试就是测试软件呗!要做什么?比如说我们常用的Office软件word。
word有相当多的功能,比如说编辑呀,排版啊,插入图片啊,艺术字什么的等等等等很多。
像word这样的软件开发完以后,确认这些功能是否正确的执行,在测试的过程中,你会发现有些功能不能正常执行,或者出现一些未知的错误。
错误产生的原因可能很多,比如说开发人员编写的代码有问题等。
软件测试做的就是找出软件中的这些缺陷,也叫做BUG。
你也可能在日常生活中无意中发现,有的软件出错的情况是吧。
那就说明这个软件,测试做的不太彻底。
如果缺陷严重的话,会影响软件的价值。
至于怎么去做?这个就不再细说了。
另外测试不光是测试功能,还有其他很多地方也要测得,只是让你容易理解而已。
做软件测试员需要学哪些专业知识???
有些事情说起来有些滑稽,几年前,我们说,软件测试业在中国刚刚起步。
现在,我们还是在说,软件测试业还是刚刚起步。
几年的时间,对于其它行业是一个什么概念我不清楚,对于IT行业来讲,不是一个小数。
实际上,国内软件业的发展缓慢限制了测试业的发展,没有软件的开发计划,测试的需求不旺啊。
然而,反过来想,在软件测试业还没有大红大紫的时候介入进去,应该是个好时候。
那么,从事软件测试业的基本要求是什么?我根据自己的体会,罗列一些,供朋友们参考。
首先,要有宽泛的计算机基础知识。
微机原理,数据结构,数据库,操作系统原理,编译原理,逻辑,编程语言,网络,等等,都要系统地学习过。
都精通不大可能,因为人的兴趣都不相同,但是,这些功课的基本知识点是应当了解的。
我们在谈到职业的类别的时候,我们可以说C程序员,C#程序员,Java程序员,而没有C测试员,C#测试员,Java测试员,程序员可以只擅长某一门编程语言,测试员却不行。
为什么呢?测试员是代表用户的,在做测试的时候,他(她)需要考虑到方方面面的事情。
例如对于一个用C写的上网拨号程序,测试员需要考虑: (1) 程序的功能是否正确;(要求计算机知识) (2) 是否符合用户的使用习惯;(要求界面设计知识和换位思考能力) (3) 性能是否满足要求,例如长时间使用;稳定性;(要求深入的计算机知识) (4) 是否能够满足用户可能的不同操作系统的要求;(要求计算机知识) (5) 如果在全球发布,是否满足不同语言和文化的需求;(要求软件国际化测试知识) (6) 如何搭建测试环境;(动手能力,硬件知识) (7) 做代码检查;(比较深入的C语言知识) (8) … 所以,各方面都了解一点,你在做测试的过程当中你会感觉顺手的多。
如果某写方面还差一些,没有关系,计算机行业的特点就是边做边学,只要是个有心人,学习是很快的。
其次,要掌握一门编程语言。
有的朋友可能会说,我就是不愿意做编程才来做测试的,怎么测试还有这么一个要求?我要尝试说服你:)。
我的理由有两个: 1. 只有知道怎么做一个软件产品,才能真正懂得这个产品。
而只有真正懂得了产品,才能做好测试。
一行代码不会,你会始终是个门外汉。
不要满足于点鼠标,而去尝试着打开我们面前的黑盒子。
2. 自动化测试技术需要编程技术。
自动化测试是软件测试的一个发展方向,一方面很多测试工具都需要人工干预,编写代码;另一方面在有的情况下需要自己编写测试工具。
对于测试员来说,编程技术不要求精通,但要会。
再次,学好英语。
在现阶段,我们只能承认,在计算机方面,英语国家领先。
有很多的资料都是英语的,如果仅仅局限在中文资料方面,会影响你的渊博程度:)。
举一个简单的例子,Windows操作系统会捕捉到一些程序或者操作系统内部的异常,你可以根据这个异常到微软网站上去查找错误原因和解决办法,其中有很大一部分资料就是英文的,因为还没有翻译过来或者以后也不会翻译的。
以上所说的几点看法,都是在计算机行业里面打转,下面说几个“虚”的要求吧。
1. 锻炼出一双测试的眼睛。
我的一个朋友,她也是做软件测试的,她说,有一次她和她老公去买笔记本电脑,她一眼就看出液晶屏上有几个坏点,而她老公却看不出来。
她说,这要归功于她有一双测试的眼睛。
测试的眼睛,就是对问题特别敏感,能够发现常人发现不了的问题。
测试员就是要找软件中的问题,有了这双眼睛会让你收益非浅。
耐心,细心和经验,会有助于我们到达这个要求。
2.平和的心态。
从心理学上说,每个人都不喜欢别人对自己挑毛病,程序员也是这样。
所以,要以平和的心态去看待发现的软件问题,以平和的心态去和程序员交流。
千万不要以为自己发现了几个问题,就可以责怪程序员,或者冲过去骂他们一顿。
也不要在背后谈论谁谁谁不行,bug太多。
一个项目是大家共同做的,需要举集体之力才能做完。
我们测试员发现的问题多,表明项目的风险又少了一点,应该高兴才是。
如果你的脾气不好,可能这个恶名会掩盖你的真才实学,很可惜的
自学软件测试
你和我类似,一样学数学的一样转的测试。
优势我就不说了。
毕竟软件测试初期是个体力活没难度。
我是培训出来的,不过学完后感觉自己学也是可以的。
学习是个循序渐近的过程,当你接触越多的时候你会发现你需要学习的越多。
我把我的经验介绍下希望能对你有所帮助。
主要看个人态度:一定要有毅力和恒心。
其次:初学可以到网上找相应的资料来学习。
(1、2学完后可以作为一个初级的测试员,建议都了解了在去工作。
)需要学习的知识有:1、计算机基础知识(不必深)(IP DNS 什么的懂点就OK)2、软件测试的基础理论软件测试意义、方法(黑盒:等价类、边界值等、白盒:域测试、逻辑覆盖)、模式(V模型W模型)、类别(功能测试、性能测试等)、软件测试常见故障模型3、学习常用的工具使用:缺陷管理工具比如:qc ,功能测试工具:QTP,性能测试工具LR4、操作系统的学习(LINUX常用命令的学习)5、数据库基础知识(增删改查 语句)
软件测试辛苦吗
这和职业无关,关键看你的公司情况,有的关系喜欢加班项目紧自然就累,和职业有什么关系呢。
一个公司不可能只开发忙死天天加班,测试很轻松可能吗,开发加班写的程序谁测试啊,别听培训机构瞎忽悠,做软件的无论什么职业都算比较累的行业,不过也没那么离谱,别人能做你怕什么呢。
学习软件测试
个人认为用一年时间够用了,我是非计算机专业用了6个月,你不是学的不用,而是不适用,不深入,这是在学校学习的通病,无需介意!理论知识要系统,毕竟你是想做这个,所以要多看点书,系统的学,也就是学整个的流程,很重要。
技术上,基本都是工作之后才可以学到实用的,但是比方说数据库的增删改查,就别等工作之后再学了,计算机专业,说不过去的。
我对软件测试前景看好,要不然我是不会学的。
不过“仁者见仁智者见智”,想学自然就好,不想学,再好也没用。
主要的还是心态问题,自己把握。
女生建议学测试,相对开发来说压力小很多,职业性别所限,绝无歧视。
中国现在很缺软件测试人员,更缺素质高的测试人员,下定决心就努力吧,中国的软件测试事业需要我们一起更新!祝早成! 忘了推荐你一本书了《全国软件测试评测师》,可以先在网上看下,还有很多,有需要给我留言!
【软件测试培训】现在软件测试这个行业到底怎么样啊?我想参加软...
在许多IT企业中,软件测试并非只担当“挑错”的角色,其重要性不亚于软件的开发环节。
据资料显示,在国外大多数软件公司,1个软件开发工程师便需要辅有1个软件测试工程师。
前微软亚洲研究院博士、软件测试专家陈宏刚表示,在很多大型的软件开发项目中,软件测试绝对不是开发活动完成后的“收尾”工作,甚至会占据整个项目周期一半以上的时间。
以IE4.0为例,代码开发时间为6个月,而稳定程序花去了8个月的时间。
从投入的资金和人力物力来看,测试、使产品稳定和修改花去的时间占到整个项目时长的80%。
而微软开发Windows2000操作系统的过程更历时3年,投入50亿美元,使用了250名项目经理、1700名软件开发工程师、3200名软件测试工程师。