软件测试的方法都有哪些
软件测试的方法根据软件工程的组织和实现方式,有很大差别,有些是比较技术化的方法,有些则是工程方法,主要分为:黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
当在单元层面黑盒而在集成层面白盒时,基本上两类方法就会有结合了,就会出现习惯上说的灰盒测试(说实话,不做到纯产品级开发,基本上都是用的灰盒测试)。
软件测试都学什么?
一、软件测试员自身素质培养(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) 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。
软件测试怎么样?薪水呢?
软件测试。
。
。
怎么说呢是这样,目前中国大多数企业的软件测试人员技术能力都不强,技术含量都不高,原因就在于,软件测试人员分成两种,QCE和QAE,这两者的不同之处就在于,设计和执行,注意我说的先后顺序。
你走访各大招聘会,你会发现,公司对于软件测试人员需求很大,他们要的不是一个只会按照安排做事的人,而是一个富有创造力的人。
要作软件测试很容易,要作软件测试也很难。
从我们公司的情况来讲,软件测试的地位比软件研发要差,但谁都不能否认软件测试在整个项目开发环节中的重要作用。
没有了测试环节,软件如何保障?你现在是开发人员,有编程基础,这很好,我建议你,一旦真去作了软件测试人员,千万不要让自己沉没。
不要作一个平庸的测试人员,不要只知道如何操作如何依据测试计划执行,一定要有创造力,自己开发测试小工具,找RD寻求项目代码进行白盒测试,自己修改已有测试计划,撰写更专业的测试计划,这样,你才会有前途。
肺腑之言,因为,我也是一名QA engineer.说一下薪水吧,在我们公司,测试人员和研发人员的薪资不是由职位划分的,而是由你的职级划分的,职级越高,当然工资越高。
而Coder在我们公司的薪水很低,原因在于,编码很容易,但项目设计实现和架构搭建很难,这需要更专业的知识才行,大致就是这样吧,QA不是低档职业,只要你能做好,一切皆有可能,你并不比别人差!
软件测试和软件开发有什么区别?
软件开发主要是做软件编程(即用代码实现需求功能)。
软件开发的内容:需求、设计、编程、改bug。
软件测试主要工作是测试软件,但测试前的测试需求、编写测试计划、测试用例,测试后的相关总结报告等,也是必须要做的。
测试软件又分为手动测试和自动测试,自动测试指综合运用各类测试开发技术和自动化测试工具对软件进行测试。
最后,软件测试的定义是为了找出软件中的bug而运行软件的过程。
事实上,前几年的软件测试工作内容较为单一,而现在随着行业的不断发展、产品的不断丰富,软件测试也要懂得部分开发的知识,才能更顺畅的工作。
App的测试,和传统软件测试有哪些区别?应该增加哪些方面的测试用...
随手机对人们生活中的影响越来越大,App测试工作逐渐被众人所知。
从一开始的众包到现在的自动化探索,手机测试上的技术发展也是日新月异。
App测试相比以往传统的软甲测试相关要复杂的多且困难的多。
基于工作经验,我将如何做好app的测试归结为如下内容。
(1) 非功能测试app测试的一个重要方面是app的非功能需求。
移动app在推出市场或进行进一步开发前,测试人员有一定的职责做该类需求的跟踪工作。
早期开发阶段要进行的第一个测试应该是实用性测试。
通常是由alpha用户或同事进行的。
走进一家咖啡馆或餐厅,问问里面的人他们的app使用情况。
让他们看看现阶段开发的第一个版本并收集反馈,看看用户是否能很好地使用新功能,以便得出第一印象。
(2) 功能测试每项开发的新功能都需要进行测试。
app测试中功能测试是一个重要方面。
测试人员应该要进行手动测试和后期的自动化测试维护。
刚开始测试时,测试员必须把app当做"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作。
除了经典软件测试,像点击按钮、提交订单看看会发生什么,测试员还必须执行更多功能的app测试。
除了整个手动测试过程,测试自动化对移动app也很重要。
每个代码变化或新功能都可能影响现存功能及它们的状态。
通常手动回归测试时间不够,所以测试员不得不找一个工具去进行自动化回归测试。
现在市面上有很多自动化测试工具,有商业的也有开源的,面向各个不同平台,如Android,iPhone,WindowsPhone7,BlackBerry以及移动Webapp。
根据开发策略和结构,品质管理测试专家需找出最适合他们环境的自动化工具。
(3) 客户端性能测试一个App做的好不好,不仅仅只反应在功能上。
被测的app在中低端机上的性能表现也很重要。
比如:一个很好玩的游戏或应用,只能在高端机上流畅运行,在中低端机上卡的不行,也不会取得好的口碑。
关于App的性能测试,我们比较关注的参数有:CPU,内存,耗电量,流量,FPS。
同时也需关注一下App的安装耗时和启动耗时。
目前大家可能比较困惑的一个问题,多高的CPU,内存,耗电量,流量,FPS才算是符合发布的值呢?这里可以告诉大家,可以参考精品游戏的一些数值,将自己研发的app与业内精品的app数据做对比。
(4) 适配兼容测试App在经过功能测试后,也需对其进行适配兼容测试需要检查的项主要有以下几点:(a) 在不同平牌的机型上的安装、拉起、点击和卸载是否正常;(b) 在不同的操作系统上的安装、拉起、点击和卸载是否正常;我们在实际测试中,常常会遇到下列问题:(a) 在某个平牌某个系统上,app安装不上;(b) 在某个平牌某个系统上,app无法拉起;(c) 在某个平牌某个系统上,app拉起后无响应或拉起后黑屏、花屏;(d) 在某个平牌某个系统上,app无法顺利卸载;(WeTest腾讯质量开放平台)这个产品可以实现多款热门机型的适配兼容测试。
(5) 弱网络测试App在使用的过程中,难免会遇到弱网络环境,例如在公车上、在地铁里。
在这种情况下,常常会出现网络抖动、上行或下行超时,导致应用中出现丢包。
作为一个测试人员,我们要对app在上线前做一定场景的弱网络环境模型,并查看app在弱网络环境下是否存在某些未知的问题。
下面是我们常用的弱网络环境场景:(a) 3G弱网络信号场景模拟;(b) 市区低速移动场景模拟;(c) 郊区高速移动场景模拟;(d) 请求回应超时_上行超时场景模拟;(e) 请求回应超时_下行超时场景模拟;(f) 网络抖动场景模拟;(6) 耗电量测试App在手机上的表现,除了功能外,app是否耗电,也是测试过程中重点要关注的一项。
手机设备在满电的时候,这个App能玩多久;App每小时的耗电是多少;App在某个场景挂机10分钟耗电量是多少;这些都是我们平时在耗电量测试中比较关注的点。
(7) 协议测试模拟客户端直接发送协议包给服务器,看看服务器是否有一定的校验,认不认客户端发过来的数据。
协议测试,主要是为了处理用户发送恶意协议到服务器,骗过服务器的校验。
(8) 安全测试App在上线前,都需要做详细的安全测试。
安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。
(9) 服务器性能测试服务器性能测试,主要包含单机容量测试和24小时稳定性测试。
单机容量测试,可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。
使用特定游戏模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。
这个可以在WeTest入口预约。
(10) 服务器容灾测试服务器容灾测试,主要指某个服务进程奔溃掉后,是否具有自行恢复能力。
比如游戏逻辑进程消失后,是否会自动拉起;memcached崩溃时,是否会重新启动,是否会对所有玩家有影响。
这些都是app测试过程中需要考虑的因素。
(11) 中断测试针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法,如:App在前台和后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。
测试电话,短信,彩信,微博或其他通知进来...
现在学软件测试找工作难不!
难不难找是没有办法给一个明确的答案的:1.如果你是学计算机相关专业的,本科而且刚毕业同时对测试方面知识有所了解,应该是不难的2.如果是专业计算机相关专业的,刚毕业,相对要难点,应聘的也只是助理测试工程师3.如果你有几年测试工作经验,那么再找肯定要简单点,无论学历。
4.如果你参加了培训结构,专门学历测试知识,那么找测试工作也会相对比较简单。
培训结果所谓的包就业要理性对待,他们知识培训你然后把你送到软件公司去应聘,至于你应聘不应聘的上他们是不保证的。
估计只有一次输送机会。
这个可以问清楚、
关于游戏测试 软件测试的困惑
对于刚接触测试的工程师来说,有没有发现每次测试都不会让自己非常满意呢?不是遗漏了bug,就是在开发设计的时候,没有过多关注,导致测试结束上线后,发现虽然功能实现了,但是客户感受不好,几乎每次测试都会有自己感觉到不满意的地方,每次都会犯错误,总会感觉自己还是有很多地方有待提高的,有时候感觉自己用例设计不充分,有时候感觉用例设计完全跟着开发的设计走了,而把需求抛在一边,设计和需求有差异,在我们测试这边也没有发现,导致产品上线后,发现实现和需求脱节。
针对这些问题,就要静下心来好好梳理下,怎么做才能把这些都考虑在内,而不会犯一些以前就犯过的错误呢?我把之前的经验总结了一下,分享给大家: 1、拿到需求后,仔细分析,根据需求来设计用例 2、做好开发设计的review工作,确保设计和需求一致,把bug消灭在萌芽状态。
3、充分利用用例设计这段时间,认真做好用例设计工作,不能在后面测试执行过程中才补充用例,这样就完全被开发的思维所限制。
4、用例设计可能不会一下子就做好,按照以前在hw的经验,先进行方案设计,即记录下要测试的模块和功能点,以及被测试对象的数据流走向,根据这些来细化自己的用例。
5、不能在设计用例的时候,一边写用例,一边忙着干别的事情,这样很容易打断自己的思路,而遗漏掉一些功能点用例的设计。
暂时就想到这么多。
欢迎大家补充。
这里我就想到了经验,现在感觉经验真的挺重要的,如果你不做这项工作,或许感觉这些工作都很简单,但实际上,并不像你想象的那样,测试遗漏问题在所难免,随着自己经验的积累,相信这样的问题会越来越少的。
重在学习和积累,而不是遇到问题后,修改了,而不吸取教训,下次还犯同样的错误。
遇到困难的时候,也是自己学习和积累经验的时候,所以困难不可怕,应该庆幸自己早点遇到这个困难,及时找到应对措施了。
如何管理软件测试环境
概述 管理软件测试过程中相关的测试环境是软件测试人员必备的能力之一,也是高效提升测试过程和测试质量必备的基础能力。
什么是测试环境 测试环境是软件测试团队用于执行测试用例的一系列软件和硬件的集合。
换句话说:在测试环境,软件测试团队可以对硬件、软件、网路等基础设施进行配置、管理。
测试环境关键配置 对于测试环境的管理有哪些关键性的管理因素或配置呢?下面列出了一些关键的需要进行管理的方向:系统和应用程序测试数据数据库前后端运行环境浏览器硬件设备及操作系统网络文档包括但不限于:文档、配置手册、安装手册、用户手册等 测试环境配置过程 交互人员角色 因企业、团队不一样,过程也会有些不一样的地方,但在测试环境配置过程中,一般得涉及与以下角色进行交互:系统管理或是运维人员开发人员测试人员其他对测试环境或相关技术有影响的人员 整个测试环境配置管理的过程中,需要与不同的人员进行交互协作,才能确保环境的有效管理,为测试实施提供一个稳定的基础环境。
测试服务 因测试目标服务的技术不一样,所涉及的技术也会不一样,所要维护的测试服务也会不同,例如我们以java技术为例,那么所需要维护的测试服务将会以java相关中间件为主,例如jdk版本等等 因部署方式不一样,可能维护的量也会不一样,例如分布式部署还是集中式部署等等 网络 在网络方面,也是一个要重点关注的方向,由于现在云技术的发展,我们要维护管理的网络也会不同。
以往通常维护,本地网络即可,而现在可能需要维护本地网路,同样也需要维护云,甚至本地和云混合的网络,以及wifi网络等等,整个网路结构更为复杂。
测试设备 我们统一把PC、手机、平板、嵌入式设备等都归为测试设备,随着业务的负责、用户场景的离散化,同一个业务可能需要在PC端、移动端、专用设备等等上提供服务,对软件测试人员而言,需要维护不同类型的测试设备,同时还需要在不同测试设备上构建不同的测试模拟环境,这也是一个很大的挑战。
测试设备利用率管理测试设备维护管理测试设备上构建用户模拟环境及维护原始的手工管理还是利用系统来自动化的维护管理 等等 测试报告 测试报告跟踪管理工具也是必须提供的,以便跟踪回溯及分析。
测试数据管理 一个好的测试数据管理策略,不仅仅包括业务测试数据的管理,同样也应该提供基础数据的管理,包括配置、业务测试数据等等,需要至少做到以下几个方面:测试基础数据可备份和还原测试数据的原子化,可高度复用测试数据的可定制测试数据的可自动化维护(包括但不限于配置、业务测试数据等等) 测试环境管理的一些难点高效的规划好可用的资源 如何协调好团队内部和跨团队在有限的资源的情况下,提升资源的利用率混合环境的管理 随着云技术的发展,企业在综合成本等因素后,通常采用云+私有服务的方式来构建测试环境,对软件测试人员而言,这也是一个不小的挑战复杂环境管理 业务的复杂,服务的复杂、复杂的部署方式以及跨团队协作,带来的更复杂的测试环境的管理,对软件测试人员的综合能力的要求进一步提升复杂的配置 涉及更多的基础环境,更广的技术应用,带来了更为复杂和庞大的配置管理,配置管理和维护也变得更为复杂,对软件测试人员而言,如何维护复杂的而庞大的配置也是不小的挑战 关于管理测试环境的一些意见与测试团队、开发团队、运维团队及其他相关团队进行深度交互,深入理解测试需求、技术架构及难点在初始化测试环境前,应当全面的检测环境的连通性检查所有的硬件、软件、需求、配置等,并形成checklist确定所有测试设备、浏览器等版本信息,并形成checklist严格规划测试环境的使用计划,例如准入准出原则,什么适合更新,什么时候发布,什么节点清理等等尽可能的自动化进行管理维护