软件测试的主要工作内容是什么?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-26
软件测试岗位的主要工作内容是做什么?

软件测试岗相对于IT行业其他岗位确实入门比较简单,基本上达到功能测试就可以找到工作。
使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖,判定覆盖、基本路径覆盖等;
测试工作需要贯穿整个软件开发生命周期。完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。缺陷报告编写最主要的要求是保证缺陷的重现。要求测试人员具有很好的文字表达能力和语言组织能力。
测试人员需要分析软件质量。在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。最后给出一个软件是否可以发布或提交用户使用的结论。
测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。
测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。
为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等

测试和发现软件中存在的软件缺陷
测试是贯穿软件开发生命周期
缺陷报告编写与提交
软件质量分析
简而言之 分析需求,使用丰富的测试方法验证功能的完整性和准确性,提交测试报告

软件测试员的主要工作内容是根据测试计划和测试方案进行软件测试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理。

软件测试主要工作内容是验证(verification)和确认(validation)。

验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件。

确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。


扩展资料:

软件测试的专业优势:

1、就业竞争小

人才供不应求让软件测试人员的就业竞争压力明显小于同类其它职业,有利于从业者的身心健康。

另外,由于软件测试在我国起步较晚,独立设置测试部门、对测试人员有强烈需求的多为独具慧眼的大中型IT企业。软件测试人才不需要在小企业积累经验就能获得知名企业的入门通行证,工作起点高于同类其它职业。

2、高薪

刚入行的软件测试人员,起步的月薪就在7000-15000元左右,平均薪资8000/月以上,随着工作经验的丰富以及能力的提升,这份薪水将一路看涨。

3、就业质量高

与其他IT职位相比,软件测试人员最大的优势就是发展方向太多了。由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。

在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。

4、无性别歧视

如果把软件开发领域比作“男子单打”,那么,软件测试领域就是“混合双打”。由于工作的特殊性,软件测试人员更要具有认真、耐心、细致、敏感等个性元素,而这在一定程度上与女性的个性气质相吻合。

据了解,很多IT企业中软件测试人员的比例更趋向男女平衡,甚至出现女性员工成主流的情况。

参考资料来源:百度百科-软件测试



软件测试描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试主要工作内容是验证和确认,验证是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件

1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。

2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。

3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。

4.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。

5.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。

软件测试工作流程:

1、需求分析、需求评审

需求分析和评审就是分析客户的需求可不可行,需要怎么进行测试。

2、编写测试计划

编写测试计划通俗一点讲就是什么人在什么时间做什么事,最后产出什么东西。那也就是测试人员要测试哪些模块、在什么期限内,提交哪些文档。

3、编写测试用例、用例评审

测试用例就是指导测试的文档,比如我们要测试商城登录、买东西等功能,通过测试方法和策略设计测试用例。

评审就是评价审查,不能想当然该怎么测。不能只是输入正确的用户名和密码,能登录进去就完事了。作为软测工程师需要有破坏性,比如密码输错时怎么办?会不会有相应的报错等等?

4、执行测试、提交bug、回归测试

Bug就是缺陷,发现bug之后,要提交给开发人员让他们去修改,然后进行回归测试,验证开发人员有没有改好。

5、编写测试总结报告

Bug都改好了之后,要编写测试总结报告,这款软件的质量如何。



不论是对软件的模块还是整个系统,总有共同的内容要测试,如正确性测试,容错性测试,性能与效率测试,易用性测试,文档测试等。“白盒测试”是指开发人员从程序内部对上述内容进行测试,而“黑盒测试”是指独立的测试人员从程序外部对上述内容进行测试。

1 正确性测试

正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。
基本的方法是构造一些合理输入,检查是否得到期望的输出。这是一种枚举方法。倘若枚举空间是无限的,那可惨了,还不如回家种土豆有盼头。测试人员一定要设法减少枚举的次数,否则没好日子过。关键在于寻找等价区间,因为在等价区间中,只需用任意值测试一次即可。等价区间的概念可表述如下:
记(A, B)是命题f(x) 的一个等价区间,在(A, B)中任意取x1进行测试。
如果f (x1) 错误,那么f (x) 在整个(A, B)区间都将出错。
如果f (x1) 正确,那么f (x) 在整个(A, B)区间都将正确。
上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。
还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为程序员容易疏忽边界情况,程序也“喜欢”在边界值处出错。
例如测试 的一段程序。凭直觉等价区间应是(0, 1)和(1, +∞)。可取x=0.5以及x=2.0进行等价测试。再取 x=0以及x=1进行边界值测试。
有一些复杂的程序,我们难以凭直觉与经验找到等价区间和边界值,这时枚举测试就相当有难度。
在用“白盒测试”方式进行正确性测试时,有个额外的好处:如果测试发现了错误,测试者(开发人员)马上就能修改错误。越早改正错误,付出的代价就越低。所以大多数软件公司要求程序员在写完程序时,马上执行基于单步跟踪的“白盒测试”。

