第一篇:软件测试心得
从事测试到现在已有半年多的时间,刚开始做为新人时,面对未接触过的系统中的每个模块,心中是有些慌张的。仅凭业务学习和前辈们讲的测试方法还是很难做到完全让自己放心,这可能是新人的通病,害怕测试不全面不深入。至少我在测试之初,是比较胆怯的。随着时间的推移,我发现自己越来越自信,特别是面对新的模块新的功能消除了那种恐惧感。总结了以前的一些心得,供大家交流:
一、根据自己的实际情况,做一个学习计划,边学边测,以学来熟悉侧,以测来巩固学,做到二者的融合;一开始会比较苦,毕竟很多都不熟悉,有时单据不能保存,有时流程走不下去,一定要坚持住;业务知识熟悉了,就好多了。
二、刚开始时因为业务不熟悉,需求也不熟悉,就开始测试任务。这时自己就看看测试用例,随便测测,看功能能不能正常走通。
1、根据功能做一个基本的测试计划;当然在做这个测试计划时可以先问下你的主测或是开发经理,有什么建议,毕竟他们经验比我们丰富。
2、开始测试时,严格按照测试用例来执行,当然等业务熟练后,自己可以写测试用例来执行,毕竟原有测试用例并未覆盖整个模块的功能;这样就可以补缺补漏。
3、在学习或测试中,有不懂的或是不明白的地方,尽量去问主测或是其他同事,但要有个度,毕竟别人都有自己的任务,不要一有问题就问,你可以将今天学习或是测试中存在的问题一条条记录下来,等中午休息或是下班前一刻向别人求教;也可回家后自己上网上搜索相关的知识解决问题。
三、学会换位思考,将自己当客户,发挥自己的想象找出客户存在的应用场景,在客户操作的基础上寻找测试突破口,假如实际经验积累不多,可上网查找或是询问别人;因为每个客户的操作不一样,会存在比较复杂业务逻辑,这时可以分解成一小块一小块测试,最后再从整体的角度入手;由简单到复杂,简单的测试通过后再做复杂的测试,而不是一开始就做复杂的测试。
四、随时记录学习到的新知识,特别是其他相关模块的知识;同时记录工作心得,特别是好的测试方法和测试思考方法;好记忆不如烂笔头,何况在这科技发达的时代,键盘随便敲敲,即清晰又明了,下次碰到相同问题可查看。
最后说一句,路是自己走出来的,测试也是自己测出来的。
第二篇:软件测试心得
软件测试心得体会
软件测试工作是一个系统而复杂的工程,软件测试的目的就是确保软件的质量、确认软件以正确的方式做了你所期望的事情,所以工作的主要任务是发现软件的错误、有效定义和实现软件成分由底层到高层的组装过程、验证软件是否满足规格书要求和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。
而且软件的测试不仅是要确保软件的质量,还要给开发人员提供信息,以方便其为风险评估做相应的准备,以及为其提供分析依据,重要的是要贯穿在整个软件开发的过程中,保证整个软件开发的过程是高质量的。
软件测试对测试工程师来讲,要求具备较强的专业知识,严谨细心耐心的测试态度,良好的反向思维、发散思维能力、沟通能力等等。
以下是就自己的个人工作经历谈一些浅见:
1.标准文档的制定:
1.1.任何一个公司要让自己的产品面市,都要有自己的一 套完整的品质标准,这个标准一定是在符合国标及客户标准的基础上形成的企业标准,系统而全面地描述一款产品的功能、性能、可靠性、健壮性、安规要求等一系列的产品标准,并根据客户特定要求相应调整。
1.2.测试仪器的作业指导书(SOP)及保养说明等。定义仪器 的使用步骤、操作指南和保养细则等。
2.测试资料的归档:
标准媒体文件、测试报告、BUG LIST库(电子类问题、结构类问题、软件类问题:方案自存问题、品证测试问题、生产测试问题、客户反馈问题、终端消费者反馈问题等)、认证测试文档归纳总结(认证公司培训资料、认证过程中出现并改善的问题)、测试工程师经验分享、常见问题解答FAQ等。
3.功能测试:
3.1.这是软件测试工作中最核心和最基本的一项测试,该测试的主要内容是检查软件是否符合需求定义,并通过构造正常的操作来检查的动作是否正确;在这个测试里,正确性是最最重要的软件质量要素。
3.2.功能测试按照可见性可以分为两类:显性功能和隐性功能。
显性功能:指在菜单里可以看得到的功能。隐性功能:指在菜单里看不到的功能。
例如,电话本的显性功能有增加、编辑、删除、拨打等,这些功能可以在电话本的菜单里面看得到,姓名列表排序则属于一个隐性功能,因为在电话本的菜单里没有这样一个子菜单,但它却是一个实实在在的功能。如以下这些隐性功能都测试中都需重点关注: a.电话本上下页切换,是否有遗漏联系人信息? b.是否支持手机内存、SIM卡电话本的同时下载?还是支持从一种介质里下载?
c.断电后再上电,系统设置的时间是否有记忆功能? d.GPS信号正常时,导航地图中时间是否有更新? e.TFT屏在Power off→on, ACC off→on时,屏的角度是否有记忆?
f.模拟导航时,是否有双工功能?后台源声音输出是否正常?
g.路试语音产品外置麦克风使用效果时,考虑车速、风声、车内讲话噪声、汽车底盘/发动机噪声等对麦克风录音效果的影响,软件多线程开启时导致的资源占用/系统繁忙对后台录音系统的影响。(也可从结构方面考虑:外置麦克风型腔开孔的接触面积,是否360度可旋转等来增加录音的路径等。)
h.地图上的POI信息通过后台语音搜索获取不到,解决措施:要求方案商讯飞完善后台语音库。
3.3.在实际的测试过程中,显性功能通过菜单遍历可以很容易地进行无遗漏的测试,但是隐性功能却很容易为我们所忽略!一个有效的解决办法是去检查软件的功能定义列表(Feature List),从这个列表里面找出那些隐性的功能。
3.4.制定测试用例时,要充分考虑各功能模块软件的显性功能和隐性功能。
4.健壮性测试:
橘生淮南则为橘,生于淮北则为枳。是说明橘的健壮性太差。该成语充分说明了我们对产品进行健壮性测试的必要性。4.1.健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。健壮性测试主要包括:电子硬件健壮性(如:遥控距离测试、高低电压适应性测试、插拔电及开关机测试、静电抗扰度测试、热插拔测试)和机械健壮性(如:整机结构设计基准测试、模拟运输测试、常温包装跌落测试)。4.2.这项测试主要是检查软件对异常操作的容错能力,异常操作通常要考虑异常输入操作及异常条件两个方面。例如:测试蓝光媒体播放器时,反复把HDMI连接线拔掉,造成通信异常中断,再接上复合视频(CVBS)信号输出,即由数字信号输出转为模拟信号输出。恢复测试重点考察一下几项:(1)系统能否重新运行;(2)有无重要的数据丢失;(3)是否毁坏了其它相关的软件或硬件;(4)若软件出现系统报错,是否有自恢复能力。
4.3.软件的很多功能的实现是有很多隐含的条件的,在健壮性测试中,要检查当这些条件不满足的时候的反应。例如:目前大多数3G智能手机,与各电信运营商形成利益捆绑,每款手机支持特定的电信运营商提供的通信服务,其它运营商提供的服务则被拒之门外。当使用移动SIM卡安装在只支持联通通信服务的3G手机上,关注该手机表现:是否在执行自动更新时重启?还是执行自动更新后提示不支持移动运营通信服务:SIM card not supported, emergency calls only?
例如:在做完常温包装跌落测试后,再测试机芯的读碟能力,读取偏芯碟、面振碟、偏重心碟、刮痕碟、指纹碟等等碟片,与未做跌落测试前读碟能力进行比较。如果读碟能力比以前更差,则考虑改进措施:软件适当增加录轨时间或机芯托盘加固等。
5.矩阵测试
5.1.矩阵测试是使处于一个特定的状态,然后构造一个异步事件,检查当这个异步事件发生时软件的性能。
5.2.根据事件的来源,异步事件分为外部事件和内部事件
两种。
外部事件举例:蓝牙模式下来短信、来电话、各种介质(U盘、iPod、导航卡、收音天线)接入等。如接入导航盒后,导航不运行,看是否会对其它模式的运行产生影响?最近测试的Mazda J53R就是在接入导航盒后,产生系统不稳定,长时间播放蓝牙音乐、iPod曲目等会出现系统报错。
内部事件举例:车载DVD蓝牙自动连接、自动接听、音乐下载流量使用提醒, 手机低电警告、自动关机等。如带在线音乐功能的车载DVD,插上3G dongle时,下载歌曲时是否有流量提醒:该歌曲占用多少容量、目前已用多少流量、还剩余多少流量。
6.UI测试
好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。UI测试遵循的原则:
6.1.易用原则:如主菜单icon的排列布局:横纵向、环形、椭圆形。
6.2.友好原则:歌曲列表中的drag bar是否太窄,导致不方便拖动?
6.3.求美原则:检查在UI的布局里,各种要素是否能传达一种美感,布局是否合理,色彩是否合谐。
如拖动列表的动态效果、刷新列表的沙漏效果等。6.4.一致性原则:同样的一个功能的UI在不同的情景(scenario)所呈现的方式应该保持一致。
例如:在设置菜单选择DSP模式,退出后在各放音源下检查DSP模式与设置菜单中是否一致;将系统语言改为英语等其它语言,播放界面及菜单等,拼写是否正确,显示是否一致、是否越界等。
6.5.普遍性原则:即遵循约定俗成的规定。蓝牙icon一般遵照蓝牙认证协会
标识,如果自己另外搞一种icon设计,反而弄得不伦不类。
测试用户界面的色彩搭配、整体布局、行距、对齐,样式统一等等。还有就是一些控件是否合理,提示信息和页面信息是否有语法错误等等一系列问题,都应考虑进去。
7.用户体验:
用户体验:一种纯主观在用户使用产品过程中建立起来的感受。对于一个界定明确的用户群体来讲,其用户体验的共性是能够经由良好设计实验来认识到。例如:
7.1.自然往往和人的本性相关的。微信的摇一摇是个以“自然”为目标的设计。设计“摇一摇”时,目标是和人的“自然”或者说“本能”动作体验做到一致。摇一摇的体验包括:动作:摇动;视觉:屏幕裂开并合上来响应动作; 听觉:有吸引力的声音来响应动作;结果:从屏幕中央滑下的一张名片。整个界面没有菜单和按钮。但几乎没有比它更简单的交互体验了。联想到车载DVD,如果能通过手势识别来实现上、下页菜单的切换也是不错的选择。
7.2.如Mazda J53R平台蓝牙电话本的下载,使用部分手机连接成功后下载时间超过2分钟并提示Time out,且电话本条目数量也不多,约200条,从用户角度来说此时长不合理且不易接受。例如建议软件增加电话本保存在内存中,需要调用时直接从主机菜单内导出即可,这样方便且快捷,而且下载时间快,不需再通过蓝牙传输。7.3.主机主音量不变的情况下,通过切换模式,主观感觉不同模式下声音输出幅度不一致,即不同模式间切换感觉声音忽大忽小,这样就会给用户造成较差的听觉感受。此时我们可通过增益平衡(Gain Balance)来分析各源间的信号输出幅度:
a.将TCD-784碟第2曲1KHz 0dB信号作为标准信号通过Line out输出,再在信号发生器上定标准输出; b.调节信号发生器参数为频率98.1MHz,调制率75KHz,信号强度66dB,比较与CD输出时的幅度差别; c.调节信号发生器参数为频率999KHz,调制率80%,信号强度80dB,比较与CD输出时的幅度差别;
d.转到AUX,将输入设置为1KHz,500MV(-12dB), 比较与CD输出时的幅度差别。
通过不同模式下的输出幅度对比作为理论依据来改善, 如判定标准0+/-3dB。
8.兼容性测试:
主要测试不同介质对于被测设备的表现。包括:硬件兼容性测试(USB、SD、碟片、蓝牙手机等兼容性测试)和软件兼容性测试(音视频、图片、文本格式兼容性测试)。
如何在有限的成本和资源考虑下,针对此软件产品规划出适当的兼容性测试,是所有软件测试技术人员关注的重点。8.1.评估软件应用环境,有针对性的制定测试计划。做多少设备投资?投入多少人力?要测试多少兼容性测试完全会影响到软件产品的最终成本。想要专心和投资在研发上,又想要节省成本的做好兼容性测试,只有评估软件应用环境,有针对性的制定兼容性测试计划,才能兼顾成本和产品的兼容性质量。
8.2.在多种平台/应用环境上测试一个软件产品的开发成功,不仅仅是编写完为使用者提供服务功能的程序而已,更重要的是能在用户环境中可靠的运行。因此,软件程序编写工作的完成,其实只是完成了开发任务中的一半,对软件进行模拟用户环境进行兼容性测试其重要性不亚于对程序本身的开发。因此在不同平台、不同版本软件上做对比测试很有必要。
9.性能测试
性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
9.1.测试通道延迟和极性(Channel Delay and Polarity),播放通道激励信号bd_8ch_delaypol_21,使用AP2700 扫描到的曲线图(如下),以此观察通道的延迟和极性是否符合要求。
9.2.音视频同步(A/V Synchronize),播放标准AV测试信号,使用AV同步测试仪接受信号,测试仪的另一端连接PC。如Dolby Digital Plus判定标准:视频先于音频10ms或视频后于音频15ms,为可接受范围。
10.临界测试
临界测试,就是指数据在保存、删除、传送、发送时或者这些动作即将发生时,考察软件对外部干扰事件的处理情况。如文本文件容量大于或等于设计容量,关注读取时的表现;蓝牙通话/蓝牙音乐关注传输距离临界值附近的测试结果;蓝牙连接成功立即断开再连接等。如MTK平台的某些机型在即将删除一条短信息时收到一条新信息,但删除的却不是刚刚选定的那条信息,而是刚刚收到的这条新信息!
11.可靠性测试
11.1.可靠性是指在一定的环境下、在给定的时间里,软件不发生故障的概率。
11.2.可靠性本来是硬件领域的术语,比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。
例如:高温工作试验:常温下将产品置于恒温恒湿试验箱中,按实际装车的状态连接输入设备,负载设备,电源,使样机为POWER OFF状态,逐步升温到+70℃,保持2小时后,使样机为POWER ON标准工作状态,分别设置为AM、FM电台收音/DVD、CD、SD卡播放/蓝牙/导航等工作模式下工作,若无电台则接收AM/FM信号发生器输出标准信号,音量开关置1W输出功率位置,试验中经常确认样机工作是否正常。样品工作72小时后,外观、功能应正常;试验后在常温下放置2小时以上,电性能指标测试应正常。
11.3.软件在运行过程中不会发生像硬件那样的物理变化,但是并不代表软件现在运行是正确的,那它一辈子运行也是正确的,说不定哪一天它就不正常了。软件中司空见惯的“内存泄漏”与”误差积累“等问题不是一时半会儿就能测试出来的,需要一个较长时间的观察。例如:做完高温试验导致Flash坏块、或丢代码等,此时需要软件对该模块代码做双备份处理。
11.4.时隐时现的问题一般都属于可靠性问题,纠错的成本非常高。当工程师十万火急地感到问题现场时,问题消失了;等工程师离开后,问题又出现了,仿佛敌进我退一般!此种低概率现象一定要录好Trace和Video。
12.黑盒测试模型
输入黑盒输出制约条件期望结果 12.1.黑盒测试不需要去关注软件的整体架构及其编码细则,只需要通过构造一些合理的输入(操作),来观察被测设备的实际结果或现象(输出),从而判定是否存在问题,需求文档是黑盒测试的主要依据。
12.2.在一个功能的实现过程中,可能存在这一些隐含的制约条件,它们影响着期望结果或者是输出。
“牛吃的是草,挤出的是奶”,这个命题有一个制约条件,鲁迅先生虽然没有说明,但我们应该明白,这里是特指母牛,你就是把公牛捏死了也挤不出奶来!12.3.问题就是输出跟期望结果的差距,需要注意的是,当立场不同时,对问题的定性也可能不一样,开发人员站在研发的角度说这不是问题,测试人员站在质量的角度说这是问题。
13.实用的黑盒技术
13.1.输入的构造通常会采用穷举的思想,可是穷举的空间如果非常大,那将使人十分的沮丧,还不如回家象张恒一样数星星,说不定还能数出个天文学家来。有两种手段可以有效地缩小穷举空间:等价划分和边界值分析。13.2.等价划分:等价区间的概念可以这样表述,设(A,B)是命题f(x)的一个等价区间,在(A,B)中任意取值x1进行测试:
如果f(x1)错误,那么f(x)在整个区间(A,B)上都将出错;
如果f(x1)正确,那么f(x)在整个区间(A,B)上都将正确。
等价划分思想的关键是找到一个合适的标准去划分等价区间!
新中国成立不久,有一位外国记者问周恩来总理:总理先生,请问你们中国有几个厕所?意思是新中国一穷二白,除了厕所多一点之外没有什么别的财富。周恩来回答说:记者先生,我们中国只有两个厕所,一个是男厕所,另一个是女厕所。这是周恩来总理等价划分的高超艺术。
13.3.边界值分析,“缺陷遗漏在角落里,聚集在边界上”,边界值分析是对等价划分的一种有效补充。
14.测试计划
制定一个完整、规范的测试计划对每一个测试管理人员来说是非常重要的!测试计划应该至少包括如下之内容: 14.1.概述(Overview): 文档通常都是以概述开头的,测试计划在概述里应该要写明该测试是做什么的,把测试的范围定下来,要测什么,不测什么。
14.2.测试目标(Test Goals)和发布标准(Release Criteria)一般说来,测试计划以定要写明测试的最终目标(Test Goals),必须使自己和别人明白为什么必须做这个测试,该测试需要达到的目的是什么。
另外,测试计划还需要明确定义发布标准(Release Criteria)的范围,如果有需要,可能还需要定义每一个发布标准定义在DR2、DR3和DR4个阶段的目标。14.3.测试方法描述(Testing Approach/Description)从项目总体的角度定义软件的测试方法,如我们在前面讲过的单个功能测试、集成测试、系统测试,以及没有讲的附件测试、专项测试、外场测试(Field Trial)。14.4.测试进度表(Testing Schedule)定义在DR各个阶段的详细进度,该进度表依赖于项目总进度及软件开发进度。14.5.测试资源(Testing Resource)。
第三篇:软件测试心得
《软件测试心得体会》
软件测试在整个软件周期中的重要性。它存在于整个项目周期,在项目开始
下面简单谈谈我的几点体会:
体会一:
体会一:软件测试在整个软件周期中的重要性。
它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个项目的走向,成败与否全在于开始阶段的决策。
体会二:软件测试的真正意义在于发现错误,而不在于验证软件是正确的。
再严密的测试也不能完全发现软件当中所有的错误,但是测试还是能发现大部分的错误,能确保软件基本是可用的,所以在后续使用的过程中还需要加强快速响应的环节。结合软件测试的理论,故障暴露在最终客户端之前及时主动的去发现并解决。这一点就需要加强研发队伍的建设。
体会三:在系统性能测试方面需要重视。
经过这次培训中多个案例的讲解,让我了解到系统在上线之后会有很多不能预知的性能问题,需要在上线之前实现进行模拟,以规避风险,包括大数据量访问,高并发数等等。当然也有很多应对手段,没有哪种手段可称为最完美,只有最合适的,需要灵活掌握,综合运用以达到最优程度,这是个很值得研究的领域。
下面是我的几点想法:
想法一:加强系统上线前的性能测试。
目前我们在项目建设过程中对性能压力测试的重视程度还不太高,厂家也很少有雇佣第三方的测试机构。而是在现网进行试用,遇到问题再解决,可能会产生滞后问题,影响客户使用。希望以后能在性能测试方面提高重视程度,加大人力投入,以保证系统上线后能够稳定运行。
想法二:适当介入相关项目研发
对于快速响应这块,我们不能一味依赖厂家,而希望自己就能快速响应,及时将问题解决。这也是一个比较长远的问题,需要加强研发力量的投入。
我个人是做开发出身,有此类经验,当时是在客户现场,因为了解系统内部结构,能够在第一时间排查解决客户所反馈问题。
现在系统完全由厂家开发,很难了解内部结构,或许会造成后期维护困难。所以,是否应该针对某些项目介入厂家研发工作,比如请厂家提供源代码等相关要素,以增进维护人员对系统的了解。
最后再次感谢公司提供的平台,感谢领导的信任,让我有机会得到更深层次的学习以及展示自己能力的机会,我也会尽我所能来完善工作的系统,提高整体工作效率,为南方电网的发展建设提供更坚实,优秀的支撑服务平台。
第四篇:软件测试-培训心得
个人浅谈培训之心得
2013年3月8日,黄老师在百胜软件进行了为期一天的测试管理培训,本人非常荣幸的参加了此次培训,通过这次培训让我充实了更多的理论方面的知识,拓宽了思路,有许多不能用语言来表达的收获,让我更进一步的了解了软件测试理论技术,对软件测试有了一个更深入更全面的认识,对于以后如何更好的工作有了更全面的认识。
参见培训以前,没有测试环境重要性的认知,通常是测试需要什么环境就配置什么环境,开发不能重现的bug在测试机器上修改的情况大有存在。这次培训让我了解到,测试的进步、高效率首先有在测试环境建立和管理的基础。在保证开发环境与测试环境的唯
一、纯净性的同时,必须建立一个科学的标准库。
磨刀不误砍柴工,同样测试设计并不会耽搁测试的进度和效率。我们大部分人是看到测试任务,读懂就开始啪啪啪的进行测试,并没有测试之前的思考和设计。
并不是所有的测试写的越细越好,根据产品形态、形式、周期的不同,测试用例的细化程度是为了实现高效率的可执行、低成本的易维护。
以前一直以为,自动化测试,会用工具,会写执行脚本就可以了。听完老师的培训之后,我认识到,测试用例的设计、维护在自动化测试中统一重要,自动话测试并不是为了发现bug而去测试的,自动化测试是为了检查没有bug,程序没有错误。
听黄老师的一席话,让我在软件测试的路上,少了些弯路、少了些挫折。公司这样的培训,虽然不能起到立竿见影的效果,但潜移默化之中,把我们的测试之路修的较为平整些,吸取的经验减少着我们的痛苦。
第五篇:软件测试培训心得
从事软件测试工作已经有三年了,在经历了小公司、大公司的功能测试之后,业务需求已经不是本职测试工作的阻碍了,这时的我们该想想接下来的路了……
通过qq群知道了有这么一个测试培训机构有这么一群不断努力的人。思来想去,周末在家无聊的荒废时间,不如试试加入他们,重拾刚毕业那会的昂扬斗志。
加入这个培训之后才从之中的同学那里知道,原来这个培训班已经办了快两年了,里面有很多学员都是从最初一直坚持到现在。培训课程设计范围也很广,包括系统的数据库、java编程、linux系统包括时下比较fashion的手机自动化测试等等知识,在讲述这些知识的同时老师会在课程中间穿插测试涉及的内容。课程完毕后,对应的老师也会一直在群里与同学互动,及时解决同学在实际测试应该过程中发现的问题,这个对于我们在职的软件测试人员还是很有吸引力的。
目前为止,我也只参加了两次培训,一次单元测试,老师是微软的开发人员。虽然测试人员一般不会做单元测试,但对于目前很多公司不重视测试的行业现状,多了解开发人员的工作流程或操作无可厚非,在必要的时候能够明白开发是用什么工具如何进行的也可以让开发对你的测试工作给予更多的肯定。之后的培训是手机自动化的,我因有事无法参加,不过看到群里大家在热烈的讨论时,还是有点遗憾
啊。最近的一次培训是selenium自动化测试,这次的培训不是用的selenium IDE而是通过结合浏览器自带组件自编代码进行各个浏览器的自动化测试,虽然这次讲的东西比较少,但对于我们实际的测试工作还是很有帮助,至少给我们的测试工作提供的思路,不是一提自动化测试就茫然无措了。