软件测试行业是很多不想做开发的小伙伴向往的,薪资高、压力小的IT行业。那么一些不太了解的小伙伴可能会想知道,软件测试的目的究竟是什么呢?今天就让我带着大家来了解一下。
在讲软件测试的目的之前呢就要讲一下软件测试的概念了。软件测试指的是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试是运行程序的过程,目的在于发现错误,在用户使用之前发现错误。
如果没有测试这一关,那么产品被开发出来就会直接被用户使用。没用经过测试的产品难免会有一些bug、缺陷。那用户就会对产品存在不满意的地方,甚至会造成投诉,对公司进行追责。
软件测试的作用就是在用户之前提前发现错误,测试工程师要站在用户的角度来发现错误,使用户拿到的产品质量更高,让用户更满意。
1、一个好的测试在于发现至今未发现的错误。软件测试的目的当然是发现程序当中的错误。那什么是好的测试呢,就是在下一轮软件迭代后的测试中发现了上一轮没有发现的错误。
2、一个成功的测试用例是在于发现了至今未发现的错误的测试。这样的软件测试用例对错误的发现率会很高,这就是一个好的测试用例。
什么是软件测试
一、软件测试概述
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doing the right things right at the right time.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、质量也代表着它符合客户的需要(Quality also means “meet customer needs”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。
测试人员在软件开发过程中的任务:
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目标是:确保软件的质量。
二、常用的软件测试方法
1. 黑盒测试
2. 白盒测试
3. 基于风险的测试
4. 基于模型的测试
三、软件测试的类型
常见的软件测试类型有:
BVT (Build Verification Test)
Scenario Tests(基于用户实际应用场景的测试)
Smoke Test
Application Compatibility Test(兼容性测试)
Accessibility Test(软件适用性测试)
Functional Test(功能测试)
Security Test(安全性测试)
Stress Test(压力测试)
Performance Test(性能测试)
Regression Test(回归测试)
Setup/Upgrade Test(安装升级测试)等。
都说 软件测试 入门不难,可我怎么觉得好难,现在在一家公司培训,讲写 测试案例,我却感觉听不明白,
从事软件测试4+年
软件测试入门并不难;
1、 刚入门的测试人员的工作内容就是执行前辈写好的测试用例、提交BUG单、跟踪BUG进展
2 、这段时间你是新手;不需要写用例、不需要写报告、不需要写测试计划。
3、对于公司来说;不会指望刚刚招了一个实习生就希望她能马上干活
所以;对于才会说软件测试其实入门很简单,只要你的阅读理解和沟通表达能力正常就可以胜任
软件测试提升
1、操作系统的知识(什么软件都是运行在操作系统之上的、一般的操作必须要会)
2、数据库知识(现在还能找到多少不需要数据库的大型软件捏?)
3、计算机网络(通信呀通信、千万不要TCP和UDP都分不清楚)
4、计算机硬件(你要是C/S架构的测试或者是做性能测试、那么计算机硬件都是必修课了、总得知道IO是什么IOPS又是啥)
5、各种测试工具的使用、什么QC/TD/BUGfree/QTP/LR之类的 不需要样样精通但是必须要熟练使用
6、软件测试基础知识(这年头没有知识是万万不能的、软件测试基础知识其实买几本书好好看看就能学个差不多了)
7、开发语言(做到高级软件测试的人都是会写点小工具的)
8、测试环境配置:这个要说下、我在做配置管理的时候发现很多测试人员居然连自己的测试环境都配置不好、一个连自己的测试环境都不会配置的人会成为一个合格的测试么。(你要测试web的apache、tomcat、iis之类的得会配置吧)
--------------------华丽的分割线-------------
最后祝你好运!
-------------分割线-----------------
攒钱多少和你是否有过培训没必然的联系、你应该去了解下攒钱多的人的能力;
有的时候就算是拍马屁也是一种能力更多
现在并没要我做事,只是学习 今天学 测试案例 培训时候就听睡着了,再就是什么都不会,看公司发的 资料也看得不大明白 看一起和我进来的 都学的还可以,不知道是不是自己太笨了
像这样下去自己快要呆不下去了,毕竟每天上班好远,来回都5个小时,还学的这样
人学不好不是笨,是你自己的行为问题。你问一下你自己,是不是哪里出了问题?世界上没有笨人,只有懒惰者。希望你能好好总结一下。青春有大把时间,不要浪费在你手里。加油吧!
有什么书 推荐一下呢
入门简单点的
《软件测试实用技术与常用模板》,李龙等著。机械工业出版社出版。这本书不错,用例和模板也特别多。
给你个网址可以试读一下。
http://book.51cto.com/art/201010/229926.htm
觉得好就采纳。还有问题就
恩恩
"软件测试工程师"是具体做什么工作呢?
软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。那么软件测试工程师的工作内容有哪些呢?
1、测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。为了提高测试用例的设计效率,BTEST培训课程专门开设了高效设计测试用例一门课来讲授各种设计用例的技术与方法。
2、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等。
3、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
4、测试工作需要贯穿整个软件开发生命周期。完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
5、为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
6、测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。缺陷报告编写最主要的要求是保证缺陷的重现。要求测试人员具有很好的文字表达能力和语言组织能力。
7、测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。
8、测试人员需要分析软件质量。在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。最后给出一个软件是否可以发布或提交用户使用的结论。
软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。而且随着项目经验的不断增长和对行业背景的深入了解,会越有经验越吃香。
软件测试过程的输出件有哪些?
测试用例、测试需求、测试计划、阶段性测试报告、测试报告这几个是必须的。不同的测试还有不同的其它可选文档,比如自动化测试需求、Bug总结报告、检测报告等。
软件测试有前途么?
你好,做软件测试没几年,以下是个人建议,供参考:
1.首先,我先说一下测试的前途:
1.1 刚刚起步
软件测试现在在国外非常热门,而在国内还刚刚起步.根据中国商业的发展状况来看,在一个领域还刚刚处于起步状态的时候,就进入这个领域,是个不错的选择.任何东西等大红大紫后再涉入,将是一个不明智的选择.
1.2 发展状况
目前中国越来越多的重视软件测试这一行业,而且,这一行业的人才缺口非常大(国内120万软件从业人员中,真正能担当软件测试职位的不超过5万人,人才缺口达到20万并有逐年扩大的趋势).现在好多大型企业在招聘会中直接打出高薪聘请软件测试工程师的条幅,可见其就业形势还是蛮不错的.
1.3 薪资状况
我现在工作一年半,北京,月薪6000+.以下是网上找的资料,可供参考:
起步月薪就在3000-5000元左右,远高于同龄人1000-2000元的薪资水平,另外还可享受带薪年假、内部培训、住房公积金等福利待遇,工作2-3年月薪大约在8000-13000元之间,甚至超出很多相同服务年限的软件开发人员的薪资水平。
2.开发好还是测试好:
2.1 首先要看你的专业素养,现在的就业状况是,C++和C#找工作还可以,若是只会JAVA,除非你技术非常过硬,否则很难找到理想的工作.开发在国内已经处于饱和状态,也就是所谓的已经大红大紫了,这是再往里塞,就要有被塞扁的思想准备.
2.2 若是你水平只是处于中等,那么建议你去做测试.国内开发的高级人才很多,跟他们竞争,无论是从实力还是经验,都不如人家.而测试需要的是计算机知识广泛,最好熟悉多种开发语言,这样比较有前途.
3.该如何前进
3.1 首先要提高自己的英语水平,尤其是专业英语的水平,这样等你有机会跟国外客户直接沟通的时候比较方便.
3.2 尽量拓宽自己的计算机方面的知识范围,包括对网络,数据库等的学习.
3.3 最好熟练掌握一门开发语言,对其他的开发语言也最好知道一些.
3.4 进入公司后,积极表现自己,能力提升的快,职位也就提升的快.
不知道写的够不够详细,仅供参考,祝你有个好的前程!
走软件测试的提升大吗?请上班的学长学姐给我提提建议,我是学计算机网络的,我现在不知道改走哪条路?
我们先拿微软公司的测试工作内容来看看,基本了解一下软件测试是干什么,你就好选择了。
微软的软件测试工作
1. 基本情况
测试在微软公司是一项非常重要的工作,微软公司在此方面的投入是非常巨大的。微软对测试的重视表现在工程开发队伍的人员构成上,微软的项目经理、软件开发人员和测试人员的比例基本是1:3:3或1:4:4,可以看出开发人员与测试人员的比例是1:1。对于测试的重视还表现在最后产品要发布的时候,此产品的所有相关部门都必须签字,而测试人员则具有绝对的否决权。
测试人员中分成两种职位,Software Development Engineer in Test(测试组的软件开发工程师)实际上还是属于开发人员,他们具备编写代码的能力和开发工具软件的经验,侧重于开发自动化测试工具和测试脚本,实现测试的自动化。Software Test Engineer(软件测试工程师)具体负责测试软件产品,主要完成一些手工测试以及安装配置测试。
2. 测试计划
测试计划是测试人员管理测试项目,在软件中寻找Bug的一种有效的工具。测试计划主要有两个作用,一是评判团队的测试覆盖率以及效率,让测试工作很有条理的逐步展开。二是有利于与项目经理、开发人员进行沟通。有了测试计划之后,他们就能够知道你是如何开展测试工作的,他们也会从中提出很多有益的意见,确保测试工作顺利进行。总之,有了测试计划可以更好的完成测试工作,确保用户的满意度。
测试人员在编写测试计划之前,应获得以下文档:
1)程序经理编写的产品功能说明书或产品开发计划;
2)程序经理或开发人员提供的开发进度表。
根据产品的特性及开发进度安排,测试人员制定具体的测试计划。测试计划通常包括以下内容:
1)测试目标和发布条件:
a. 给出清晰的测试目标描述;
b. 定义产品的发布条件,即在达到何种测试目标的前提下才可以发布产品的某个特 定版本。
2)待测产品范围:
a. 软件主要特性/功能说明,即待测软件主要特性的列表;
b. 特性/功能测试一览,应涵盖所有特性、对话框、菜单和错误信息等待测内容,并列举每个测试范围内要重点考虑的关键功能。
3)测试方法描述:
a. 定义测试软件产品时使用的测试方法;
b. 描述每一种特定的测试方法可以覆盖哪些测试范围。
4)测试进度表:
a. 定义测试里程碑;
b. 定义当前里程碑的详细测试进度。
5)测试资源和相关的程序经理/开发工程师:
a. 定义参与测试的人员;
b. 描述每位测试人员的职责范围;
c. 给出与测试有关的程序经理/开发工程师的相关信息。
6)配置范围和测试工具:
a. 给出测试时使用的所有计算机平台列表;
b. 描述测试覆盖了哪些硬件设备;
c. 测试时使用的主要测试工具。
此外,还应列出测试中可能会面临的风险及测试的依赖性,即测试是否依赖于某个产品或某个团队。比如此项测试依赖性WindowsCE这个操作系统,而这个系统要明年2月份才能做好,那么此项测试就可能只有在明年5月份才能完成,这样就存在着依赖关系。如果那个团队的开发计划往后推,则此项测试也会被推迟。
3. 测试用例开发
一个好的测试用例就是有一个合理的概率来找到Bug,不要冗余,要有针对性,一个测试只针对一件事情。特别是功能测试的时候,如果一个测试是测了两项功能,那么如果测试结果失败的话,就不知道到底是哪项功能出了问题。
测试用例开发中主要使用的技术有等价类划分,边界值的分析,Error Guessing Testing。
等价类划分是根据输入输出条件,以及自身的一些特性分成两个或更多个子集,来减少所需要测试的用例个数,并且能用很少的测试用例来覆盖很多的情况,减少测试用例的冗余度。在等价类划分中,最基本的划分是一个为合法的类,一个为不合法的类。
边界值的分析是利用了一个规律,即程序最容易发生错误的地方就是在边界值的附近,它取决于变量的类型,以及变量的取值范围。一般对于有n个变量时,会有 6n+1个测试用例,取值分别是min-1, min, min+1, normal, max-1, max,max+1的组合。边界值的分析的缺点,是对逻辑变量和布尔型变量不起作用,还有可能会忽略掉某些输入的组合。
Error Guessing Testing完全靠的是经验,所设计的测试用例就是常说的猜测。感觉到软件在某个地方可能出错,就去设计相应的测试用例,这主要是靠实际工作中所积累的经验和知识。其优点是速度快,只要想得到,就能很快设计出测试用例。缺点就是没有系统性,无法知道覆盖率会有多少,很可能会遗漏一些测试领域。
实际上在微软是采用一些专门的软件或工具负责测试用例的管理,有一些测试信息可以被记录下来,比如测试用例的简单描述,在哪些平台执行,是手工测试还是自动测试,运行的频率是每天运行一次,还是每周运行一次。此外还有清晰的测试通过或失败的标准,以及详细记录测试的每个步骤。
4. Bug跟踪过程
在软件开发项目中,测试人员的一项最重要使命就是对所有已知Bug进行有效的跟踪和管理,保证产品中出现的所有问题都可以得到有效的解决。一般地,项目组发现、定位、处理和最终解决一个Bug的过程包括Bug报告、Bug评估和分配、Bug处理、Bug关闭等四个阶段:
1)测试工程师在测试过程中发现新的Bug后,应向项目组报告该Bug的位置、表现、当前状态等信息。项目组在Bug数据库中添加该Bug的记录。
2)开发经理对已发现的Bug进行集中讨论,根据Bug对软件产品的影响来评估Bug的优先级,制定Bug的修正策略。按照Bug的优先级顺序和开发人员的工作安排,开发经理将所有需要立即处理的Bug分配给相应的开发工程师。
3)开发工程师根据安排对特定的Bug进行处理,找出代码中的错误原因,修改代码,重新生成产品版本。
4)开发工程师处理了Bug之后,测试人员需要对处理后的结果进行验证,经过验证确认已正确处理的Bug被标记为关闭(Close)状态。测试工程师既需要验证Bug是否已经被修正,也需要确定开发人员有没有在修改代码的同时引入新的Bug。
5. Bug的不同处理方式
在某些情况下,Bug已处理并不意味着Bug已经被修正。开发工程师可以推迟Bug的修正时间,也可以在分析之后告知测试工程师这实际上不是一个真正的Bug。也就是说,某特定的Bug经开发工程师处理之后,该Bug可能包括以下几种状态。
已修正:开发工程师已经修正了相应的程序代码,该Bug不会出现了。
可推迟:该Bug的重要程度较低,不会影响当前应提交版本的主要功能,可安排在 下一版本中再行处理。
设计问题:该Bug与程序实现无关,其所表现出来的行为完全符合设计要求,对此应提交给程序经理处理。
无需修正:该Bug的重要程度非常低,根本不会影响程序的功能,项目组没有必要在这些Bug上浪费时间。
五、成为优秀测试工程师的要求
要成为一名优秀的测试工程师,首先对计算机的基本知识要有很好的了解,精通一门或多门的编程语言,具备一定的程序调试技能,掌握测试工具的开发和使用技术。同时要比较细心,会按照任务的轻重缓急来安排自己的工作,要有很好的沟通能力。此外,还要善于用非常规的方式思考问题,尽可能多的参加软件测试项目,在实践中学习技能,积累经验,不断分析和总结软件开发过程中可能出错的环节。这样,一名优秀的测试工程师就从软件测试的实践中脱颖而出了。
结束语:微软的软件开发经验积淀深厚,微软工程师们的授课生动溢彩,其中有些内容是结合编程代码所作的详细讲解,较难用介绍性文字加以概括提炼,加之笔者受能力和精力所限,只能撷取部分精华内容整理成文以飨读者,因此难免是挂一漏万,甚至会有失误之处,敬请对本系列文章的关注者谅解及指正。最后对微软老师们的辛勤付出再表由衷谢意!
大家如何看待一年的(软件)测试经验去参加培训这件事?
学历是敲冂砖,偶高中毕业,在兄弟连软件学院毕业之后找的工作室6起,比偶高学历的工资还多,不过之前偶也觉得学历什么的真的无所谓,但是去兄弟连软件学院之后才发现,学历还是要有的,并且在那学完计算机出来,偶现在也是大专生啦,准备和老师说下考个本科。
转载请注明出处51数据库 » 软件测试必须知道的几件事 软件测试是什么以及目的