常用的软件测试方法和工具
开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator [TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTest Professional]:用于创建功能和回归测试。
[LoadRunner]:预测系统行为和性能的负载测试工具。
[其他工具与自动化测试框架]:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。
国内免费软件测试工具有:AutoRunner和TestCenter。
如何才能算是一个合格的软件测试人员?
1.具有探索精神:软件测试员不会害怕进入陌生环境。
2.具有故障排除能力:软件测试员善于发现问题的症结,喜欢猜谜。
3.不懈努力:软件测试员总是不停尝试。
他们可能会碰到转瞬即逝或者难以重建的软件缺陷;他们不会心存侥幸,而是尽一切可能去寻找。
4.创造性:测试显而易见的事实,那不是软件测试员;他们的工作是想出富有创意甚至超常的手段来寻找软件缺陷。
5.追求完美:他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力接近目标。
6.判断准确:软件测试员要决定测试内容、测试时间,以及看到的问题是否算作真正的缺陷。
7.老练稳重:软件测试员不害怕坏消息。
8.说服力:软件测试员要善于表达观点,表明软件缺陷为何必须修复,并通过实际演示力陈观点。
9.在编程方面受过教育。
软件测试方法?都有哪几种?
第一类测试方法是试图验证软件是“工作的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的;而第二类测试方法则是设法证明软件是“不工作的”。
还有两大类:白盒法和黑盒法。
白盒法:你清楚程序的流程时,用不同的数据测试你程序的代码,验证程序的正确性,有:条件测试,路径测试,条件组合。
。
。
。
白盒法用在程序开发阶段的前期。
黑盒法:主要用于程序开发阶段的后期,即程序的流程测试正确后,测试程序的结果。
有什么因果法,边缘值法等。
具体你可以买本软件工程方面的书看看。
还有一下方法:功能测试:可接受性测试:用户界面测试:探索或开放'型的测试:性能测试:回归测试:强力测试:集成与兼容性测试:装配/安装/配置测试:国际化支持测试:本地化语言测试:这些都是测试的方法.
什么是探索式测试
展开全部探索性测试定义:同时设计测试和执行测试。
探索性测试可以说是一种测试思维技术。
它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。
探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
...
探索性测试的探索性测试的基本过程
探索性测试识别软件系统的目的;识别软件系统提供的功能;识别软件系统潜在的不稳定的区域;在探索软件系统的过程中记录关于软件的信息和问题;
怎么做好软件测试?一个合格得软件测试师要具备哪些能力?
自动化测试方面接触不多,就黑盒测试方面,我说下我的理解。
基础的:1、做测试时要绝对专心,要有很强的判断能力,bug出现在你面前你不能疏忽漏掉并且要能准确判断它是哪类哪个区域的bug以及严重程度。
2、要能准确描述bug发生的各种情况和实际结果、复现bug的各种步骤和各种方法,期望结果写的全面些而非一句“它应该正常工作”这么简略,有能力的话再给点建议辅助开发人员快速修复bug。
3、对bug负责,做好bug跟踪和回归测试工作,直到bug修复。
进阶的:1、可以根据文档设计测试计划、测试用例。
在没文档的情况下,快速理解软件工作逻辑,创建些简易文档辅助测试,进行测试工作时规范的写下所用测试用例和结果。
2、掌握一些测试方法,比如说探索式测试。
3、掌握些软件设计、产品设计方面的知识,便于理解软件,从而辅助测试工作。
目前我能想到的大概就这些,希望对你有帮助:)
互联网公司的软件测试工程师们都在干什么?
互联网和传统行业的不一样,变更多,迭代快,测试工程师们能大噶说一下吗?还有,怎么样才能提高自己的价值呢? 精彩答案: 会员jijiting: 抛砖引玉,了解皮毛而已。
测试要做的是,检测和监控产品的质量,提高测试效率,优化测试流程,改善评测办法,为产品的改进和上线提供保障。
测试工程师大概在做: 1、功能测试:包括和开发、产品确认产品需求,做测试计划,设计测试用例,做测试用例评审,做冒烟测试或者准入测试,执行测试用例,多轮迭代测试,一直跟踪到上线之后的回测,以及看下用户的反馈,确认测试过程中有没有遗漏(算作是KPI的一部分)。
在这个过程中,可以反思自己的疏漏,完善测试的流程,完善测试的检查点,增加各种类似的测试,思考可以自动化的部分并实现。
2、自动化测试:对界面、接口或者后台进行自动化的测试,在测试的前期可以保障基本功能的正常,在测试中期可以保障开发的修改没有对产品质量引起严重问题,在测试的后期可以做上线前的回归测试,上线之后可以作为日常的监控。
自动化的测试在不同平台、不同操作系统、不同浏览器下使用不同的工具,采用不同的框架,所以在没有这些的时候需要调研目前行业内比较流行的解决方案,寻找到适合自己产品的方法来解决问题。
之后开始设计测试用例,并进行实现。
产品的改进过程中需要进行维护,保证随时都可以通过。
3、性能测试:测试产品的性能,在多大的压力下可以满足当前预期的用户请求。
需要使用各种压力工具,做压力文件,安排与线上一致的测试机器或者精简后的环境进行测试,对测试出来的数据进行分析,确认现有的系统是否存在问题。
貌似环境部署可能是个问题,所以公司里面会有大牛做一些自动部署的工具,甚至会开发出一些独立的平台来完成多台机器的部署工作,可以节省很多的时间。
测试出来的数据跟产品以及开发人员确认,也可能会找到一些方案来解决。
4、测试开发:相对来说开发的工作比一般测试工作要多一些。
开发一些自动化的测试的平台,比如一些评测系统,供人工评测试用;设计一些测试框架,来满足日常自动化以及性能测试的需要。
制定持续集成测试的平台和方案并且实现,结合自动化的测试实现人工测试之前的自动化测试实现,对开发的代码进行监控,跟踪并尽量帮开发改进产品质量等等。
这块我比较白,还在仰视阶段。
接受其他测试人员的需求,开发合适的工具来提升整体测试效率,改进测试方法。
5、测试工具以及测试理念的推进。
测试在大多数人看来还是比开发要差一些的,测试工具还可以,能够直接快速的反映出测试人员的价值,但是更多的功能测试、性能测试还需要跟开发去沟通,让他们意识到测试的重要性,但是最重要的还是要提升测试自己的工作能力,尝试影响开发人员并且和开发人员一起,最终提升产品的质量。
6、测试人员还是要多学习吧。
要是觉得测试是个人都可以做的就别来趟这个浑水了。
会员 姜雷: 我当时是做实习生,实习生的时间比较自由,也没有具体的产品、KPI捆绑,所以我做的主要是没有具体产品关联的长线项目。
比如说自动测试平台的搭建,测试自动化辅助工具的开发,原有测试脚本的集成、改写、自动化等工作(比较杂,有些随性,我甚至写过单元测试——这个应该是dev做的)。
还有就是一些具体的模块覆盖率的提高、测试自动化的探索。
具体到身边的入职同事们,工作就比较杂了。
忙起来的时候,是黑盒、白盒;自动化、手动的都要做。
项目上线之前的功能、性能、压力测试等都是必要做的,由于目前国内互联网发展较快,项目改进迭代的压力很大,所以有的时候感觉身边的同事都被项目纠缠得忙——这就是为什么上下一心都觉得自动化很重要。
当然,还有些人专门做测试工具的开发和测试流程改进的探索,我当时所在的部门也开发了很不错的自动化测试工具——这应该是我接触过的最接近开发的测试开发人员了。
我实习的组测试人员比较主动,去做了一些项目敏捷化的探索,还主导了项目的敏捷化,但是开发人员那边跟进得并不是很积极——我个人认为这个应是开发人员主导的,而且整个团队都参与进来,各个人员的角色需要有交叉——可惜我在实习期间没有体验到这些,这个在形成了一定的规模的国内公司估计很难改变。
我实习结束的时候,有些组在流程上已经非常敏捷、自动化了,但是毕竟是上线的产品,自动化的初期肯定有一定的阵痛,估计现在应该好多了。
另外,谈谈我个人的一些感受,如果专门做测试的话,我觉得最大的问题就是成就感的问题。
你做的似乎永远只能是内部使用的东东,永远不会成为呈现在用户面前的产品(gtest等测试框架产品除外)。
当一个项目上线以后,你得到的relief多一些,但是成就感相对少一些。
我只是从实习生的角度谈的。
[技术]什么是软件测试及软件测试的目的
什么是软件测试 ·软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控 制条件应包括正常条件与非正常条件。
·软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应 该出现的时候没有出现。
从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。
·软件测试贯穿于软件定义与开发的整个周期 ,软件的需求规格说明书 ,结构设计及程序编 码,都属于软件测试的对象。
·软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的测试工作, 黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验证软件功能、 性能等指标能否满足实际应用需求的测试工作。
软件测试的目的 软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。
一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。
测试是为了证明程序有错,而不能保证程序没有错误。
学习软件测试如何入门?
软件测试入门的话,首先需要掌握测试一些基础概念:比如白盒测试,黑盒测试,回归测试,探索测试等。
其次需要了解测试用例设计方法,测试用例要素,及如何编写好的测试用例。
最后要了解测试流程,如何开展测试工作。
在这基础上,可以在黑马程序员再针对性的学习一些自动化测试相关的技术和方法。
软件测试工程师应该学些什么方面的知识?
软件测试工程师应该学习知识:(1)软件开发技术很多人认为,干吗要学习软件开发啊,那还不如直接去学什么JAVA、C++、C#了。
要知道,在以后的软件测试工作中,你就会发现软件开发与软件测试之间是什么样的关系了。
没有软件开发,就没有软件测试,有了软件测试,软件开发出的软件产品才能够达到用户满意的地步,他们之间是相互依赖关系。
有了更多的软件开发知识,就会更好地能理解软件产品,就知道在哪个环节开发人员容易犯错误,知道在哪个逻辑结构、哪个接口或函数,甚至是从内存的管理机制上都可以找出问题。
软件开发所用的程序设计语言有很多种,所以要精通其中一门,其他能看懂代码,会对你的测试工作有更好的帮助,另外也会帮助开发人员进行快速缺陷定位。
而且在软件测试工作中,要编写一些辅助测试的小工具,都需要有软件开发基础。
象测试过程管理工具、测试用例管理工具、缺陷跟踪工具、性能检测工具等等。
不要老是认为软件开发难,什么事都是从不会到会,从不精通到精通,都需要一个过程。
没有人一生下来就什么都会的,都需要自己的不断努力才能成功。
(2)网络技术软件是从字符界面产品发展到图形界面产品,从单机版到网络版(C/S结构和B/S结构),经历了一个漫长的过程。
计算机网络的出现,改变了现实社会中人们的相互沟通方式,把一个小小的地球变成了一个地球村。
所以,目前所有的软件产品都从传统的单机模式向网络模式转变,网络技术就更加关键。
目前网络的发展,使得网络速度进一步提高。
目前,家庭网速达到1M~2Mbps,企业达到4Mbps,据说要到2012年家庭的网络速度要达到20Mbps。
那么网络硬件从传统的电缆到目前的光纤技术、无线通信技术。
从目前的发展速度,三网(电信网、电视网、计算机网络)合并是迟早的事情。
网络硬件协议的测试,也是网络设备生产商要做的工作。
(3)数据库技术现在的数据信息是海量的。
在目前的软件产品中,底层架构中就需要有数据库进行数据存储,那么对数据的增删改查的操作是软件测试人员必须要必备的技能。
数据库测试也是测试技术的一种。
(4)测试与质量保证技术精通软件测试理论,熟悉软件测试流程,理解软件测试的哲学思想,掌握软件测试每个阶段的文档编写技巧,掌握软件测试的策略与各种测试方法,掌握测试用例的设计方法。
掌握单元测试、集成测试、确认测试、系统测试、验收测试等每个阶段的测试技术。
软件质量保证知识、测试项目管理、测试团队建设知识也是必须要具备的。
掌握软件测试自动化工具,理解软件测试自动化测试框架,能够学会如何进行测试项目管理、回归测试以及性能测试,能够把性能缺陷进行定位。
软件测试还是一个崭新的学科,还没有形成一个独有的知识体系,还需要我们不断的研究与实践。
(5)行业知识目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都需要大量的测试,所以相关行业知识的储备也是必须的。
(6)职场规范职场礼仪是必须的,你是否适合某个企业,能否融入这个企业,基本的职场规范是要学习的。
必要、有效的沟通也是软件测试人员所必须掌握的技巧。