2 容错性测试

容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。
比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)输入错误的数据类型,如“猴”年“马”月。
(2)输入定义域之外的数值,上海人常说的“十三点”也算一种。
粗暴一些的容错性测试俗称“大猩猩”测试,除了不能拳打脚踢嘴咬,什么招术都可以使出来。这里我举不出例子,因为我没有对程序粗暴过,并且这辈子也不打算学会粗暴。

3 性能与效率测试

性能与效率测试主要是测试软件的运行速度和对资源的利用率。有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。
在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如计算机主频,总线结构和外部设备都可能影响软件的运行速度;若与多个计算机共享资源,软件运行可能慢得像蜗牛爬行。
在获取测试的“相对值”时,我们要确保被测试的几个软件运行于完全一致的环境中。硬件环境的一致性比较容易做到(用同一台计算机即可)。但软件环境的因素较多,除了操作系统,程序设计语言和编译系统对软件的性能也会产生较大的影响。如果是比较几个算法的性能,就要求编程语言和编译器也完全一致。
性能与效率测试中很重要的一项是极限测试,因为很多软件系统会在极限测试中崩溃。例如,连续不停地向服务器发请求,测试服务器是否会陷入死锁状态不能自拔;给程序输入特别大的数据,看看它是否吃得消。

4 易用性测试

易用性测试没有一个量化的指标,主观性较强。调查表明,当用户不理解软件中的某个特性时,大多数人首先会向同事、朋友请教。要是再不起作用,就向产品支持部门打电话。只有30%的用户会查阅用户手册。[Cusumano 1995]
一般认为,如果用户不翻阅手册就能使用软件,那么表明这个软件具有较好的易用性。

5 文档测试

文档测试主要检查文档的正确性、完备性和可理解性。好多人甚至不知道文档是软件的一个组成部分。
正确性是指不要把软件的功能和操作写错,也不允许文档内容前后矛盾。
完备性是指文档不可以“虎头蛇尾”,更不许漏掉关键内容。有些学生在证明数学题时,喜欢用“显然”两字蒙混过关。文档中很多内容对开发者可能是“显然”的,但对用户而言不见得都是“显然”的。

文档不可以写成散文、诗歌或者侦探、言情小说,要让大众用户看得懂,能理解。
很多程序员能编写出好程序,却写不出清晰的文档。不要说自己以前语文学得差,现在已没救了,找借口不是办法。没有人天生就能写出好程序,都是练出来的。同理,若第一次写不好文档,就多写几次文档,慢慢地就会写出好文档来。我上大学前不会说普通话,不会写作文,现在我极能说会写,当个秘书或书记已绰绰有余。

软件测试都学习什么?你至少得学会一门语言。会一门编程语言是必要,会哪一门取决于你用的工具类型。QTP用VBS,Selenium用的比较多java/C#/ruby/python等,SilkTest用java/4test。软件测试课程就安排了Python、Java的编程语言学习,适合没有基础的人学习。
对于自学的人而言,你要知道:
好高骛远是许多初学者的通病,总幻想自己发疯似地努力几天或几个月就成为"高手",正是由于自己的这种好高骛远的"雄心壮志",往往给自己定下一些不切合实际的太多的目标,比如:"这个月学汇编,下个月学C语言,再下个月学C++,然后进入VC++集成开发环境做开发。",结果到头来经过几个月的努力,却发现与原定的目标相去甚远,激情和信心也没有了,而且什么都没学好。
其实并不是因为你笨,学习能力不强,而是太心急了,看看身边的高手们,哪一个不是至少有几年功力的酝酿的?如果你觉得自己很聪明,但请记住这句话:"天下的聪明人太多了,你想在三到五年就把别人十年做的事情做一遍,那你也一定会把别人在十年中所受的苦难在这三到五年中经历一遍。"
首先你要明白为什么要学软件测试。软件测试的重点是什么。然后在去了解市场上的软件测试培训机构各自的优劣势,比如他是不是软件测试擅长专业(很多机构之前擅长培训其他,如语言,然后后面看到同行做再加入的测试),开班多久,毕业学员的情况,价格,相应政策,活动等多维度比较,选择适合自己,或自己较为满意的。
很多机构可以参观试学习的,可去体验,然后向正在机构内的学员多打听下。也可以在论坛或群里向毕业的学生了解。总之,不要太相信机构的宣传和学员的回馈评价,因为都是片面的,要学会多比较分析,适合自己的才是最好的。

