软件测试的方法都有哪些
软件测试的方法根据软件工程的组织和实现方式,有很大差别,有些是比较技术化的方法,有些则是工程方法,主要分为:黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
当在单元层面黑盒而在集成层面白盒时,基本上两类方法就会有结合了,就会出现习惯上说的灰盒测试(说实话,不做到纯产品级开发,基本上都是用的灰盒测试)。
软件测试工程师和硬件测试工程师哪个好?
麻烦楼上的不要用不专业的态度来回答问题 什么叫软件测试好于硬件? 什么叫电脑城维修的就是硬件工程师? 首先回答下,硬件测试比较好点,因为软件的升级是随着硬件的升级而动的,专业的硬件测试工程师要懂得很多专业知识甚至包括所有的软件知识,一个软件测试工程师可以做好自己的工作但是不一定做好硬件工作,黑盒白盒测试就是最典型的,硬件测试你所学的知识:模拟/数字电路设计/会写代码,自动控制原理/懂的操作系统内核,以及计算机组成原理,还有测试方面的专业知识必不可少!这些是最最基本的,摆脱不要以为电脑成维修人员都懂的这些,他们充其量知道哪里坏了,帮你焊接/换零件等等,对于CPU和存储器的电路设计和编程他们是不专业的! 我不是做测试的,说起来容易误导你,但是起码专业知识我还是了解的。
LZ想了解,可以请教专业的测试工程师,希望对你有帮助
请问如何成为一个高级软件测试工程师?
1.起码有三年以上的软件开发经验现在许多软件企业招收一些刚刚毕业的大学生或者非计算机专业的人员作为自己公司软件测试工程师,这是非常错误的,也是对软件测试不负责任的表现。
虽然他们可以发现软件中的一些错误,但是对于软件中的一些关键,致命,危险的错误他们是很难发现的。
大家都知道,软件工程中有个模型叫瀑布模型,这是最基本的软件模型,这个模型又叫碗状模型,因为开发位于碗的最底部,左上方依次为建模,需求分析,设计;右上方依次为测试,部署,维护。
这就是说明软件开发是一切软件活动的基础,同时也是软件测试的基础。
一个人只有经历过一定年限的软件开发工作,才可以积累丰富的经验,知道在软件中哪些地方容易出错而那些地方不容易,这给以后的软件测试工作带来非常宝贵的经验。
2.有逆向思维的能力我曾经接触过一些软件测试工程师,他们干了一段时间软件测试工作后返回去又开始去做开发工作了,问他们为啥?答案是软件测试工作太难了,开发是顺向思维,而测试是逆向思维,老要找一些稀奇古怪的思路去操作软件。
软件的使用者千差万别,软件在使用过程中遇到的各种现象也是千差万别的,所以要求软件测试工程师需要具有一些逆向思维的能力,想别人所不想,测别人所不测,这样才可以找到更多的软件中的错误。
这是作为一名优秀的软件测试工程师最基本的素质。
3.善于同软件开发人员沟通沟通是当今软件项目中需要掌握的最关键技术之一。
软件测试人员要善于同软件开发人员沟通,软件测试人员与开发人员搞好关系,使测试人员不成为开发人员的眼中钉,这对于提高整个软件项目质量是十分重要的。
沟通主要包括:讨论软件的需求,设计:通过这样的沟通,你可以更好的了解所测试的软件系统,以至于尽可能少的测试出软件中不是错误的“错误”,从而降低给软件开发人员带来的压力。
报告好的测试结果:作为一个测试人员,发现错误往往是测试人员最愿意而且引以自豪的结果,但是一味地给开发人员报告软件错误,会给他们造成厌恶感,降低整个软件的质量和开发进度。
所以作为一名软件测试工程师,当你测试的模块没有严重的错误或者错误很少的时候,你不妨跑到开发人员那里告诉他们这个好消息,这会给你带来意想不到的结果。
讨论一些与工作无关的事情:作为一个测试人员经常和开发人员讨论一些与工作无关的事情,比如大家可以谈谈新闻,趣事,家庭…这样可以加强相互间的默契程度,许多统计表明,这样可以更好的提高软件工作质量。
4.善于同领导沟通测试人员往往是领导的眼和耳,领导根据测试人员的测试结果可以了解公司的产品质量,从而调整其他的工作。
领导工作一般比较繁忙,所以作为一名优秀的测试人员要学会把测试结果进行总结,最好以图表的形势给领导看。
5.掌握一些自动化测试工具测试工作往往是比较繁琐,枯燥无味的工作,测试人员长期处于重复的手工工作,会降低测试效率,并且对于测试质量也往往是不利的;况且许多测试不使用测试工具是不可以进行的,比如性能测试,压力测试等等。
目前市场上有许多测试工具供你使用,你可以根据自己的需要选择一些测试工具来辅助你的测试。
但是要记住一点,不是说有了测试工具就不要人工测试了,测试工具不是万能的。
6.善于学习的能力软件测试技术随着时间的变化也在做一些提高和改进,作为一名优秀的测试人员要善于利用书籍,网站,论坛,交流等各种途径不断提高自己的软件测试水平。
7.提高自己的表达能力软件测试人员当发现软件中存在缺陷的时候,往往要书写缺陷报告,缺陷报告要写得详尽清楚,使开发人员能够尽快定位错误,修改错误,所以作为一名优秀的测试人员提高自己的写作能力是非常必要的。
8.了解业务知识更好的了解你说测试软件的业务知识是非常重要的,对业务知识了解得越深入,越能够找出更深入,更关键,更隐蔽的软件错误。
所以作为一名优秀的软件测试工程师,要多向该领域专家,同行学习,提高自己的业务知识水平。
以上仅为个人的一些经验所谈,希望大家都能够成为一名优秀的软件测试工程师。
软件测试都学什么?
一、软件测试员自身素质培养(1) 首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,我相信你一定能克服。
(2) 善于怀疑,世界上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事,我却认为可能发生。
别人认为是对的,我却认为不是对的。
(3) 打破砂锅问到底的精神,对于只出现过一次的bug,一定找出原因,不解决誓不罢休。
(4) 保持一个良好的心情,否则可能无法把测试作好。
不要把生活中的不愉快的情绪带到工作中来。
(5) 做测试时要细心,不是所有的bug都能很容易的找出,一定要细心才能找出这些bug。
(6) 灵活一些,聪明一点,多制造一些容易产生bug的例子。
(7) 在有条件的情况下,多和客户沟通,他们身上有你所需要的。
(8) 设身处地为客户着想,从他们的角度去测试系统。
(9) 不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心里,并不是这样的。
(10) 考虑问题要全面,结合客户的需求、业务的流程、和系统的构架,等多方面考虑问题。
(11) 提出问题不要复杂化,这一点和前面的有点矛盾,如果你是一新手,暂时不要管这一点,因为最终将有你的小组成员讨论解决。
(12) 追求完美,对于新测试员来说,努力的追求完美,尽管有些事无法做到,但应该去尝试。
(13) 幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个“BUG杀手”,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG”。
(14) 对测试有兴趣?测试过程中有酸甜苦辣,其中的滋味只有你知道,你会感到枯燥,要学会放松自己,别放弃,因为你的自信告诉过你“你会是很优秀的测试员”二、浅谈软件测试之技巧软件测试虽然辛苦,但是掌握了一定的技巧之后将使你事半功倍。
(1) 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。
(2) 非法测试,例如在输入数字的地方输入字母。
(3) 跟踪测试,跟踪一条数据的流程,保证数据的正确性。
(4) 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。
(5) 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。
(6) 代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。
(7) 突发事件测试,服务器上可能发生意外情况的测试。
(8) 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。
(9) 在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。
(10) 认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。
(11) 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。
(12) 系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。
有些程序在WIN2000下能运行,而到WIN98却不能运行。
像一些很特别的用户去使用系统,你很有可能发现BUG。
(13) 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。
软件测试工程师就业前景好不好?
写简历首先要明确目的,投的是哪个部门,什么工作,需要你有什么工作能力。
其次用比较简洁的形式区分个人信息、工作经历、技术能力。
最后就是好好整理自己简历的内容,最重要的就是学习经历与工作经历。
那用人单位最看重的是面试者的哪些方面呢,是个人潜力,工作经验,还是执行力?对于「学生」,用人单位最看重的是基础能力,学习能力,适应能力,还有对待这份工作的热情。
其次是之前的经验或完整作品,如果实习经历的工作经验对接下来的工作是正向作用将是加分项。
对于「社招」,最重要的是经验与是否能应对所在工作未来的一些挑战。
没错。
学生看潜力,社招看经验。
知道这个道理,我们针对如何描述自己的潜力与经验来说一说。
HR 和经理筛选简历的时间很短,简历工作经验的内容上描述简洁至关重要。
假如得到面试的机会,准备充分的面试官准备的面试问题,也会以简历上工作经验为基础来设计面试题目。
社招面试只是对简历上描述的工作经历,通过一定的方法进行还原与检查的过程。
所以,简历上尽量描述之前工作的重点、难点和亮点的项目来描述,一定程度上可以增加简历筛选的通过率,还可以缩小面试的问题域,节省时间。
我介绍的是「STAR 法则」来描述简历中的工作经验,它是:Situation 背景 & 环境 Task 任务 Action 行为 Result 结果 的缩写,是一种讲述自己故事的方式,也可以理解为作文模板。
通过这样的描述方式,基本可以让我们对一件事有清楚的了解了,看个 badcase :项目时间: 1x 年 01 月 - 1x 年 12 月 项目简介: 针对垂直搜索结果性能优化 职责业绩:负责与技术部门、产品部门沟通,针对不同的评测关注点,书写评测报告,培训评测用户,中期负责监测评测是否正常进行。
后期分析数据,寻找 badcase,发现异同点,提出更改的建议,与技术和产品部门沟通。
建议是否具有可行性以及后续的建议调整。
在这里你看到了什么信息。
给我的感受是除了看到正常工作,没有直接描述他自身能力价值的信息,没有 feel 啊。
你肯定很想看到:为什么要做搜索结果优化 这面里你用了什么样的优化手段 工作上是怎么开展的 优化结果相比原来有什么提升。
很遗憾上面只看到特别笼统的平常工作而已。
这样的候选人能过,你对他的期望值有多大?让我们用 STAR 法则试试看:项目时间: 1x 年 01 月 - 1x 年 12 月 项目简介: 针对垂直搜索结果性能优化 职责业绩:-Situation & Task。
由于业务迭代速度加快,垂直搜索业务的性能衰减至 x 秒,性能优化刻不容缓。
Action。
团队一共 x 人,由我发起并推动前端性能优化,其中后端研发也一起参与。
技术上主要负责前期性能监控的打点与后期评估,前端性能方案调研以及选型。
其中,性能监控在 Chrome 等浏览器下使用了 HTML5 navigation timing 得到了更为精确的性能指标数据。
调研并实现了 bigpipe 与 bigrender 技术。
Result。
优化结果前端性能由 x 秒到 x 秒,性能直观感受提升 x0%,页面核心指标 UV/PV 提升 x0%。
除此之外,还设计了性能整改涉及的模块业务的灰度上线方案,提升了上线安全。
整体项目的结果明显,得到了经理与同事们的一致好评。
相比原来的写法重点比较突出了:技术点。
HTML5 API、bigpipe、bigrender等。
软素质。
主动能力(主动提出)、协调能力(协调多人一起解决)、产品意识(关注 UV/PV) 如果简历筛选通过后,在面试当中,面试官可能会针对 HTTP 协议,bigpipe 原理技术问题展开讨论。
在软素质块,在协调上之前遇到什么样棘手的问题之类的,看看候选人在当中怎么解决的。
在短短的 30 分钟面试时间,给面试官更有针对性的问问题也能最快的知道我们的能力。
这也是简历的一种价值体现。
说到这里,肯定有学生在问,那学生没有工作经验怎么写?-描述专业成绩。
哪门专业课成绩最好,例如对哪些算法或数据结构有深入学习,当时是怎么学的,与同学对比你的能力在什么水平。
-描述实习经历。
这个不用说了,就是工作经验的描述。
描述自己的优势。
有一位学生是高考结束,将一些考上重点大学的同学联系在一起组织了暑期的家教培训,还挣了几千块钱。
有的人觉得这没有什么,而我觉得能做好这件事就是 ta 相比别人的优势。
能让人看到这个人对做成事的决心与激情,这其实是用人单位所需要的。
另一位同学,几乎每天写一篇博客。
让我很费解的是 ta 却没有把这样的事写到简历上,每天写博客这样的执行力不是谁都有的。
知道了「STAR」法,如何写好就自己多练习练习,让同班同学或同事一起帮着看。
只有多练多琢磨才能把一件事做到足够的好。
{扩展} 简历的含义是对学历、经历、特长、爱好及其它有关情况所作的简明扼要的书面介绍。
是有针对性的自我介绍的一种规范化、逻辑化的书面表达。
其实简历不仅仅是找工作的「敲门砖」,象大公司里都有「职称评定」的工作,也都需要提交自己过去升职之后的工作进行总结。
这是「个人简历」的一种扩展,同样可以用 STAR 法则来写好。
无论什么方法,万变不离其宗,最核心的还是工作态度与工作能力。
最后,希望大家都通过好的「敲门砖」得到一份如意工作。
2018年学linux运维和软件测试那个好
给你复制下 你看看吧- 根据V模型、广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量、加快产品开发周期、降低企业的成本。
更重要预防设计出现严重的缺陷,如果设计出现缺陷,在系统集测试发现问题时,所造成的返工将是可怕的。
这就需要对设计进行复审、评审,而在这过程中,需要测试人员参与。
- 对于当前系统越来越复杂,不管是J2EE架构还是.Net架构,不管是集中式网络系统还是分布式系统,不管是主机系统还是服务器集群系统,其设计往往不是一蹴而就,而且要基于以前的经验进行设计,根据教训(发现的问题)而优化系统结构。
- 软件系统越复杂、提供的功能越多,其测试要求越高,这就决定系统必须具有良好的可测试性,这一点通过开发设计架构师来保证,不是十分保险。
- 系统的性能、安全性、稳定性、可靠性等的测试,在技术、平台环境构造、系统部署上有很高的要求。
作为软件测试架构师,其主要责任是:- 审查系统架构、系统构件/组件及其接口关系等的设计- 确保系统的可测试性- 设计软件系统的测试策略和方法,特别是在系统的性能、安全性、稳定性、可靠性等方面的测试方法、技术线路和质量标准- 构件复杂的系统测试环境,并分析、解决测试中出现的较深的技术问题(Troubleshooting)和帮助做好缺陷的隔离- 对系统(性能、安全性、稳定性、可靠性)测试作出分析、评估,并提出为改善系统性能、可靠性而进行设计修改、代码重构的建议- 设计测试自动化的技术框架,主持重要的测试工具的研究、评估、设计。
- 参与系统部署的设计- 参与新技术的评估和引进- 帮助改进测试流程、提高测试效率同时,招聘软件测试架构师,却是非常困难的,主要的原因有:- 对于大多数技术很好的工程师、架构师,对过程管理、测试策略和方法、质量等关注较少,理解不够,缺乏良好的RUP或CMM/CMMI方面的造诣。
而测试工程师在技术实现上机会较少、努力不够,技术功底不够,所以具有在系统架构和测试方法等多方面能力很强的人,是不多的。
- 目前国内业界还存在偏见,具有精湛的技术和丰富的经验的技术人员,更愿意做开发,不愿意做测试,这种现象偶尔表现在公司的薪水体系上、或者企业的管理层对此重视不够、决心不够。
- 国内测试专业发展比较迟,自然在人才市场上,有经验的、专业的测试工程师就不多,更何况是技术精湛的测试架构师。
- 软件测试架构师定位不清楚,企业没有给出清楚的责任和工作内容。
- 技术人员随着年龄增大,倾向于向管理发展,多数企业的政策也是向这方面引导。
例如副总、经理等管理职位薪水要比纯技术人员高。
实际,在多数外资企业,很强的技术人员(架构师)完全有可能高于他/她的上司。
软件工程师的前途如何?是越老越不值钱吗?
当然可以,不过要经过一定的培训还有,软件测试人员要有灵活的头脑,发散性的思维,软件开发做多了,可能在业务方面会形成一定的思维定式,这一点对开发人员转测试会有点困难http://www.cntesting.com/bbs/?u=9224http://www.cntesting.org/index.php你可以到上面两个网站里去看看,相信你会受益匪浅