❶ 软件测试工程师如何做好需求分析
软件测试工程师如何做好需求分析
什么是需求?
需求是产品必须完成的事以及必须具备的品质。
功能性需求
功能性需求是产品必须完成的那些事,要求一定的功能和品质。
例子:培训机构的班主任可以给所在班级学员打考勤
非功能性需求
非功能性需求是产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制等。
例子: 平台用户数为5万人,每天登录用户数为10000左右,网络的带宽为100M带宽。在工作时间根据资料名称条件进行搜索,可以在3秒内得到搜索结果。
这类需求通常在产品的功能确定之后(但并非总是如此)。也就是说,一旦知道了产品要做的事情,就可以确定它的行为方式,它需要具备什么品质以及它的响应速度、可用性、可读性和安全性。
限制条件
限制条件是全局性的需求。它们可以是对项目本身的限制,或是对产品最终设计的限制。
例子:南京平台必须在2010年开学的第一学期上线
客户是在说,如果顾客不能在给定的时间前使用该产品,那么它就没有什么用了。其效果是,需求分析师必须对需求进行限制,只包括那些在最后期限前能够提供最大价值的需求。
需求分析的重要性
需求分析没有做好的后果一般会有下列现象:
1、浪费时间和资源来满足用户并不需要的需求(过度实现一些功能);
2、开发出来的产品技术上先进,但不满足用户需求;
3、总是需要比较长的时间来达成对产品设计的.共识;
4、在产品设计,开发和测试工作中对于用户需求的解释不一致;
5、员工会厌倦因需求不断被重新解释而导致的返工;
6、未说明的或不正确的需求会导致员工与用户间的不满;
7、不稳定的产品,用户的不满意对我们未来的市场造成损失;
8、浪费时间,增加成本,使得在一些投标的项目中不能低价;
1、如果你在编码的时候发现某几行有误,那么改掉这几行就行了。而如果在编码阶段发现需求有误,那么你很可能需要改变所有代码来适应新的需求
2、在需求阶段消除问题的代价最小,而如果需求问题等到产品发布出去后才发现的话,那修复的成本就会N倍的增加。
3、稳定的需求是软件开发的关键。有了稳定的需求,软件开发工作可能从结构设计到详细设计到代码到测试都会平稳顺利的进行。
为什么要做需求分析
1、“决策性”--要不要做这个产品,通过对市场需求的分析来决策项目是否需要立项;
2、“方向性”--良好的需求分析可以对项目人员明确方向,让项目成员知道下面应该如何实施;
3、“策略性”--既然知道了为什么要做需求分析,就需要了解什么是需求分析,及如何做。需求分析并不是简单的对与错,比如说做一个产品,“做技术最先进的软件,还是做最好卖的软件”,这个需求有错吗,没有,只能说需要从不同的地方去考虑,去定位。
如何进行需求分析
“ 需求分析”不代表“用户要求什么就是什么”也不代表“我们能做什么就做什么”,做为需求人员,在进行需求分析的时候,首先应该明白用户的需求,然后再加上 自己的分析处理过程,知道哪些我们现在能做,哪些我们做不了,哪些我们咬咬牙齿能做,需求人员在做需求分析的时候不能一味的成为客户的传话筒,要有自己的 分析。
一般可以从三个方面去考虑:
1、功能需求--产品应该完成哪些功能,即向用户提供的功能,一般来说这个都是比较硬性的标准;
2、非功能性需求--用户可能不能明确告诉你的一些需求,比如说性能达到什么要求,可靠性方面,响应时间,扩展性,性能方面等,这块的内容并不 是说用户需要,而是说不知道需要做成什么样的,我们不能不做,做了只会对自己受益。要不然等到后期用户使用感觉这慢,那不爽,那倒霉的还是是自己;
3、限制条件--在需求分析中需要考虑一些条件约束,规则等,比如客户的约束,行业的约束,法律的约束以及自己的约束等,这些都需要在需求分析考虑清楚,要不然做出一款白人狂殴黑人的游戏给黑人玩,那就惨了……
测试需求分析的步骤
1 、 熟悉需求背景及商业目标:
a) 了解清楚项目发起的原因,是为了解决用户的什么问题。
b) 当前的解决方案是不是最优的,为什么会这样做?
2 、业务模型法:
a) 考虑本项目与外部系统的交互,划分系统边界(除了本项目的需求中要求做的事情,其他的都可以是外部系统,本系统和外部系统之间的交互就是系统的边界),可以参考系统分析说明书。
b) 确定测试范围和关注点。系统的边界是测试的重点,特别需要关注边界交互时的数据交互。 ;
❷ 怎样做好软件测试
首先我们需要了解软件的测试要求,同时学会如何更好的学习。更为详细:
1.需要技术知识和深奥的分析能力创建极其复杂的测试。每个软件都有不同的特性。我们需要依靠专业的技术知识和深奥的分析能力去解决复杂的软件运算问题。并做好测试。
简而言之。做好软件测试并不是那么容易,需要有专业的技术,也需要足够强的分析能力,还要有强学习能力去解决问题。同时还要懂得如何打破常规。才能更好的做好软件测试。
❸ 做好软件测试的技巧
一是做好测试准备。实际工作当中,往往是任务驱动的工作模式,测试人员接受一个测试任务就意味着测试工作启动了。作为一个成熟的测试人员,接受任务后首先要做的是测试任务开始前的准备工作,那么一般的测试任务前期准备工作都有哪些?首先,你必须尽快熟悉所接受的测试任务的相关背景。实际的测试工作中,往往是结合现实的场景进行测试,不同的场景可能会有不同的预期目标。因此,了解任务或者项目背景是比较重要的。其次,尽可能的获取与测试任务相关的信息资料,包括文档说明、环境信息、相关的开发以及可以获取支持的其他人员信息。测试不是一个孤立的工作,整个测试过程中需要与很多周边的人员产生交流,这就是为什么要求测试人员具备相当的沟通能力。
二是强化测试执行。测试执行,单单从字面来看,其实并不复杂,按照测试用例的步骤完成用例的执行就ok了。但是这里考验你的耐心、细心。执行一个用例并不难,难的是,一天、一周、一月,周而复始的执行测试用例。测试原本就是一个周而复始、重复性的工作,很多人初次接触测试工作,带着好奇,会感觉有趣。但是,工作一个月、两个月后就会被重复的测试执行所击倒,会觉得厌烦,感觉自己成了重复工作的机器,没有新意、没有成就感,这是大部分进入测试行业新人的心理反应。
三是用好测试工具。随着自动化测试的流行,越来越多的人重视测试工具的使用,往往不考虑实际情况或者自身条件,盲目追求使用测试工具。难道测试工具真有那么大的威力吗?不可否认,测试工具能很大程度上提高测试效率,尤其是对于重复性的一些测试用例及部分回归测试。但是测试人员不能依赖测试工具。工具仅仅是工具,并不具备人的思维、视野、判断力。不管行业如何发展,测试工具永远不可能取代人的作用,而且我们必须看到,目前国内软件行业中,手工测试至少占据测试工作的90%以上。目前,我们一直使用日事清来完成软件测试工作,通过计划来规划工作中的一切事务,创建任务、分配成员、安排日期,每条任务会自动分解到每个成员的日程中,员工只需要按照日程中的任务行动,不再被无序的工作烦扰。每日、每周、每月的工作成果可以一键生成报告方便相关人员跟踪回顾。
❹ 软件测试中实现web自动化中CSS选择器定位常用策略有哪些
定位的语法:element = driver.find_element_by_css_selector(css_selector)
1. id选择器 :#id
2. class选择器: .class
3. 元素选择器:输入元素element
4. 属性选择器 element[attribute=value]
5. 层级选择器:element1>element2
如果想了解更多可以来传智播客学习。
❺ 软件测试工程师的角色定位
软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。
测试工程师承担的任务角色决定工作内容和承担的任务。测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。而且,测试工程师也有普通和高级之分。
笼统的答案列举如下:
设置软件测试环境,安装必要的软件工具。
运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
对软件整体质量提出评估
确认软件达到某种具体标准
以最低的成本,最短的时间,完成高质量的测试任务
......
在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。
提高测试质量的要诀
另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会使您失望。
首先测试程序的核心功能,然后测试辅助功能。
首先测试功能,然后测试性能。
首先测试常见情况,然后测试异常情况。
首先测试经过变更的部分,然后测试没有变更的部分。
首先测试影响大的问题,然后测试影响小的问题。
首先测试必须测试的部分,然后测试可选或没有要求测试的部分。
服务员
需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。任何服务都有被服务对象—客户,测试工程师的服务对象有哪些呢?
最重要的客户是软件的用户。测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
项目经理也是客户。测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。
程序员是最经常打交道的客户。为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。
技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
避免错误
前文已经指出测试工程师应该明确角色,明确任务和责任。知道哪些是自己分内的事,哪些是不属于自己的事。一定要尽最大努力完成分内的事,不要做不属于自己的事情,以免弄巧成拙。
为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:
⒈承诺完成测试的软件没有质量问题
软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。
⒉承担软件的发布权利
不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。也不要认为已经完成了测试计划,自己决定可以发布软件。因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。
⒊扮演过程改进成员的角色
软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。
❻ 如何成为一个优秀的软件测试人员
1、要学软件测试,得先自己定位以哪方面为主,比如:ERP软件、财务软件等。
2、要多学习和使用各方面的软件,要学习别人在某些关键问题的处理方式,比如:采用选择录入还是直接录入等
3、定位好自己的软件方面后,要多看相关的书籍,比如:想弄ERP软件就得学习客户管理、企业管理的流程、财务的相关知识等
4、有条件的话最好和一些开发团队一起实践下。
5、要有很强的耐心和足够的细心,要不怕苦,可能会经常熬夜的,有些问题的测试是需要反复N次的。
6、加强自己的文字功底,学会写软件需求有利于你的软件测试的提高,半年之内估计有点难,除非你有很好的基础(软件基础、企业相关管理知识基础—比如销售流程的制定、采购流程的制定等)
❼ 软件测试工程师如何做自己的职业规划
第一阶段:校园阶段(毕业前1年-1.5年)
很多人的 职业规划 是到了工作以后才开始进行的,其实,这样做,有很大的局限性。凡是工作过的人,都有一个体会,就是自己的第一份工作,会影响到5-10年的发展轨迹,甚至会对一生产生影响。因此,选择一份合适的工作作为起点,是必须要在校园内思考清楚的问题。
由于中国的教育基本是理论教育,大家在工作前的 实践 能力大多比较弱,固然有其不足,但也有好的一面,那就是可塑性比较好。可塑性好代表了选择的余地可以很大,因此,大家在选择第一份工的时候,要充分结合自己的教育背景、个人能力、兴趣爱好、长期目标等等,作出理性的决策。
软件测试,特别是黑盒软件测试是一种入门起点较低、上手迅速、且发展空间比较大的职业,因此,对于很多学生而言,作为进入IT就业的初级岗位,是非常合适的。
校园阶段的规划,主要是选择大的入门方向,当然,此时也可以给自己一个长期的目标,但是不必规划过细,因为,在没有入行前,一切都还未知,把握好路线即可。
下文假设大家选择的是软件测试工作。
第二阶段:入门阶段(入行后3个月-1年)
对于刚刚入行的新人,这个时期是一个全面熟悉期,最能够学习到新的知识,也最有拼搏的热情和动力。建议大家可以借着这股冲劲,尽可能了解所在领域的全貌,了解各个主要分支的内容、特性、优势、局限性等等,并考察自己当前的工作环境,结合个人匹配程度和兴趣爱好,根据前述内容调整自己的规划。
对于测试行当而言,技术方面一般有几类:黑盒测试、白盒测试、自动化测试、测试工具、专用业务技能等;相关的管理方面一般有:测试管理、质量管理、项目管理等。
面对上述形形色色的方向,建议大家可以都稍稍了解下内涵,然后确定1-2个,作为中长期的主攻方向,达此标准,基本已经实现了入门,至于能否进得厅堂,就要看后期的努力了。
第三阶段:提高阶段(入门后3年-5年)
对于入门后选择管理还是选择技术,其实这种问题,是无可无不可的,关键是看对自己的长期的定位了。不过,我个人建议当前阶段还是技术为重吧。毕竟,在一个技术环境中,要做好管理,没有扎实的基础,也难服众嘛。
本阶段是人最容易懈怠的阶段。毕竟,刚刚入行的热忱早已被日复一日的繁复工作给冷却,有了一定的工作经验,胜任本职,对于大多数人而言,绝不是问题。家庭、娱乐方面开始占据了业余生活的主流。可是,毕竟大家还很年轻,大多数人此时也不过20多岁,就此懈怠也是非常可怕的。因此,有规划的提高自身核心竞争力,在这个时候尤为关键。
❽ 软件测试:如何定位分析bug的出现原因
bug 原因一般由开发人员,在修改时,确认后再填写。
❾ 测试人员 如何定位软件缺陷
这个说起来很复杂。需要很多知识和测试经验。你要对你们的软件、系统、服务器(我们成为测试环境)很了解才可以相对准确的定位bug。然而有的bug你定位不了很正常。通过长期的测试工作你会慢慢熟练、准确的定位bug的。祝你好运~
❿ 软件测试人员测试过程中如何分析定位常见BUG
当你在上班期间,听到不远处传来,这样的声音"你会不会提BUG,责任人都指派错了,能好好提吗?"
如果哪天开发对着你说出这句话
那么作为测试的你,此时心里是怎么想的?
确实,作为一名测试的我,一直认为测试人员提出一个BUG,就要有一定的专业性、严谨性
作为一名测试人员如果连常见的系统问题都不知道如何分析,频繁将前端人员问题指派给后端人员,后端人员问题指派给前端人员,那么在团队里你在开发中的地位显而易见 ,口碑、升值、加薪那应该是你遥不可及的梦!
但是作为测试人员来说,尽管你不能深入的去分析问题,但是你能发现系统存在的问题,这点也是值得肯定的,所以继续加油
所以今天给大家分享的主题是:"软件测试人员测试过程中如何分析定位常见BUG"普及一些常用方法与技巧
首先当系统出现bug时,一定要将bug现象进行录制保留,保留现象时为了证明这个bug出现过,如果bug是必现还好说,如果该bug无法必现,那么保存的截图都是你直接证据,要养成良好的保存现场的习惯
提BUG这块,还是要体现出测试的专业性,标题简洁、问题环境标识清楚、问题详细描述清楚、系统错误表象贴图、接口传参返参贴图、必要时贴服务器日志,总结来说不该少的bug标签一个不要少
1、 小型产品,前后端一人统筹
一些小型程序,例如前后端都用node、php语言开发的,整个系统前后端是同一个开发的时候,那么我可以自信的给你说,系统出现问题时,bug大胆的提,往猝死的提,责任人错不了!
2. 常规系统,多人开发协同
前置:测试之前该测试人员对系统、业务、环境部署、开发人员等较为熟悉
在测试之前打开对应浏览器的F12直接开个新页签,或者使用抓包工具等,系统呈现出问题时,查看对应的请求、日志信息等我们才能去全面的定位是前端还是后端人员的问题,具体给大家介绍以下几个常用方法
(1)分析问题场景进行预判
先查看页面表象,根据问题表像判断问题可能出现的原因,进行缩小范围,并且准备好录制工具,录制问题
系统页面无法正常访问的提示5开头的找后端,4开头的先检查请求地址或者对应的权限,进入系统页面正常打开,提示异常代码错误的直接找后端
进入系统页面展示异常图片视频相关提示Flash等相关信息进行安装Flash如若还不行找前端,界面UI展示兼容性错误找前端
如若系统访问正常,进入操作页面,功能性报错信息,就进入下面环节,抓包查看对应请求体,看日志等
4**开头的状态码一般都是客户端(前端)的问题;例如常见的404确认下是否是请求的地址有错,403确认是否有权限访问,具体可网络
5**开头的状态码一般都是服务端(后端)问题,例如常见的500,则表示是服务器内部错误,503网络过载导致服务端延时,502服务器崩溃等,具体可网络
通过访问报错的页面,加载错误请求时我们通过F12进行分析请求包,查看对应的入参以及响应数据
例如:请求入参错误,那么该bug属于前端的错误;入参标准可以根据前端页面的输入的内容或者选择的内容,进行核验,入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认
例如:请求未响应或者响应数据错误,那么该bug就属于后端的错误;一般是数据库查看报错,例如删了某个表查询报错误空指针等
如果请求的入参或者响应数据都没问题,可以跟开发反馈是不是浏览器解析的问题,可以换个浏览器测试
(4) 查看日志
针对服务端类型的报错,我们可以进行登录日志平台或者服务器对应Log目录下查看打印出的日志
常用查看日志命令tail ,/error进行快速检索关键词接口名等相关内容
拿到对应的日志,将日志文件贴进bug单,指派给后端,提高专业性,测试人员也要养成看日志的习惯,看着看着就懂了
(5) 经验法则
在系统前端页面当碰见服务器配置相关报错的信息例如Nginxxxx或者代码以及SQL相关的提示报错信息直接找后端处理,例如JAVAxxxx 、.PHP、SQL等异常报错
前端字符校验、格式校验、等,浏览器界面UI兼容性以及插件,或者APP、小程序类调用手机相关功能拍照、语音无法正常调用直接找前端
记住以上的一些方法以及技巧减少将BUG责任人提错的概率,在提单方面整洁完整一些,长久以来,体现出你的专业性,相信开发会对你竖起大拇指
做一个既能发现问题还能协助开发解决的问题的测试人员,那也是你从初级跨入中级测试的一个标准
最后我也整理了一些软件测试学习资料,对于学软件测试的小伙伴来说应该会很有帮助,为了更好地整理每个模块
需要的私信我关键字【555】免费获取哦 注意关键字是:555
全套软件测试自动化测试教学视频
300G教程资料下载【视频教程+PPT+项目源码】
全套软件测试自动化测试大厂面经