假如你从事的是功能测试,那么需要掌握bug管理工具的使用,例如Bugzilla、TestDirector、Bugfree等等。如果公司使用工具来管理用例,建议你研究一下TestLink的方法。当然你还必须具备编写测试用例、测试总结报告、测试计划的能力,功能测试主要考察耐心、细心还有文档的编辑能力。
假如你从事的是自动化测试,那么需要掌握一些工具,例如QTP。
假如你从事的是性能测试,那么需要掌握性能测试工具,例如LoadRunner、WinRunner等等。
个人觉得软件测试一考察细心及发现问题的能力,二考察工具的使用,三就是经验的累积。
但软件测试都是建立在编程之上的

  • 软件测试主要做什么工作?
    答:软件测试其实就是找代码的bug,发现软件的错误。那么软件测试工程师具体是怎么找bug的呢?第一步.依据需求文档及设计文档,编写测试用例 软件测试工程师的第一大要务就是写测试用例,测试用例也是测试工作当中的重中之重,不管是执行测试还是评估测试,都需要有测试用例作为依据,所以作为软件测试工程师必须要...
  • 软件测试主要做什么工作?
    答:2、搭建测试环境、执行测试用例。3、提交测试报告。4、跟踪Bug修改情况,不断测试完善产品。5、产品的其他方面测试。当然这还不算最后的完结工作,因为软件测试是贯穿于整个软件生命周期的,所以还需要对线上功能检查、当前版本问题反馈以及改进建议等,这样才算是比较完整的一个最终结束。软件测试的职业发展...
  • 软件测试主要做什么工作?
    答:软件测试的工作职责是:1、制定、编写软件测试方案与计划;2、按时完成软件测试工作任务,执行测试,跟踪缺陷状态,提交测试执行报告;3、编写测试文档、测试报告,提交测试结果;4、测试环境的设计、设置,完善测试规范流程、创建和维护测试用例;5、改进软件测试流程、工具和质量;6、参与测试结果评审。51Test...
  • 软件测试是干什么的?
    答:软件测试的工作还包括把发现的问题整理成报告上交,提交缘分开发工程师,当得到确认后再对软件进行修复。对于软件测试是干什么的问题,大家还需要了解,测试人员在整理报告的时候应使用专业的术语,同时要具备很好的文字表达能力以及较强的语言组织能力,也只有这样才能把发现的缺点或不足详细、清楚的表达出来...
  • 软件测试是干什么的?
    答:其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。以上内容参考:百度百科——软件测试工程师 ...
  • 软件测试流程是什么?
    答:Bug就是缺陷,发现bug之后,要提交给开发人员让他们去修改,然后进行回归测试,验证开发人员有没有改好。5、编写测试总结报告 Bug都改好了之后,要编写测试总结报告,这款软件的质量如何。软件测试的重要性 软件测试的目的就是确保软件的质量、确认软件以正确的方式做了你所期望的事情,所以他的工作主要...
  • 软件测试员主要工作是做什么?
    答:软件测试主要工作内容是验证(verification)和确认(validation)。验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件。确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。
  • 软件测试的工作内容是什么呢
    答:一起来看看吧。软件测试的工作内容1、通过技术测试出开发出来的软件存在的bug,也就是找出软件的缺陷和不足。2、找出问题后,需要用行业专业术语,把这些问题整理成规范的问题报告,将问题详细、专业的呈现给软件开发人员。3、除了要找出软件本身存在的问题以外,还需要去分析软件质量的优劣,然后从不同方面...
  • 软件测试的主要工作内容是什么?
    答:软件测试很多刚入行的小伙伴,一开始都会选择这方面的工作。主要的工作内容,对于软件测试中不同岗位还是有比较大的差距的。如测试实习、测试助理、测试开发等,专项测试又包含性能测试,安全测试,接口测试,白盒测试等,其工作虽然都是保证最后的产品质量,但每种类型的测试都是针对不同的维度去做测试的。不过也得看公司...
  • 软件测试一般是做什么的
    答:以上的都是官话!其实说白了,软件测试就是在开发人员做出软件投放市场前,尽可能早的找出软件当中所存在的BUG!因为任何软件在理论上来说都是存在问题的,都不是完美的!尽早的找出漏洞,公司的损失也就越低!这也就是软件测试人员越来越受重视的原因!其实软件测试是一种相当乏味枯燥的工作,一般面公司...