第一篇:软件测试读书心得
软件测试技术读书心得
作为一名具有一年多的软件开发人员,对于软件测试我有着深刻的体会。我在2014年6月进入湖北大学软件工程研究所,开始学习并且进行C#.NET团队开发,除了课程设计,也进行了真正的项目实战开发。因为这些开发经验,我深刻的明白软件测试在项目开发当中有着相当重要的地位,尤其是那种团队开发!
一、软件测试的工作及要求
软件测试工作是一个系统而且复杂的工作,软件测试的目的就是在确保软件多分质量,确认软件以正确的方式做了你所期望的工作,所以软件测试工作的主要内容就是发现软件的错误发现软件的错误、有效定义和实现软件成分由底层到高层的组装过程、验证软件是否满足规格书要求和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。
软件的测试不仅是要确保软件的质量,还要给开发人员提供信息,以方便其为风险评估做相应的准备,以及为其提供分析依据,重要的是要贯穿在整个软件开发的过程中,保证整个软件开发的过程是高质量的。
软件测试对测试工程师来讲,要求具备较强的专业知识,严谨细心耐心的测试态度,良好的反向思维、发散思维能力、沟通能力等等。
二、为什么要进行软件测试
其实对于开发人员来说,软件测试是一件很痛苦的事情。我们每个开发人员都是希望并且认为我们写的代码是没有问题的,而软件测试的工作就恰恰就是找出开发人员程序中的bug,这是一个很让软件开发人员郁闷的一个问题。我辛辛苦苦写代码实现 出来的功能在测试人员的眼里,各种问题各种bug都出现了,这对于一个程序人员来说,算的上是一种打击。这也就是在我们团队开发中一个常常出现的问题——出现争论。
我们团队经常为了某一个功能争论,测试人员觉得这个功能不合理,不合适,甚至是错误的,而开发人员觉得这个功能没有任何问题!而且在大多数情况下,这种争论都以软件测试人员的胜利告终。出现这种争论的原因是,一个程序员,都会对自己的软件出现这样一种期望——期望自己的软件不会出现错误!
然而,正是因为这种期望,我们更是需要进行测试,并且让专人来进行测试,因为,在这种心理的期望面前,任何程序员都会出现测试上的偏向,他们更偏向于向软件正常运行的的那个一方面进行测试,然而实际上这种测试是经不起现实数据的考验的。
这也体现了软件测试的重要性。并且,根据这种心理,有人提出了一种测试的方法——黑盒测试。
三、软件需要测试的部分
我们总在说要对软件进行测试,那么我们到底需要对软件进行那些测试呢?下面我们对一些常常常需要进行的测试进行一些列举。
1.边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。
2.非法测试,例如在输入数字的地方输入字母。
3.跟踪测试,跟踪一条数据的流程,保证数据的正确性。
4.在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。
5.接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。
6.代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。
7.突发事件测试,服务器上可能发生意外情况的测试。
8.外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。
9.在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。
10.认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。
11.文字测试,如果在系统中有用词不当的地方,我想这是不应该的。12.系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。
13.用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。
以上举例出来的我们在软件开发过程中,一般都需要进行测试
四、软件测试的基本方法
软件测试针对的是软件的缺陷,也就是说我们软件测试为的就是找出软件的某些缺陷,为了更好的找出软件的缺陷,我们应当知道软件的缺陷的定。
1)软件缺陷的定义:
软件未实现应实现的功能
软件出现了不应出现的错误
软件实现了不应实现的功能
软件未实现符合一般软件常识的功能
软件出现了使用、性能上等不易被用户接受的问题
针对上面所述的缺陷,我们提出了一些列的软件测试的方法。
2)首先从是否关心软件内部结构和具体实现的角度划分可以划分为两大类
黑盒测试(不知道程序的结构)
白盒测试(知道程序的结构)
黑盒测试:是软件测试中的另一种方法,即在测试时,测试人员并不了解程序的结构,因此测试人员只能通过输入得到相应输出,并根据相应的输出结果来判断某个功能是否实现、此功能是否正确。黑盒测试常用的方法有: ▪ 划分等价类
▪ 输入条件 ▪ 边界值分析法 ▪ 错误推测法 ▪ 因果图法 ▪ 判定表组成法 ▪ 正交试验设计 ▪ 场景法
这种测试方式只能了解到程序的外部结构。无法知道程序的内部的逻辑结构,因此具有一定的局限性。而知关于逻辑部分的局限性便可由白盒测试来进行弥补。
白盒测试:是软件测试中比较常用的用来测试逻辑软件结构的方法,通过白盒测试,我们可以了解程序的详细的逻辑结构,以此来判断程序的运行是否得到我们想要的效果。白盒测试常用的方法就是覆盖测试,也就是语句覆盖和逻辑覆盖。语句覆盖要求在设计测试用例的时候将所有的语句运行到,而逻辑覆盖则是要求对于每一个判断所得到的不同的路径我们均需要进行测试。
3)从是否执行程序的角度也分为两大类
静态测试 动态测试
4)从软件开发的过程按阶段划分有
A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试 F.回归测试 G.Alpha测试 H.Beta测试
五、软件测试的过程
软件测试的方法有很多,而软件测试应当尽早进行并且按照一定的步骤进行,这样才可以把问题今早的解决在摇篮里面。下面是软件测试的步骤。
第一步:对要执行测试的产品/项目进行分析,确定测试策略,制定测试计划。该计划被审核批准后转向第二步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期开展工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。
第二步:设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。第三步:如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。
第四步:提交缺陷。这里要进行缺陷审核和验证等工作。
第五步:消除软件缺陷。通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。在程序员修改完成后,进入到回归测试阶段。如果满足“完成准则”(ExitCriteria),那么正常结束测试。
第六步:撰写测试报告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。
软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。
第二篇:软件测试心得
从事测试到现在已有半年多的时间,刚开始做为新人时,面对未接触过的系统中的每个模块,心中是有些慌张的。仅凭业务学习和前辈们讲的测试方法还是很难做到完全让自己放心,这可能是新人的通病,害怕测试不全面不深入。至少我在测试之初,是比较胆怯的。随着时间的推移,我发现自己越来越自信,特别是面对新的模块新的功能消除了那种恐惧感。总结了以前的一些心得,供大家交流:
一、根据自己的实际情况,做一个学习计划,边学边测,以学来熟悉侧,以测来巩固学,做到二者的融合;一开始会比较苦,毕竟很多都不熟悉,有时单据不能保存,有时流程走不下去,一定要坚持住;业务知识熟悉了,就好多了。
二、刚开始时因为业务不熟悉,需求也不熟悉,就开始测试任务。这时自己就看看测试用例,随便测测,看功能能不能正常走通。
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)。
第四篇:软件测试心得
《软件测试心得体会》
软件测试在整个软件周期中的重要性。它存在于整个项目周期,在项目开始
下面简单谈谈我的几点体会:
体会一:
体会一:软件测试在整个软件周期中的重要性。
它存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个项目的走向,成败与否全在于开始阶段的决策。
体会二:软件测试的真正意义在于发现错误,而不在于验证软件是正确的。
再严密的测试也不能完全发现软件当中所有的错误,但是测试还是能发现大部分的错误,能确保软件基本是可用的,所以在后续使用的过程中还需要加强快速响应的环节。结合软件测试的理论,故障暴露在最终客户端之前及时主动的去发现并解决。这一点就需要加强研发队伍的建设。
体会三:在系统性能测试方面需要重视。
经过这次培训中多个案例的讲解,让我了解到系统在上线之后会有很多不能预知的性能问题,需要在上线之前实现进行模拟,以规避风险,包括大数据量访问,高并发数等等。当然也有很多应对手段,没有哪种手段可称为最完美,只有最合适的,需要灵活掌握,综合运用以达到最优程度,这是个很值得研究的领域。
下面是我的几点想法:
想法一:加强系统上线前的性能测试。
目前我们在项目建设过程中对性能压力测试的重视程度还不太高,厂家也很少有雇佣第三方的测试机构。而是在现网进行试用,遇到问题再解决,可能会产生滞后问题,影响客户使用。希望以后能在性能测试方面提高重视程度,加大人力投入,以保证系统上线后能够稳定运行。
想法二:适当介入相关项目研发
对于快速响应这块,我们不能一味依赖厂家,而希望自己就能快速响应,及时将问题解决。这也是一个比较长远的问题,需要加强研发力量的投入。
我个人是做开发出身,有此类经验,当时是在客户现场,因为了解系统内部结构,能够在第一时间排查解决客户所反馈问题。
现在系统完全由厂家开发,很难了解内部结构,或许会造成后期维护困难。所以,是否应该针对某些项目介入厂家研发工作,比如请厂家提供源代码等相关要素,以增进维护人员对系统的了解。
最后再次感谢公司提供的平台,感谢领导的信任,让我有机会得到更深层次的学习以及展示自己能力的机会,我也会尽我所能来完善工作的系统,提高整体工作效率,为南方电网的发展建设提供更坚实,优秀的支撑服务平台。
第五篇:软件测试读书总结
软件测试(第二版)书的一些总结
软件测试这本书分为了六个部分,介绍了软件测试的基础知识。以下分部分是我的一些理解。
1.第一部分是软件测试综述,主要介绍了与软件测试及其相关内容的一些定义。
(1)什么是软件缺陷?
软件缺陷可以理解为导致软件失败的缺陷,失败的软件可以理解为不符合软件产品说明书或不符合用户要求的软件。
(2)导致出现缺陷的原因以及软件修复的难度(优先级)?
软件缺陷的原因实际是在说明书编写、设计、编码时出现了偏差错误,并且随着开发往后,更不容易修复。
(3)软件测试是要做什么?
软件测试目的是要发现缺陷,给出提示,并且给出一定的建议(也可以是提供缺陷优先级或严重性等度量)。值得注意的是,并不是非要给出修改软件的建议,也可以是给出针对用户培训以规避软件缺陷之类的建议。并且软件测试所针对的范围是交付用户部分,所以测试要包含文档测试。
(4)软件测试时的原则
第一是不要求完全测试程序,要把测试控制在合理的测试量内(可由剩余缺陷和测试费用关系得到);第二是找到软件缺陷越多那么软件缺陷越多。
2.第二部分是测试基础,介绍了一些基本的测试方法(白盒与黑盒法的区别是是否参考了代码,动态与静态区别是是否运行了代码):
(1)静态黑盒法测试产品说明书。
(2)动态黑盒法,一般用来进行功能性测试。使用等价类划分的方法,将测试用例合理划分,将测试量控制在合理范围,并通过对测试用例和运行结果对比,得到测试结果。
测试不止是对数据测试,还要对软件状态进行测试(可参考状态图进行,测试软件状态转换是是否出现问题)
(3)静态白盒法,设计、编程阶段审查设计、代码。
(4)动态白盒测试,对程序中的代码段或者某个模块进行测试,测试用例不仅需要对数据覆盖(例如代码端公式里除数为0的情况),还要对代码覆盖(语句覆盖、分支覆盖、条件覆盖,一级比一级覆盖广一些)
3.第三部分是运用测试技术,介绍了一些常见的测试,如:配置测试、兼容性测试、外国语言测试、易用性测试、文档测试、软件安全测试,并以网站测试作为实例进行了讲解。
4.第四部分对测试方法进行补充。首先是自动化工具,可以减少测试一些性能难度,可以简单的在短时间进行多次测试;其次是共享测试,就一个软件的测试区域让不同测试者进行测试,属于内部测试;最后是beta版本测试,通过用户使用后的数据进行分析。
(1)自动化测试工具中负载压力工具与干扰注入器、噪声发生器的区别?
负载和压力工具测试软件,用来给软件加压,加载,比如在测试文本处理程序的时候,设置其处于的磁盘空间和内存很小。类似于负载和压力工具干扰注入器、噪声发生器并不是提供固定不变的压力、负载而是不断变化,更不稳定。
5.第五部分详细介绍了测试的步骤(和各个过程产生的结果文档):
测试计划测试用例计划(包括:测试设计即在什么地方用用例,测试用例即测试用例详细说明,测试方法即怎样用用例)报告问题
值得注意的是,报告问题时需要对软件缺陷进行跟踪,才能及时了解软件缺陷被提出了没,正在被解决没,解决掉没。跟踪其处在生命周期的哪个阶段。
6.第六部分是职业的介绍展望。