软件测试基础(2015级7&8班)
2016-9-9 10:02http://10.7.1.98/201508wangkaixin/ruanjianceshi/
Mymovie软件测试计划书:http://10.7.1.98/201507wangyiding/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/
给 #软件测试基础(2015级7&8班)# 指派了新任务。
根据Mymovie需求文档,书写此项目的测试计划
一、实验目标
1 理解影评项目的相关业务需求
2 掌握真实项目的测试计划制定
3 能够结合项目灵活设计测试方案
二、前提条件
1 阅读论坛需求相关文档,理解业务需求
2 掌握测试计划理论
测试计划即Test plan是计划阶段的测试文档,是指导测试过程的...
请大家在此目录下 \\10.7.1.4\super\教学管理\2016-2017(第一学期)课程\2015级软件测试基础,下载My movie项目需求
软件测试中的诸多误区
想起这个题目,是因为最近遇到好几次关于这方面的讨论。发觉即便做过几年测试的老员工也或多或少有些这方面的困惑。当然一家之言,仅作抛砖引玉之谈。
一、测试就是保证软件无故障运行
对这个,我只想说这个观点只是出于测试人员美好愿望。再牛的测试员也不可能保证他所测的软件就能无故障运行。只能说在他所测的范围内,软件能按预先定义的需求运行。
这个误区的一个潜在问题是,秉承这一观点的测试人员可能更期望自己的测试对象能“顺利”运行,而不是尽力发现产品中的问题。
二、测试的环境就选用户的环境
我想说的是:不可能!好吧,也许对于一些具有固定用户,特别订制的特定环境下的软件产品,你很好找到用户的环境。不过对于大部分的软件产品而言,我想说即便你知道了用户甲的环境,你也不一定搞清楚用户乙的环境。即便同一个甲,可能他今天和明天的环境也不一定相同。那结果,你选择哪个环境作你的测试环境呢?
这个问题我想说的是用户的某些典型环境可以在测试中进行优先考虑,但真正的测试环境永远应该是那个你认为能更好暴露产品问题的环境。
三、测试自动化更为高效
说句心里话,我并不是反对这个观点,不过这观点是有商量余地的。自然,这里是拿自动化测试和手工测试作为对比的。也许自动化有诸多的优点,比如能够不厌其烦执行枯燥的动作;能够精确的定位时序动作;能够长时间工作;能够快速执行等等。不过自动化测试的缺点也是有的,比如需要开发成本;需要对产品行为的明晰定义。
说到这点,也就是说采取测试自动化是有条件的。并不是它就一定适应你的测试,何论高效。其实自动化测试更多的是应用在回归测试场合,更多的bug事实上是在手工测试中发现的。虽然这个事实不一定是你希望看到的:)
四、开发人员更适合做测试
测试圈内的一个共同认识是从事测试的人员技术上总比开发人员差,开发人员能更好的应用技术去测试;开发人员更能了解开发,所以更能了解问题的所在。
不过本人的经历而言,开发组转过来从事测试的同事绩效并不怎么理想。这个误区的问题在于过于简单的看待测试的技能需求。一般而言,测试工程师需要三维的技能:技术,业务领域知识和软技能。其中技术不仅仅是开发,还包括测试技术。从开发转作测试的人员,不一定具备这些能力,而且从某种程度,他们更专注在开发技能,可能更喜欢的是工具的实现和代码的审核。从整体上来说,开发人员的技能并一定就能完全胜任测试工作。
五、Bug越多测试越有效
估计很多的经理会有这个观点,很多同行估计也深受这个指标考核之苦。不过,如果打个不恰当的比方,说:GDP越高经济越有效。我想很多人也就明白个大概了。
Bug的出现有多方面的因素,并不一定需要多有效的测试。犹如上策伐谋一样,有效地测试最好将bug消灭在未成的时候。对产品报bug已经是到了最后的保障环节,成本已经相对变高——相对于需求分析和设计阶段。只有到了最后阶段,同样情况下才是有效地。不过这并不一定是好度量的。
软件测试中的诸多误区
想起这个题目,是因为最近遇到好几次关于这方面的讨论。发觉即便做过几年测试的老员工也或多或少有些这方面的困惑。当然一家之言,仅作抛砖引玉之谈。
一、测试就是保证软件无故障运行
对这个,我只想说这个观点只是出于测试人员美好愿望。再牛的测试员也不可能保证他所测的软件就能无故障运行。只能说在他所测的范围内,软件能按预先定义的需求运行。
这个误区的一个潜在问题是,秉承这一观点的测试人员可能更期望自己的测试对象能“顺利”运行,而不是尽力发现产品中的问题。
二、测试的环境就选用户的环境
我想说的是:不可能!好吧,也许对于一些具有固定用户,特别订制的特定环境下的软件产品,你很好找到用户的环境。不过对于大部分的软件产品而言,我想说即便你知道了用户甲的环境,你也不一定搞清楚用户乙的环境。即便同一个甲,可能他今天和明天的环境也不一定相同。那结果,你选择哪个环境作你的测试环境呢?
这个问题我想说的是用户的某些典型环境可以在测试中进行优先考虑,但真正的测试环境永远应该是那个你认为能更好暴露产品问题的环境。
三、测试自动化更为高效
说句心里话,我并不是反对这个观点,不过这观点是有商量余地的。自然,这里是拿自动化测试和手工测试作为对比的。也许自动化有诸多的优点,比如能够不厌其烦执行枯燥的动作;能够精确的定位时序动作;能够长时间工作;能够快速执行等等。不过自动化测试的缺点也是有的,比如需要开发成本;需要对产品行为的明晰定义。
说到这点,也就是说采取测试自动化是有条件的。并不是它就一定适应你的测试,何论高效。其实自动化测试更多的是应用在回归测试场合,更多的bug事实上是在手工测试中发现的。虽然这个事实不一定是你希望看到的:)
四、开发人员更适合做测试
测试圈内的一个共同认识是从事测试的人员技术上总比开发人员差,开发人员能更好的应用技术去测试;开发人员更能了解开发,所以更能了解问题的所在。
不过本人的经历而言,开发组转过来从事测试的同事绩效并不怎么理想。这个误区的问题在于过于简单的看待测试的技能需求。一般而言,测试工程师需要三维的技能:技术,业务领域知识和软技能。其中技术不仅仅是开发,还包括测试技术。从开发转作测试的人员,不一定具备这些能力,而且从某种程度,他们更专注在开发技能,可能更喜欢的是工具的实现和代码的审核。从整体上来说,开发人员的技能并一定就能完全胜任测试工作。
五、Bug越多测试越有效
估计很多的经理会有这个观点,很多同行估计也深受这个指标考核之苦。不过,如果打个不恰当的比方,说:GDP越高经济越有效。我想很多人也就明白个大概了。
Bug的出现有多方面的因素,并不一定需要多有效的测试。犹如上策伐谋一样,有效地测试最好将bug消灭在未成的时候。对产品报bug已经是到了最后的保障环节,成本已经相对变高——相对于需求分析和设计阶段。只有到了最后阶段,同样情况下才是有效地。不过这并不一定是好度量的。
每个开发者都应该懂一点单元测试
了解敏捷开发的资料,参见博客:http://blog.csdn.net/myscrum/article/details/4313181
软件测试的十二个误区
软件缺陷导致严重后果的典型案例
用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅度增加,还可能产生其他的责任风险,造成公司信誉下降。一些关键的应用领域(例如银行、证券交易、军事等)如果质量有问题,还可能造成灾难性的后果。
现在人们已经逐步认识到是软件中存在的错误导致了软件开发在成本、进度和质量上的失控。 由于软件是由人来完成的,所以它不可能十全十美,虽然不可能完全杜绝软件中的错误,但是可以通过软件测试等手段使程序中的错误数量尽可能少,密度尽可能小。
接下来看看成功的软件测试带来的好处和不完整的软件测试带来的教训。
● IE和Netscape
在IE 4.0的开发期间,微软为了打败Netscape而汇集了一流的开发人员和测试人员。测试人员搭建起测试环境,让IE在数台计算机上持续运行一个星期,而且要保障IE在几秒钟以内可以访问数千个网站,在无数次的试验以后,测试人员证明了IE在多次运行以后依然可以保障它的运行速度。而且,为了快速完成IE 4.0的开发,测试人员每天都要对新版本进行测试,不仅要发现问题,而且要找到问题是哪一行代码造成的,让开发人员专心于代码的编写和修改,最终IE取得了很大的成功。
● 360存在严重后果缺陷导致系统崩溃
电脑中了木马,使用360安全卫士查出一个名为Backdoor/Win32.Agent.cgg的木马,文件位置为C:\Windows\system32\shdocvw.dll。进行清理后看不到Windows任务栏和桌面图标,根本进不去桌面,手工运行Explorer.exe也是一闪就关,后来查明是由于360在处理此木马时存在严重缺陷。360安全卫士只是简单的删除了木马文件,没有进行相关的善后处理工作,致使系统关键进程Explorer.exe无法加载。
● 2009年2月份Google的Gmail故障
2009年2月份Google的Gmail故障,Gmail用户几小时不能访问邮箱,应该算是最近因软件故障而受到广泛关注的事件。据Google后称,那次故障是因数据中心之间的负载均衡软件的Bug引发的。
360问题和Gmail故障还仅是导致用户不能正常使用电脑或几个小时内无法访问邮箱,并没有造成伤亡。当然了,对某些用户来讲,是非常不便。
但看了下面的一个例子您会发现,360和Gmail的问题真是“小巫见大巫”了。
● 2011 年温州7.23 动车事故
2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。
上海铁路局局长安路生28日说,根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误显示为绿灯。
● 致命的辐射治疗
辐射剂量超标的事故发生在2000年的巴拿马城(巴拿马首都)。从美国Multidata公司引入的治疗规划软件,其(辐射剂量的)预设值有误。有些患者接受了超标剂量的治疗,至少有5人死亡。后续几年中,又有21人死亡,但很难确定这21人中到底有多少人是死于本身的癌症,还是辐射治疗剂量超标引发的不良后果。
● 消失在太空
在制造其火星气候轨道探测器时,一个NASA的工程小组使用的是英制单位,而不是预定的公制单位。这会造成探测器的推进器无法正常运作。正是因为这个 Bug,1999年探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元,这还不包括损失的时间(该探测器从发射到抵达火星将近一年时间。)
● 阿丽亚娜5型火箭的杯具处女秀
1996年6月4日,阿丽亚娜5型运载火箭的首航,原计划将运送4颗太阳风观察卫星到预定轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。
后来查明的事故原因是:代码重用。阿5型的发射系统代码直接重用了阿4型的相应代码,而阿4型的飞行条件和阿5型的飞行条件截然不同。此次事故损失3.7亿美元。
● 英特尔奔腾芯片缺陷
如果在计算机的“计算器”中输入以下算式:
(419583/3145727)X3145727-4195835
结果显示为零。而在1994年,结果可能为其他答案,这就是英特尔(Intel)奔腾(Pentumn)CPU芯片所带来的一个浮点触发缺陷。英特尔为此付出了4亿多美元的代价。
● 一触即发的第三次世界大战
1980年,北美防空联合司令部曾报告称美国遭受导弹袭击。后来证实,这是反馈系统的电路故障问题,但反馈系统软件没有考虑故障问题引发的误报。
1983年,苏联卫星报告有美国导弹入侵,但主管官员的直觉告诉他这是误报。后来事实证明的确是误报。
幸亏这些误报没有激活“核按钮”。在上述两个案例中,如果对方真的发起反击,核战争将全面爆发,后果不堪设想。
通过以上的例子,可以看出软件发生错误时对人类生活所造成的各种影响,有的甚至会带来灾难性的后果。软件测试可以使这种风险降低,它在一定程度上解放了程序员,使他们能够更专心于解决程序的算法效率。同时它也减轻了售后服务人员的压力,交到他们手里的程序再也不是那些“一触即死机”的定时炸弹,而是经过严格检验的完整产品。同时,软件测试的发展对程序的外形、结构、输入和输出的规约和标准化提供了参考,并推动了软件工程的发展。
软件测试是使用人工或自动化手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 学习软件测试可以多角度分析需求,不同思路验证代码,
测试就是对项目开发过程的产品(编码、文档等)进行差错审查,保证其质量的一种过程 软件测试是使用人工或自动化手段,来运行或测试某个系统的过程 软件测试的目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别 学习软件测试可以多角度分析需求,不...
软件测试是使用人工或自动化手段,来运行或测试某个系统的过程。 软件测试不单单是给程序找错误,而在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 学习软件测试可以多角度分析需求,不同思路验证代码。
软件测试是用人为的或自动的方法来发现软件的实际功能和预订功能的差别。意义在于测试软件漏洞,完善软件,更方便与人。
软件测试就是人才稀缺,国家重点发展的工作职位。高级软件测试人员工资高,人却很少。软件测试不仅要找到错误还要找到正确的代码方式和编码习惯。软件测试可以提高软件质量,减少错误代码,减少市面上的质量不足的软件,有助于软件开发行业更好的发展。
测试是基于所掌握的技术和原理对所需测验软件的全方位或单方面功能及性能的测验 学习测试帮助我们在编程的时候了解更好更有效率的解决问题和优化客户体验
测试是基于所掌握的技术和原理对所需测验软件的全方位或单方面功能及性能的测验 学习测试帮助我们在编程的时候了解更好更有效率的解决问题和优化客户体验
软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它的主要工作是验证和确认。学习软件测试可以发现一些可以通过测试降低或避免的开发风险,在开发项目的过程中软件测试是一个标准项目。
软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它的主要工作是验证和确认。学习软件测试可以发现一些可以通过测试降低或避免的开发风险,在开发项目的过程中软件测试是一个标准项目。
软件测试定义:为了发现程序中的错误而执行程序的过程。软件测试有初级、中、高级工程师,还有项目经理等职位。 软件测试可以用来衡量软件的质量,测试其是否满足设计要求 软件测试流程可以概括为:立项 需求 设计 编码 测试 运行 维护
我认识的软件测试:就是在一个软件初步开发完成后,试运行,然后进行各个功能的测试,例如多人同时在线等测试。找出其中操作不便捷和运行不流畅的漏洞,生成测试报告,最后进行漏洞修补,使软件更加完善。 意义:我认为软件测试的意义在于,软件相当于科技黑箱,使用者不知道其运行原...
软件测试是比较实际结果和预期结果的差别的过程。 软件测试可以让我们发现软件开发过程中的缺陷以便及时改进
软件测试是使用人工或自动化手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。学习软件测试可以多角度分析需求,不同思路验证代码,保证代码数量。学习软件测试有利于学习其他专业课,是学习其他专业课的基础。
1.软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程。 2.软件测试主要工作内容是验证和确认验证是保证软件正确地实现了一些特定功能的一系...
软件测试是一种运用人工和软件检验是否满足需求的一种过程。软件测试的对象有程序,数据和文档。我认为学习软件测试可以用审视的眼光对自己开发的程序作出判断,帮助软件开发人员编写更加完美的软件。软件测试人员需要具有很好的责任心,洞察力,专注力。有白盒测试,黑盒测试和灰盒测试。
我认为软件测试就是为了发现软件中的错误而执行软件程序。 软件测试要自己运行程序,发现错误,发现不足,找出软件中的bug,报告缺陷。 软件测试的意义:为了发现错误而执行程序,成功的测试是发现了至今尚未发现的错误的测试。 测试的目的就是为了能以最少的人力和时间发...
软件测试就是帮助公司把好软件产品的质量关,象传统行业的质检员,从软件产品刚开始设计到软件产品最终上线,软件测试人员都会参与其中,对软件产品的需求文档、设计文档等检查是否有歧义,或者用词是否违背行业规则等;对软件产品本身的功能、性能通过运用专业的软件测试技术以...
软件测试就是帮助公司把好软件产品的质量关,象传统行业的质检员,从软件产品刚开始设计到软件产品最终上线,软件测试人员都会参与其中,对软件产品的需求文档、设计文档等检查是否有歧义,或者用词是否违背行业规则等;对软件产品本身的功能、性能通过运用专业的软件测试技术以...