发布时间:2023-09-28 10:13:16
序言:作为思想的载体和知识的探索者,写作是一种独特的艺术,我们为您准备了不同风格的5篇探索性研究的特点,期待它们能激发您的灵感。
(一)教育作用的潜隐性。隐性教育是一种受教育者在心理上并未察觉的无意识教育,它与显性教育的根本区别在于教育过程的隐蔽性。这种潜隐性可以从如下两方面进行理解和把握: 其一,教育者传递信息方式上的隐蔽性。教育者并非滔滔不绝地灌输大道理,也并非引经据典地直率劝导、而是有意识地将教育的目的和意向渗透到具体的人、事、物及活动行动过程中, 以含而不露的方式,引导大学生自然融于教育者创设的教育情境中。其二,大学生接受教育的隐蔽性,即无意识性。这种隐性教育的发生与大学生的好奇、兴趣、尊重、认可等心理需要直接相关,因此,他能够在不带有任何逆反性与排斥性的前提下,用一种潜藏于内心深处的摄取机制,在非目的性、无意识状态中接受熏陶和影响,进而达到受教育的目的,实现教育者的原始教育初衷。
(二)教育途径的多样性。隐性教育不似显性教育那样主要依靠面对面上课等的形式,以自上而下严肃的教学方式对大学生施加直接的影响,而是打破了传统的固定形式、固定时间、固定地点进行集中育的封闭式教育模式限制,使大学生在所有时空范围内时时处处接受到教育,所以我们说隐性教育是一种无课堂形式、跨时空的无处不在的教育。
(三)教育内容的丰富性。隐性教育是一种多层次、全方位的教育,美国学者德里本曾指出:“在学生良好道德的形成中,来自他们在学校环境中的经验的东西,与教给他们的东西一样多。”隐性教育的内容包罗万象,不仅包括学校的硬件环境和精神文明软件建设,还包括大学生参加的各项社会实践活动和其它文体活动,这些方方面面的隐性教育资源,以不同的方式、不同的角度、不同的途径、不同的层次对大学生施加全面的、综合的、潜在的、深远的影响。可见,隐性教育的内容是丰富多彩的、分散不定的、灵活多变的、随处可见的。
(四)教育参与者的自主性。关注师生之间的对话与相互理解,这才是充满人性光辉与人文关怀的教育,传统显性教育偏失的根源,在于对现实生活中主体需要的疏离。隐性教育是一种以受教育者为主体的自主性教育,而不是居高临下的权威式的训导和灌输。在教育过程中,大学生不再是被动的教育客体,而是自愿、自主的主体,参与哪种特定的活动、如何参与、怎样参与都由受教育者自主选择和自行决定,这就避免了因直接的、明显的、外部强加的意图而使大学生产生逆反心理和对抗情绪,从而使教育效果最终严重打折现象的发生。
(五)教育目的的激励性。隐性教育的目的是要唤醒大学生的潜意识进而养成大学生良好的道德素养和行为习惯。人的潜意识,有人把它比喻为海上冰山的水下部分,它难以感知,却是人行为的一种原动力。隐性教育就是要激活这一原动力。这种教育效果的凸现必定是日常教育量的长年积累与学生潜意识的升华共同作用的结果,如果教育量积累中断或积累过程中价值观发生混乱,就容易出现“前功尽弃”的现象。值得关注的是,这种“前功尽弃”的现象并不鲜见。因此在隐性教育过程中,教育工作者一定要耐得住性子、沉得住气,使教育内容前后相继,在教育评价中不自欺欺人,用简单枚举法和纵横对比法说明整体教育效果,激活大学生的潜意识,更重要的是让他们知道不足,让他们看到与同龄人的差距,向他们展示新的发展蓝图,使他们形成好的性格,养成终生受益的习惯。这需要我们树立潜移默化的思想,相信隐性教育的强大力量,相信教育对象的美好未来。
(六)教育形式的随机性。隐性教育的形式可以是多种多样,多姿多彩的,它既可以是一次轻松愉快的对话或聊天,也可以是共同参加一项活动,如听一场精彩生动的演讲,看一出寓意深刻的话剧,观一场精彩激烈的比赛等。为此我们可以说隐性教育无时不在,无处不在,我们平时获得的各种素质教育其实都蕴含在无限的隐性教育之中。
与此同时,隐性教育也为大学生的个性培养和发展提供了无限的可能。由于隐性教育具有个别性、隐含性和随机性等特点,恰好与当今大学生日趋增长的自尊、自制、自主相吻合,与时下大学生注重个人隐私、推崇自我、崇尚奋斗紧密相联。
(七)教育机制的综合性。一所学校如果只有班组里严格的纪律,而在操场、食堂、实验室等其它场合被允许纪律松懈,那么班级的纪律要求很难使学生受到制约,他们在班级的守纪往往只是一种条件反射行为而已。如果学校的基本规章制度、道德规范要求教师可以例外的话,例如在实行禁烟的校园内教师可以毫无顾忌地抽烟,那么这个学校的教育效果必然大打折扣,失去权威性。因此学校在隐性教育中应该十分注重教育资源开发的综合性。这种综合性主要体现在基本行为道德素养上,不仅做到师生一致,而且还要求教师成为学生的楷模;在基本的价值观、世界观教育中,要做到学科一致、教学、教育思想与办学思想相统一。
二、开发隐性教育资源的途径
(一)渗透隐性课程于显性课程之中。大学生的大部分时间是在课堂中度过的,这使得存在于教学活动中的隐性课程对大学生弥足重要。显性课程中的隐性课程渗透,应在把握课堂教学的知识性、系统性、严谨性、前沿性的基础上,在教育者的价值观念、教学态度、授课方式、个性特点与师生关系上下功夫,使整个教学活动在宽松、和谐、自然的气氛中进行,具有生动性、趣味性、愉悦性,引导学生在理性和感性的交汇中,有机地渗透思想道德、心理素质、创新精神等的教育和培养。课程目标拟分为情意目标、认知目标和行为目标,隐性课程的目标可以重点充实到情意目标和行为目标中。
(二)开展丰富多彩的校园文化活动。精心设计和组织开展内容丰富、形式新颖、吸引力强的活动课程,开发存在于活动课程中的隐性课程,可以使大学生在活动参与中受到潜移默化的影响,思想感情得到熏陶、人文修养得到提升。
通过专题辅导报告会、祭扫革命烈士墓等多种形式开展主题活动,把自然、社会、人文等方面的知识蕴藏在主题活动之中;通过参与“校园文化节”、“文明宿舍”、爱心捐助等活动,一方面可以满足展示自我、发展兴趣、发挥特长的需要,另一方面还可以培养大学生的合作意识、团队意识、责任感和集体主义精神;通过开展“创建文明校园、文明班级、文明宿舍,做文明大学生”的道德实践活动,把隐性教育的要求和任务融入大学生的学习生活之中;通过举办科技活动、艺术活动、体育活动和开展党团活动、社团活动、社会实践活动,不断提高大学生的综合素质。
(三)健全美化完善学校物质空间环境。对学校物质空间进行系统规划,可考虑以下几点因素:1.学校的自然环境要适应学生的心理特点,尽力扬长避短,做到净化、绿化和美化;2.建筑设计要美观实用,更要适合学生的心理与审美需求;3.室内设计要考虑光线、摆设以及学生的座位排列等因素;4.设施设计,图书资料、文体器材、实验仪器等方面物质设施的安排也应能对学生的心理产生积极影响;5.色彩匹配,即校园内外建筑、花草树木等色彩的协调匹配;6.人物形态。正面积极的师生服饰样式,容貌特征,行为表现等人物形态也能潜在地促进学生良好的心态和心理素质的构成。
(四)重视校园精神建设。校园精神是学校师生员工共同习得、信守的基本信念、价值标准、道德风尚及精神风貌。重视校园精神建设,开发存在于校园精神中的隐性课程,有利于大学生强化知识、文化、道德方面的修养,培养良好的教育与自我教育意识,推进成才与自我成才的统一。
高校教师要不断追求人格的自我完善,以德修身、严谨自律、率先垂范、言传身教,以良好的道德品质和崇高的人格魅力给大学生以潜移默化的影响。良好的校风、学风和班风是无形而强大的精神力量,也是培养大学生思想品德、提高大学生思想道德素质和开展隐性教育的有效途径和方法。注重对校风、学风和班风的建设,形成健康、向上、积极、进步、文明、和谐的良好风气是实施隐性教育的最佳途径之一。
摘 要 本文通过对岷山中学游泳为主的体育特色模式建立的依据、背景,以及2010年至2011年间游泳特色项目开展的情况、组织形式以及取得的成果、目前所遇到的困难,为以后更好的建设及发展提供依据。
关键词 体育特色 游泳 开展 训练点
中国的素质教育已推行了多年,国家大力推行体育与艺术2+1,逐步形成了以某项体育或艺术为特色的学校,为提升学校的核心发展力必须走特色发展之路,岷山中学从游泳这一体育特色建设入手,带动学校全面发展,并最终成为以游泳为特色学校,为把游泳这一特色项目做好,做强,岷山中学选择与市级游泳运动队训练点相结合的游泳特色模式,这一模式开展为发展学校体育特色创造了新的方法。
一、什么是学校体育特色与市级游泳训练点相结合开展学校体育特色模式
与游泳训练点相结合的学校体育特色模式是体育局与学校共同管理、联合出资,学校游泳普及与体校训练点相结合的模式。这一模式达到学校每位学生学会游泳,开展特色游泳项目,体育局培养游泳人才、向市、省、国家输送游泳人才的双赢的效果。
二、体育局与学校共建学校游泳特色的优势分析
(一)学校需要体育局的支持来实现的学校游泳特色项目开展的高质量,游泳项目不像其它的如篮球,田径、等体育项目,校内本身就有场地,游泳特色的开展需要游泳池,而学校本身没有游泳池,体育局管辖内的体育游泳训练中心正在学校的对面,所以从游泳特色实施的场地上说,学校需要与体育局的合作才能很好地开展游泳为特色的项目。从经费上来说,以游泳为特色的项目,该项目在实施过程中的各个方面会产生的费用,其中有场地,专业教师聘任,接送学生汽车费用,取得运动成绩后的教练奖励费用,以及器材的费用。这些费用80%来自于体育局,20%从学校的办学经费中支取。这很好地解决了,学校办学经费的不足的问题。游泳这一项目是一个技术性较强的体育项目,需要专业的游泳老师,普通的体育老师胜任不了专业化的教学,体育局有这方面的专业人才。解决了学校办特色需要的专业游泳教练。
(二)体育局需要以学校游泳特色为基础来培养北仑区的游泳方面的人才,为北仑区的体育健儿在浙江,全国,乃至世界上取得名次打下基础,提高北仑区的知名度。中国的人才选拔的制度,使家长们更加重视学生的文化学习成绩;独生子女的吃苦耐劳精神的缺乏;成功的运动健将只是凤毛麟角,更多的学生要从体校退下来,退下来后很难再考上大学,工作难找;这些因素的影响使很多家长不会轻易把学生送到少体校。体育局立足于学校来发现、培养游泳人才,能让有先天优势的学生既能在家的附近接受专业化的训练,培养自身的专业技能,又能在正规的学校完成国家所要求的基本课程,使学习与训练两不误。在学生的游泳有一定水平时再向上输送,把握更大,退回的现象更少。这样才能充分得到家长与社会的支持,从而解决了体校人才难招,招了难留的现象。岷山中学游泳训练开展两年多,以下的数据充分说明这一情况。
(三)体育局给学校提供了专业的游泳教师使学生学习游泳更加专业化,学校有游泳专业教师共三位,其中一位是学校体育教师,其他二位是宁波市运动训练学校派下来的专业游泳教师,受宁波运动训练学校的直接指导与培训,他们不仅有专业的训练知识也有丰富的教学经验,并定期利用业余时间在上海进行专业教学培训,学习最新的教学与训练理念。
三、学校游泳特色开展
(一)学校特色教育,游泳课目标
相对于游泳资源的紧缺,我们学校只能对小学一年级的小朋友进行上课,让每位学生能基本掌握各种游泳技能,参照目前世界游泳发展的新动向与趋势,游泳基本动作的规范化和多样化已被广泛应用。很多成功的教练都提出,对低年级教学要安排大量的打腿和分解练习,过多的配合只是叫快,不叫好。这是我们普训所遵循的运动规律。第一学期目标:在12节游泳课中,让90%的学生熟悉水性,并能连续换气,60%的学生能完成自由泳打腿的基本动作。20%的学生能完成25米自由泳打腿。第二学期是提高自由泳打腿的技术动作,让学生能更熟练,更规范地去完成此项练习,从而进一步提高其速度。
(二)学生游泳上课时间
每周每个班级上一次课,上课时间为下午2:35—3:15。
上课地点:北仑区游泳训练中心,中心良好的运作方式,保证了水质与环境的安全,让学生家长放心。
上课接送:由北仑区客运中心车辆接送,学生路上的保证安全。
上课与路上的学生管理:由班主任与二位游泳老师带队。
上课时的安全管理:北仑区游泳训练中心的救生员负责安全。
(三)学生游泳课教学学期计划示例:
表1
课次 内容 目标
1—2 1.游泳基本安全知识介绍和解说。
2.下水熟悉水中环境。 1.让孩子了解游泳的好处以及如何做好安全防范措施。
2.加强对水的了解,克服心理恐惧。
3.培养孩子在水中自由翱翔的兴趣。
3—4 让学生了解并掌握水中呼吸技术。
在培养兴趣的基础上逐渐掌握接触水的第一本领:水中呼吸。
5—6 1.水中呼吸+漂浮技术。
2.一学期游泳总结及评定。
1.增加难度,由在陆地站立的转变到水中漂浮。
2.通过考试和评定,了解成绩情况,为下学期的工作做铺垫。
7—8 1.带背漂的仰泳漂浮。
2.仰漂和俯漂的结合练习。 两种漂浮技术结合练习建立游泳基本身置:流线型姿势。
9—10 1.尝试一部分基础好的学生拿掉背漂仰泳打腿,基础差的继续巩固。
2.仰泳打腿的考核和评定。 让大多数学生掌握游泳的基本技能,并能加以运用。
【关键词】箱线图;幂变换;展布水平图;降水量
一、研究背景及发展
数据分析分为两大阶段,探索阶段和实证阶段。探索性数据分析可以分离出数据的模式和特点,把它们有力地给分析者。探索性数据分析(exploratory data analysis,简称EDA)于上世纪六十年代被提出,并逐步发展,现今已经应用非常广泛。具体来说,是对调查者观察得到的原始数据直接进行预处理净化,做出箱线图、茎叶图等等,直观展现出数据的结构等。并没有先做出相关的假定或者在部分假定条件下进行分析。即在对数据的基本特点还没有认识的情况下,无法选取相应的统计方法进行相关分析,此时可以应用探索性数据分析,挖掘数据之间的相关特征,给出之后实证分析的大致方向,此时再运用统计方法则会显得更加合理,更科学有效。为后来的数据实证分析做铺垫。
二、实例研究
如下,选取数据为中国16个大城市三月到10月的降水量,数据显示如下,可知,若直接运用统计方法,如大海捞针,不知何种假定下,选取何种统计方法较为合理。则先运用探索性数据分析中的相关方法。为使结果直观显示,运用箱线图作图,结合R软件编写代码。
(一)未作幂变换前的箱线图
箱线图是一批数据的五数总括的图示,展现了这个批的数据结构要点。从箱线图我们可以发掘出一个批的某些特性:位置、展布、偏度、尾长、边远数据点(离群点)。
但是初始箱线图也有缺点,如远离原点的批可能比靠近原点的批,有更大的展布,体现在图形上则会出现有些箱线图挤在一起,较为扁平,不利于数据分析。因此,若用同一尺度来绘图,将难以看出靠近远点的批的细节。
为了改善箱线图的这个缺点,我们可以做一些适当的变换,使得这些批的变异性更加一致。我们要从数据本身得到关于数据变换的一些指导,一个比较适合的标准就是“展布对水平图”,它能够建议一个幂变换,有助于把跨越这些批的不同水平的展布变成相等。
用箱线图比较几个批的数据,三搜集中国16大城市3月到10月的降水量数据,单位为毫米,由于数据庞大,不在此列出。数据来源于2012年统计年鉴。
构造出的箱线图可以看出位置,展布,尾长和离群值截断点。图中四分数相对于中位数的位置,可以看出偏度,若中位数离下四分数,比离上四分数近得多,则表明这个批是正偏的,反之则为负偏。由以上箱线图可知,效果不是很好,有较多的离群值截断点,不便于我们对数据的分析。
由上图可知,第13个箱线图(广州),距离远点较远,其降水量不仅有较大的展布,且分布较均匀。第16个箱线图(乌鲁木齐),其降水量展布较小,距离远点较近。由此可见,箱线图的局限性,为了解决展布对水平的依赖,以及离群值对数据分析的干扰,下面将对其进行改进。做相应的幂变换。
(二)幂变换(改善箱线图)
用R对所有数据进行平方根变换,得到新的展布对水平图。
则与前一个展布对水平图比较得知,此图没有明显的趋势,展布对水平不再有依赖性,则说明变换有效,达到了目的。
改善之后的展布水平图与箱线图如下。
可知,这个变换确实在几个重要方面改善了数据。我们可以知道,第13个箱线图(广州)的降水量普遍较高,其最小值都高于第2个箱线图(天津),我们得出,即使是在雨季,天津降水量都比广州要小,地域差异使得降水量有如此大的差异。第11个箱线图(武汉)的降水量有一个离群点,是在7月,降水量为389.7,可见武汉的雨水集中在7月,在夏天是一个降水量较大的城市。
三、结论分析
通过运用探索性数据分析和R软件结合的方法,数据被有效地处理与改善了。可见,探索性数据分析技术能帮助我们正确的处理数据,与R软件结合以后,拥有更加强大的功能,通过幂变换,箱线图得到了明显的改善,减少了离群值,展布也不再依赖于水平。总之,探索性数据分析在当今软件计算机如此发达的时代,其作用得到了越来越充分的体现,没有探索性分析,证实性分析往往是盲目的, 缺乏根据的; 没有证实性分析, 探索性分析则永远是一次不完整的的统计分析。正确运用探索性数据分析与R软件结合的方法,对数据进行处理与分析,可以带来很大的便利。
参考文献:
[1] David C Hoaglin Frederick Monsteller.John W.Tukey著,链、郭德媛、杨振海翻译校订.探索性数据分析[M].中国统计出版社,1983.
[2]李世勇,胡建军,熊 燕,欧阳虹.2004年我国卷烟焦油量的探索性数据分析[J].2005年第7期.
关键词: 探索性软件测试; 嵌入式系统软件测试; 基于会话的测试管理; 敏捷测试
中图分类号: TN911?34; TP311.5 文献标识码: A 文章编号: 1004?373X(2014)20?0074?06
Exploratory software testing approaches and their application in embedded systems
LIU Xi
(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)
Abstract: To apply the exploratory testing technology to the software testing of embedded systems is one of the promising ways to solve the problems including tight schedule, heavy tasks and incomplete software documentations. Rigorous testing management process and documentation are usually required for testing embedded systems, which is however weakened in exploratory testing. In order to guide proper application of exploratory testing in embedded system software testing, it is necessary to survey and review exploratory testing technology, analyze the correlation and conflict between exploratory testing technology and software testing system of embedded systems. Based on the survey, some suggestions are given on the application model in software testing of embedded systems. The problems andfollow?up study concerning the application are also discussed.
Keywords: exploratory software testing; embedded system software testing; session?based testing management; agile testing
0 引 言
软件在嵌入式系统中的作用越来越大。软件的质量不仅直接影响任务的成败,也关系着设备甚至人员的安全。随着用户对嵌入式系统软件质量要求的提升,软件测试已成为嵌入式系统交付前必不可少的环节[1]。
经典的测试方法要求依据软件需求和设计文档,遵循既定的测试流程,严格按照预先设计的“脚本”开展。因此经典测试方法也称为脚本测试(Script Testing)。随着嵌入式软件迭代的加速,给软件测试留出时间逐渐减少。嵌入式系统软件测试呈现出一些新特点,包括软件需求变化快、软件文档缺乏、软件测试周期短、测试时间不足等。
探索性测试(Exploratory Testing)具有在时间短和文档不完善的情况下,充分发挥测试人员的经验和能力,快速、高质量完成软件测试等优点。已形成了一套管理方法和应用模型[2?3],并在微软等多个企业开展了成功的实践[3?5]。探索性测试方法关注于实用,对它的研究也多数集中在实际应用方法而不是理论研究上[3,6?8]。
探索性测试是解决嵌入式系统软件测试需求变化快、软件文档缺乏、测试周期短等现实问题的可行手段之一。为了恰当运用,需要总结探索性测试的一般性应用方法体系,并探讨其与嵌入式系统软件测试体系的联系和冲突。在此基础上提出适用于嵌入式系统软件测试的探索性测试应用模型。
1 探索性软件测试的基本原理
探索性测试的概念形成较早,经过随后的发展已形成了一定的应用体系。
1.1 探索性软件测试的概念
传统的软件测试分为测试需求分析、测试策划、测试用例设计、测试执行和测试总结等主要阶段,依次开展[1]。传统软件测试流程依赖于完整、详实的软件需求和设计文档作为输入。而在现实的测试任务中,软件需求和设计文档往往有误或不完备,这导致脚本测试活动无法正常有效开展。
“探索性测试是同时进行学习、测试设计和测试执行的一种测试方法;也就是说,测试没有事先通过确定的测试计划定义,而是动态地被设计、执行和修改”[9]。探索性测试(也称为探索式测试)最早于1983年提出,并在实践中发展 [10?11]。与传统脚本测试相比,探索性测试具有以下技术特点:
(1) 测试活动的同时性。鼓励在测试执行的过程中,同时进行对被测软件的学习和测试设计。
(2) 关注测试任务。更关注于被测软件本身和需要测试的问题。
(3) 测试中的演绎推理。通过前一个测试活动的结果来指导后期测试的开展。
(4) 利用人的优势。关注于人本身的优势,如判断、分析、应变和协作的能力。
作为一种敏捷软件测试方法,探索性测试弱化了对测试的预先设计和测试流程的严格要求,而强调测试的同时性以及人的经验和创造性,关注于发现软件缺陷,持续优化测试工作[12?13]。测试人员在测试?理解?再细化测试的迭代中,通过测试活动本身不断深入学习被测软件,从而能够缩减测试准备时间,发现更多缺陷,并使得软件测试可以在被测软件说明或文档不齐全的情况下开展[14]。
1.2 探索性软件测试的主要方法
探索性测试的概念提出后,经过工业界和学术界人士的工作,已初步形成包含经验运用、执行策略、管理模型的体系。
1.2.1 探索方法
探索性测试强调对测试人员的知识和经验的运用。这些经验和知识可分为领域知识、系统知识和一般的软件工程知识[15]。领域知识指领域规则、客户流程和操作场景等,包括用户使用和具体应用领域知识。系统知识是关于待测软件的特性和技术细节的具体知识,包括系统级的交互以及个体功能细节。一般的软件工程知识即不需要对被测软件系统和应用领域的具体知识。
丰富的知识和经验是对探索性测试人员的基本要求,以此为基础,探索性测试的发挥人的创造性,并由此增强了测试过程的适用性。从工程应用的实践中,已总结出了一些有用的启发式方法。运用这些策略和启发式方法,可以帮助软件测试人员在具备了基本的知识和经验的情况下,尽快熟悉被测系统,并在测试过程中充分运用经验和创造性。
在开展具体的测试活动时,测试人员则可以借助一些启发式方法在测试活动中“探索”被测软件。这些启发式的方法是测试中为了发现可能的缺陷,测试人员常用的一些技巧 [16]。这其中典型的有Hendrickson的检查单[17]以及Whittaker的漫游方法[3]。这些方法的共同特性是提醒测试人员:
(1) 应关注软件最主要的功能,并在测试的过程中对软件的行为进行联想、质疑并发散,充分利用逆向输入、边界情况、近似值、错误输入和特殊值(如0),通过软件行为的原因、表现等举一反三;
(2) 应刻意构造一些特殊的行为,如尝试遍历所有输出、尝试最长操作路径、尝试关注关键数据的演化、打散或集中事物、长时间运行软件等;
(3) 应构造测试检查软件主要功能往往不关注的情景,例如启动和退出、全选、空值、资源过量和紧张、取消操作、重复、同时运行等。
传统方法假设软件文档中说明了软件的各种预期行为,因而可以通过分析文档来提取测试预期(Test Oracles)。然而,在软件信息不完备的情况下,测试预期则无法提前预知。HICCUPPS的启发式方法,从历史(History)信息、顾客形象(Image)在软件中的恰当映射、类似软件的对照(Comparable Products)、与软件和商业声明(Claims)、用户预期(User’s Expectations)、同类产品本身(the Product itself)、明显的意图(Purpose)和法律规章(Statutes)等角度,帮助测试人员在判定测试是否通过[14]。
1.2.2 管理模型
良好的测试管理模型是保证测试质量、提高测试效率的必要保障。基于会话的测试管理(SBTM)是探索性测试领域中最常用的管理实践。SBTM将软件测试活动分解为若干会话(Session)[2]。会话特征如下:
会话围绕主旨(Charter)开展:即待测试的任务和目标;会话时间较短:时间长度在90 min左右;会话需要记录:借助会话记录单;每轮会话需要计划和总结:一轮会话执行通常是一天,其中包含若干个会话测试。
基于会话的测试过程如图1所示。当接到测试任务时,测试小组通过对测试任务进行分析讨论,确定各会话的主旨。会话主旨包含被测软件的主题、测试人员的角色、目的、条件、优先级、参考文档、数据、思路、预期等信息[18]。测试项目负责人分配各会话测试人员,随后开展首轮会话执行。一轮会话执行通常为一天。每轮会话执行结束后,需组织会话总结,主要借助以下维度进行:会话执行情况、笔记、缺陷、问题、数据、时间分解、人员安排等。通过总结确定下一轮会话、资源分配。下一轮会话执行按照相似的方式开展。在测试达到预期时间和充分度要求后,测试结束,并根据每轮会话报告单整理测试报告。
图1 基于会话的测试管理示意图
会话还可以根据需要进行扩展,例如可以包含对会话的风险评估和资源统计[4],也可以将会话延伸为对特定问题的关注,形成测试的线索[19]。
1.3 探索性测试工具
探索性测试的有效开展同时依赖于工具的辅助。已有一些探索性测试的工具可供参考,例如Microsoft Test Manager(与Visual Studio组件),BBTestAssistant、TestExplorer,Session Tester,Rapid Reporter,Wink。这些工具通过基于录制回放、截屏和辅助文字信息的方式帮助测试人员记录探索性测试的执行过程,其中Session Tester、Rapid Reporter和Wink是免费的,Session Tester和Rapid Reporter则专门针对会话机制进行了设计和优化。
虽然这些基于录制回放原理的工具能够辅助测试人员整理测试报告,但是却缺少对测试人员运用其知识和经验的指导,对探索性测试的执行也缺少引导作用。目前没有专门的探索性测试流程管理工具,不能起到控制测试流程的作用。有必要针对具体应用研发相应的辅助工具。
2 探索性测试的应用及其效果
经过发展,探索性测试已在多个企业运用。人们对探索性测试方法的优缺点也有了更加明确的认识。
2.1 探索性测试在工业界的应用
微软是较早实践探索性测试方法的软件企业。微软在Windows 2000系统徽标认证、必应搜索引擎和地图、Visual Studio、Windows Media Player等系统、网络和桌面应用中广泛使用了探索性测试的技巧和方法,尤其是漫游探索法[3,7,20?21]。在其他公司,探索性测试也成功的运用于互联网应用行业以及信息系统的软件测试中。这些测试任务往往在软件文档不全、测试时间紧、企业对采用传统的脚本测试流程不满意的背景下开展,通过运用基于会话的方法,测试团队都能够高效的完成测试任务,甚至发现了采用传统方法在类似项目中遗漏的缺陷,在系统上线后也没有发生重大问题,软件项目组对测试团队的满意度有提升[22?24]。
虽然可能没有直接说明采用探索性测试,开源软件的测试往往具有探索性测试的特点。这些测试往往在没有详细的软件文档和测试用例设计的基础上,利用志愿测试人员的经验和兴趣开展 [25]。在敏捷软件研发团队中,探索性测试的方法也多有运用[26]。成功案例包括与XP和Scrum敏捷软件开发的结合[5,27]。
除了在工业界的运用,也有学者对敏捷软件测试的应用进行了系统的研究和讨论。Itkonen等人在芬兰多个软件公司中研究了测试人员对探索性测试的使用方法、效果和评价[28],对探索性测试的优缺点、应用条件合场景以及推荐的方法进行了总结[29];通过研究和实验,发现了探索性测试在缺陷检测能力上能达到甚至超过传统脚本测试的水平[6]。Naseer,史亮和高翔也总结了探索性软件测试在瑞典软件公司、国内的微软和淘宝等企业运用的经验,对探索性测试的活动进行了总结[8,10]。Bach等人还成立了公司专门从事测试方面的研究和推广。另外,也有一些研究将探索性测试思想与测试自动化方法结合[30],或利用探索性测试的思想提高测试效率和质量的工作[5]。
从目前的应用情况来看,探索性测试技术多数是在桌面应用、B/S架构信息系统等领域的应用,在嵌入式系统软件测试中的应用较少。
2.2 探索性测试的优缺点
经过实践,总结上述对探索性测试的应用,能够发现,探索性测试尤其适用于要求在短时间内发现被测软件一些重要缺陷或事先没有能够进行详细测试设计的情况;但也具有测试过程不易控制、测试文档不全等问题。因此,在具体领域中运用探索性测试技术时,有必要根据领域特性,设计适合的测试流程,扬长避短。
一般认为探索性测试的主要优点和缺点如下:
优点:便于利用人员经验;适合于从用户角度的测试;适用于缺少软件文档、测试时间紧情况;灵活且适应性强;对测试人员和开发人员的反馈较快;能够为测试带来新内容,降低“杀虫剂”效应。
缺点:缺少足够的文档,不易度量覆盖率;测试统计数据不足,不利于决策;对测试人员经验要求较高;在测试人员经验不足、管理不严格的情况下,可能会影响测试质量;如缺少恰当工具,则不利于缺陷复现。
3 探索性测试在嵌入式系统中的应用
探索性测试技术却是能够应对嵌入式系统软件测试中软件需求变化快、测试周期短、软件文档不全等现实问题的可行方法之一。本文首先分析探索性测试在嵌入式软件测试中应用的需求和困难,然后探讨探索性测试技术与嵌入式系统软件测试体系的结合方法,对应用模型提出建议,并对应用中可能的问题和后续研究进行讨论和展望。
3.1 探索性测试一般性方法的适用性
随着IT技术的发展和各国在国防、智能电网、物联网、智能手机等行业投入的加大,嵌入式软件产品越来越多,测试任务越来越重,往往难以保证充裕的测试时间。软件需求和开发文档存在不准确、不完备的情况。而同时,嵌入式软件的测试具有较强的领域特性,领域内测试人员对被测系统的经验比较丰富。因此,需要也有条件在嵌入式系统软件中开展探索性测试,以降低对软件需求和设计规约的依赖、发挥探索性测试对软件变化的适应性和充分利用测试人员经验的优势。
然而,探索性测试技术在嵌入式领域中的应用却较少。探索性测试的通用方法没有直接用于嵌入式系统软件测试的原因主要是 [1,31?33]:
(1) 软件测试文档:探索性测试不鼓励测试花费精力在策划和准备上,而测试执行记录风格随意性较大,不利于形成统一、完备的测试文档;这与按照国标和军标中对完整的软件测试文档的要求冲突。
(2) 软件测试充分性度量:不易度量测试覆盖率,不易评价测试质量。
(3) 软件测试过程控制:缺少对配置和测试流程的系统性管理,可能造成测试过程失控。
3.2 探索性测试应用模型探讨
为了解决嵌入式系统测试中软件需求变化快、测试周期短、软件文档不完备等现实问题,有必借鉴探索性测试技术在信息系统、网络应用、操作系统等方面的成功经验,将其融入嵌入式系统软件测试体系中来[24,34]。为了与相应的软件测评体系和标准匹配,必须对探索性测试通用方法进行调整,设计探索性测试在嵌入式系统软件测试的应用模型。
一种可参考的“脚本会话模型”如图2所示,是以探索性测试一般性理论、探索性测试各特性在各型产品软件的适用性研究为基础,将探索性测试与传统脚本测试相结合的软件测试模型。为充分利用两者的优势,脚本会话模型的整体仍以传统脚本方法为基础,从而利用脚本测试管理中测试文档完备和过程管理控制完善等优点,而在测试执行过程中充分发挥探索性测试的灵活、高效优点,引入会话、漫游测试法等探索性测试等方法,同时借助嵌入式系统软件测试典型数据复用库来实现对测试人员经验的固化和复用。
图2 嵌入式系统软件脚本会话测试模型
如图3所示,脚本会话模型整体流程遵循经典的脚本测试流程,但发挥了探索性测试对经验的利用和灵活性的特点。
图3 脚本会话测试模型流程框架
包含以下步骤:
(1) 测试策划和设计阶段;借助领域软件测试典型数据复用库(测试人员经验的固化体现)形成测试项、构造测试用例,降低对软件需求和设计文档的依赖,初步完成测试需求的提取和测试用例的设计。
(2) 测试执行阶段:测试执行以基于会话的方式开展,并对一般会话进行扩展。根据测试设计和计划,确定每个会话的主旨、用例和测试方法。在每一次会话中,测试人员可以结对开展测试执行,根据预先指定的漫游策略和启发式方法,针对一个测试项进行探索,并补充测试用例。测试人员在会话结束后整理会话记录单。根据本轮会话执行情况,记录缺陷、改善测试设计,并准备下一轮会话。如此迭代直到测试结束条件满足,测试执行结束[35]。
(3) 测试总结阶段:借助测试执行中各个会话报告单,总结和报告缺陷。
3.3 讨论和展望
探索性测试在互联网和桌面应用已经成功实践[34],而在嵌入式领域应用仍然较少。在嵌入式系统软件测试中运用诸如脚本会话模型的探索性测试技术时,应注意以下三点问题:
(1) 测试过程管理和文档。必须重视探索性测试的过程管理以保证测试过程受控。同时在适当的阶段应编写相应文档作为测试阶段性成果,并在测试执行完成后更新相应文档。
(2) 结合具体领域。具体领域的软件测试典型数据复用库可以看作是对该领域软件测试人员测试经验的固化,是软件测试团队的组织资产,有助于团队新成员快速熟悉被测系统,提高探索性测试的效率。
(3) 针对测试团队和项目制定具体策略。制定探索性测试中的典型方法的应用策略,并注意收集反馈,在实践中持续改进。
探索性测试作为一种在互联网、操作系统等领域成功运用多年的测试技术和理念,可以与其他软件测试技术结合,共同推进嵌入式软件测试质量的提升。可能的结合方向包括(但不限于):
(1) 基于模型的测试和验证。借助软件模型可发现隐藏在软件界面和正常使用流程下的交互,其中可能隐藏了大量的缺陷;借助模型检验工具提供的反例[36],测试人员还可以对软件进行更加深入的探索;
(2) 测试自动化。嵌入式系统软件需要处理传感器送来的大量数据,采用自动化方法能够有效减少测试人员的工作量;结合探索性测试的技术,也能够为测试用例约简和测试预期问题提供解决途径[34,37?39];
基于剖面的测试:构造嵌入式系统的操作剖面和用户剖面,辅助测试人员能有选择性地对系统进行探索[40??41]。
4 结 语
探索性测试技术经过研究和发展,已形成了一套可行的体系。探索性测试在嵌入式系统软件测试中的应用还较少。经过对探索性测试体系的全面研究,能够更好的理解这种方法在嵌入式系统软件测试中的适用性,并为融合探索性测试与传统嵌入式软件测试方法,形成适用于嵌入式系统软件测试的探索性测试应用模型提供思路和方向。
参考文献
[1] 康一梅,张永革,李志军,等.嵌入式软件测试[M].北京:机械工业出版社,2008.
[2] BACH J. Session?based test management [J]. Software Testing and Quality Engineering, 2000, 2(6): 1?4.
[3] WHITTAKER J A.探索式软件测试[M].北京:清华大学出版社,2010.
[4] LYNDSAY J, VAN EEDEN N. Adventures in session?based testing [EB/OL]. [2002?08?02]. http:///articl.
[5] TUOMIKOSKI J, TERVONEN I. Absorbing software testing into the scrum method [J]. Lecture Notes in Business Information Processing, 2009, 32: 199?215.
[6] ITKONEN J, MANTYLA M V, LASSENIUS C. Defect detection efficiency: Test case based vs. exploratory testing [C]// Proceedings of International Symposium on Empirical Software Engineering and Measurement (ESEM). [S.l.]: [s.n.], 2007: 61?70.
[7] BACH J. General functionality and stability test procedure for certified for Microsoft Windows logo [R/OL]. [1999?08?22]. http:///tools/procedure.pdf.
[8] NASEER A, ZULFIQAR M. Investigating exploratory testing in industrial practice [D]. Ronneby: Blekinge Institute of Technology, 2010.
[9] BOURQUE P, FAIRLEY R E. Guide to the software engineering body of knowledge, version 3.0 [R/OL]. [2013?03?13].. http:// /p?1714.
[10] KANER C, FALK J, NGUYEN H Q. Testing computer software, second edition [M]. New York: John Wiley & Sons, Inc., 1999.
[11] KANER C, BACH J, PETTICHORD B. Lessons learned in software testing[M]. New York: John Wiley & Sons, Inc., 2002.
[12] FOWLER M, HIGHSMITH J. The agile manifesto [J]. Software Development, 2001, 9(8): 28?32.
[13] COCKBURN A. Agile software development [M]. [S.l.]: Addison?Wesley, 2002.
[14] BOLTON M. Testing without a map [J/OL]. [2011?07?18]. http:// /1137978.
[15] ITKONEN J, MANTYLA M V, LASSENIUS C. The role of the tester's knowledge in exploratory software testing [J]. IEEE Transactions on Software Engineering, 2013, 39(5): 707?724.
[16] KANER C. A Tutorial in exploratory testing [R]. Chicago: QAI QUEST Conference, 2008.
[17] HENDRICKSON E. Explore It!: Reduce risk and increase confidence with exploratory testing [M]. [S.l.]: The Pragmatic Programmers, 2013.
[18] CLAESSON A. How to perform exploratory testing by using test charters [R]. Swedish: Swedish Association for Software Testing (SAST), 2007.
[19] BACH J. Introducing thread?based test management [R/OL]. [2010?11?26]. http:///blog/archives/503.
[20] ROBINSON H. Explorer test automation [C]// Proceedings of the Conference for the Advancement of Science Teaching (CAST). [S.l.]: [s.n.], 2010: 11?21.
[21] ROBINSON H. Using simple automation to test complex software [C]// Proceedings of Annual Pacific NW Software Quality Conference. [S.l.]: PNSQC, 2010: 123?132.
[22] V?GA J, AMLAND S. Managing high?speed web testing [C]// Software Quality and Software Testing in Internet Times. [S.l.]: Springer?Verlag, 2002: 23?30.
[23] WOOD B, JAMES D. Applying session?based testing to medical software [J]. Medical Device & Diagnostic Industry, 2003, 25(5): 90?96.
[24] 柳溪,马康,刘智.融合探索性与脚本方法的第三方软件测试模型及其应用[J].信息化研究,2013,39(6):43?48.
[25] ABERDOUR M. Achieving quality in open source software [J]. IEEE Software, 2007, 24(1): 58?64.
[26] KASURINEN J, TAIPALE O, SMOLANDER K. Test case selection and prioritization: risk?based or design?based? [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: [s.n.], 2010: 234?242.
[27] MARTIN D, ROOKSBY J, ROUNCEFIELD M, et al. Good' organisational reasons for 'bad' software testing: an ethnographic study of testing in a small software company [C]// Proceedings of International Conference on Software Engineering. [S.l.]: ICSE), 2007: 602?611.
[28] ITKONEN J, RAUTIAINEN K. Exploratory testing: a multiple case study [C]// Proceedings of International Symposium on Empirical Software Engineering. [S.l.]: [s.n.], 2005: 1?8.
[29] ITKONEN J, MANTYLA M V, LASSENIUS C. How do testers do it? An exploratory study on manual testing practices [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: ESEM, 2009: 494?497.
[30] HELLMANN T D, MAURER F. Rule?based exploratory testing of graphical user interfaces [C]// Proceedings of Agile Conference. [S.l.]: AGILE, 2011: 107?116.
[31] 中华人民共和国国家质量监督检验检疫总局.GB/T 25000.51?2010软件工程 软件产品质量要求与评价(SQuaRE)SQuaRE指南[S].北京:中国标准出版社,2010.
[32] 中华人民共和国国家质量监督检验检疫总局.GB/T 8567?2006计算机软件文档编制规范[S].北京:中国标准出版社, 2006.
[33] 中华人民共和国国家质量监督检验检疫总局.GB/T 9386?2008 计算机软件测试文档编制规范[S].北京:中国标准出版社,2006.
[34] 史亮,高翔.探索式测试实践之路[M].北京:电子工业出版社,2012.
[35] KANER C, BACH J. Exploratory testing in pairs [R/OL]. [2001?08?22]. http:///a/pairs.pdf.
[36] CLARKE E M, GRUMBERG O, PELED D A. Model checking [M]. [S.l.]: The MIT Press, 2000.
[37] DUSTIN E, RASHKA J, PAUL J. Automated software testing [M]. [S.l.]: Addison?Wesley Professional, 1999.
[38] FEWSTER M, GRAHAM D. Software test automation [M]. [S.l.]: Addison?Wesley Professional, 1999.
[39] KANER C. Architectures of test automation [R/OL]. [2000?09?28]. http:///pdfs/testarch.pdf.
[40] BUWALDA H. Soap opera testing [J/OL]. [2011?04?11]. http:///link?u...
关键词:软件测试;测试方法;探索性测试
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02
1 引言
面对当今信息化水平的不断提高,软件测试技术也取得了不断的发展,探索性测试逐渐登上舞台,受到了软件测试人员的重视。探索性测试是一种新的测试思维方式,应该是测试人员必须掌握的。探索性测试是软件测试领域比较前沿的理论,特别适用于那些事先没有能够进行详细测试设计或者要求在短时间内发现被测软件一些重要缺陷的情况,使用探索性测试能显著提高软件测试的效率[1,5]。
探索性软件测试具有强大的缺陷发现能力,而这一能力是其得到众多青睐的重要原因,如微软就建立了专门的探索性测试团队,探索性测试也是微软官方的验证测试方法之一,部分第三方软件如果需要取得微软的兼容证书,必须通过微软的探索性测试[2]。
2 探索性测试的概念和基本思想
2.1 探索性测试的概念
探索性测试的定义很多,探索性测试的创始人James Bach 对探索性测试的定义为[2]:了解被测软件,设计测试用例,执行测试同时进行的软件测试技术。简单点说就是事先不进行计划和设计的一种特殊类型的测试,由有经验的测试人员根据实际情况,凭借自身的测试经验和对系统的认识来进行测试,而正是因为这一特点,往往能帮助测试人员在测试设计之外发现更多的软件缺陷。
2.2 探索性测试的基本思想
探索性测试强调系统软件学习、测试设计和测试执行的同时进行,这样对传统测试方法中要求测试文档(计划、设计)必须非常详细和明确、测试用例的设计和执行必须依赖开发文档、测试执行的过程必须依照测试用例的设计等都是一个很好的补充。
探索性测试强调的同时性是相对于传统软件测试过程中的“先设计,后执行”来说的,测试人员通过测试来不断学习被测系统,同时把学习到的关于被测软件的更多信息通过综合的整理和分析创造出更多的关于测试的注意。传统测试方式强调设计完善的测试用例,测试人员严格按照测试用例执行测试,而探索性测试是一种新的测试思维,强调的是测试过程中要有更多的发散思维,这也是与传统测试方式的最大区别。探索性测试并不是孤立的测试方法,我们在实际的测试过程中都会不自觉的使用它,比如当开发人员修改完一个缺陷后,我们在进行确认时,一些有经验的测试人员不仅仅是对该缺陷进行确认,他们会进行一些额外的测试来探索修复该缺陷是否对某些功能产生影响,这就是典型的探索性测试,我们只有不断的丰富自身测试经验、提高敏锐性,才能够在合适的测试项目、适当的时机引入探索性测试,达到测试目的。
3 探索性测试的特征及优缺点
探索性测试事先没有明确的测试计划,也没有详细的测试说明,要根据测试的实际情况来及时的设计出测试用例,它是测试人员依据测试任务进行主动的、探索式的测试。这意味着探索性测试的开展要比传统测试具备更多的测试经验和主观能动性,而且要具备更强的测试用例设计能力,此外,还需要很强的观察能力,思维能力。
3.1 探索性测试的特征[4]:
探索性测试强调软件系统学习、测试设计和测试执行同时进行;测试人员在测试的过程中不断学习被测试系统,然后再根据学习的内容来指导测试,是一循环过程;探索性测试的重点是创新和主观能动性。
3.2 探索性测试的优点:
比传统的测试方法灵活;测试文档可以不充分;能够发现测试设计以外的缺陷;增强了发现难以发现的缺陷的能力;可以激发测试人员的创造性和主观能动性。
3.3 探索性测试的缺点:
事先对测试工作没有一个整体规划,不利于测试的标准化;测试可能存在重复性,不能确定哪些测试已经被执行过;难于驾驭,测试结果难以评估,难以在软件测试工作中大量普及应用。
4 探索性测试方法与传统测试方法的比较
4.1 传统测试方法
以V模型和W模型为代表的传统理论的软件测试,要求在软件设计开发的同时就引入软件测试。例如在V模型中,如图1所示[3],在软件开发的系统需求分析、软件需求分析、软件概要设计、软件详细设计阶段分别需要引入系统测试、配置项测试、部件测试、单元测试。这些测试都要求事先设计好测试用例,写好测试脚本。在实际的测试过程中往往会出现这样的情况,测试工程师花在测试设计和报告填写上的时间远远超过了真正的执行测试时间。
4.2 探索性测试方法
如图2模型所示,使用探索性方法进行软件测试,首先在了解软件需求和开发文档,了解测试任务、软件运行环境、测试环境制定测试计划的同时,根据已经掌握的情况,对被测试软件进行初次的测试用例设计,利用设计出来的测试用例,进行探索性软件测试执行。将测试的执行结果,一方面反馈到设计好的测试用例中去,对已有的测试用例进行修改;另一方面又可以进一步利用对测试过程及测试结果中的信息,加强对软件系统的学习了解,设计出新的测试用例,执行测试。如此反复循环,直至完成原先设定的测试目标。
图2 探索性软件测试模型图
5 探索性测试的应用
5.1 实验数据分析
首先通过两组实验数据来分析探索性测试在实际工作的应用,被测软件是一个大约3万行的零售行业软件,预埋缺陷24个。
通过这两组实验数据,我们可以观察到以下三点:
(1)在传统测试方法中,结合使用探索性测试方法,缺陷的检出率明显高于单一的使用传统测试方法;
(2)探索性测试能发现更多测试设计以外的缺陷;
(3)进行探索性测试时,测试人员的经验、态度、思维方法等方面都会影响测试的效果。
该实验目的不是去证明探索性测试与传统测试方法哪种更优秀,因为并不是所有的测试活动都适合使用探索性测试,只是希望在进行传统测试方法时结合采用探索性测试。探索性测试一般适合在以下一些场景中使用,比如:需要快速了解产品质量;需要在短时间内发现软件的重大缺陷;测试设计以外缺陷的检查;已进行过传统测试,需要对某一特定类型缺陷再进行测试;功能较为单一的小规模软件;大型项目的回归测试等,探索性测试并不是孤立的测试方法,我们在实际的测试过程中都会不自觉的使用它,比如当开发人员修改完一个缺陷后,我们在进行确认时,一些有经验的测试人员不仅仅是对该缺陷进行确认,他们会进行一些额外的测试来探索修复该缺陷是否对某些功能产生影响,这就是典型的探索性测试。
5.2 探索性测试的管理及步骤
那么,我们在进行探索性测试时如何进行过程控制和管理的,通常情况下根据测试主管在测试项目中的作用可以分为以下两种方式进行[6]:一种是由测试主管分配需要测试的模块,他不参与具体的测试任务;测试人员来完成这些模块的测试,并且将测试中的问题进行报告;测试主管根据测试情况定期召开项目组会议。另一种是测试主管和测试人员一样参与某些测试任务;测试主管在测试过程中实时的根据测试质量和测试进度调整测试策略;测试主管持续的了解整个测试过程,与测试人员一起探讨测试策略。
这两种测试管理方式是目前国内外都普遍适用的方式,在任何一种管理模式下进行探索性测试,测试主管和测试人员都必须经过以下几个步骤:
(1)识别软件系统的目的,了解该软件系统测试的重点及要达到的目标;
(2)识别软件系统提供的功能,梳理出整个软件系统的需要进行测试的所有模块;
(3)识别软件系统潜在的不稳定区域,与开发人员及测试人员讨论,筛选出缺陷可能出现较多的模块;
(4)在探索软件系统的过程中记录关于软件的信息和问题,记录好测试步骤以便进行下一轮回归测试。
6 结束语
本文探讨了探索性测试方法的基本原理并阐述了探索性测试的优缺点及能解决的问题,但并不是说用它来取代现有传统测试方法,它只是对传统测试方法的一种很好的补充,它适合在某一特定环境和要求下进行。探索性测试要求充分发挥测试人员的个人能力,要求测试人员有很好的主观能动性,需要把自身的经验技能及对系统的学习认知作为参考,灵活地经行测试设计和执行,只有在适合的项目、在合理的时机引入探索性测试才能充分发挥它的优势,才能够显著提高软件的测试效率,达到事半功倍的效果。
参考文献:
[1]郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1992:34~37.
[2]James A.Whittaker.探索式软件测试[M].方敏,张胜,等译.北京:清华大学出版社,2010,4:9~15.
[3]练荣政.一个基于探索性软件测试理论的测试用例生成系统的研究与实现[D].北京交通大学硕士学位论文,2008.06.
[4]谢经纬,吴昊.探索性方法在面向故障软件测试中的应用[J].微计算机信息,2010,26(921):145~146.
[5]段念.探索性软件概述[EB/OL].http://,2006,07.
[6]高翔.探索性测试进度控制的方法 51测试天地,2010,04.