• 回答数

    6

  • 浏览数

    331

虎虎生威2015
首页 > 毕业论文 > 软件工程毕业论文测试方法

6个回答 默认排序
  • 默认排序
  • 按时间排序

我不是小痴

已采纳

海奇杀毒软件

137 评论

红枫叶马大姐

软件工程毕业设计论文

大学生涯就要结束,大家是不是都在忙着自己的毕业论文呢?软件工程专业的同学们,我为大家整理了该专业相关的论文,供大家参考!

一、软件工程专业毕业设计存在的主要问题

(一)毕业设计题目设置与选题方面

题目设置不合理,类别与层次不清晰,选题匹配效果差[2]。学生的毕业设计课题一般都按照指导老师的研究方向和实际工程项目提供,但每年真正来源于工程实践题目比例较少。部分题目理论性强,学生根据所学知识不能很好理解;部分题目开发工具复杂,占用了毕业设计的大部分时间。在选题时可能导致学生想选的题目选不上,能力差的学生所选题目难度大,影响学生的积极性,导致选题效果差,造成毕业设计很难完成。

(二)毕业设计过程监控方面

毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。

(三)毕业设计论文答辩方面

答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。

二、软件工程专业毕业设计的教学改革

针对上述各项实际问题,主要进行的相关工作具体如下:

(一)合理设置毕业设计题目,动态选题

依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。

(二)毕业设计过程实行三级监控管理机制

学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的`毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。

(三)毕业设计过程量化考核

以往软件工程专业毕业设计成绩通常由三部分组成:一是学生的平时表现由指导老师把握;二是学生的毕业论文成绩。由专业其他指导老师进行评阅;三是现场答辩成绩。由所在组的指导教师按照相关评分标准打分并取平均分。这样基本能够保证毕业设计成绩的公正,但是由于只有毕业答辩环节具有约束力即答辩未通过则总成绩不及格,其他环节不具约束力,因此造成毕业设计前期、中期工作流于形式,前期、中期阶段提交的文档趋于应付、质量不高,最终导致毕业论文质量较低[6,7]。为此,软件工程专业经过几年的探索与实践,实施了毕业设计各阶段的软件工程生命周期量化考核法即各个阶段量化考核,且考核成绩不合格者不能进行下阶段毕业设计工作,必须加以整改,整改通过后才能进入下一阶段毕业设计工作。经过几年的实践证明该考核方法切实可行,能够保证毕业设计各个环节的质量,最终提高毕业设计总体质量。

(四)在毕业设计过程中进一步提高学生工程能力与创新能力

辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。

三、结束语

软件工程专业毕业设计是一个极具综合性、实践性的重要环节,是对学生大学四年学习后面向社会与企业前的有且仅有的一次大检验,它不仅检验了学生所学知识、能力与综合素质,还检验了软件工程专业的培养目标、培养模式、课程体系、实践体系、创新体系等相关环节[10]。经过几年的探索与实践证明,软件工程专业所做的系列教学改革工作中的毕业设计教学改革工作有利于进一步增强学生的工程实践能力和创新能力,有利于提高软件工程专业毕业设计质量,有利于提高软件工程专业学生就业率与就业质量。虽然软件工程专业毕业设计教学改革工作取得了一定的成绩,社会认可度逐年稳步提高,但如何动态调整教学计划以跟进市场需求变化;如何深入开展大学生创新创业教育活动以进一步增强更多软件工程专业学生的实践能力及创新能力;如何进一步加强专业教师工程实践能力、工程设计能力与工程创新能力以提高毕业设计指导效力;如何提高毕业设计过程管理效率等问题仍然是软件工程专业所面临的严肃课题[11]。因此,软件工程专业的毕业设计教学改革工作也一定会紧跟时代变化,与时俱进。

291 评论

喝酒当喝汤

随着软件测试技术的发展,测试方法更加多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法: β测试_Beta测试 β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。 β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。 当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。 α测试_Alpha测试 α测试,英文是Alpha testing。又称Alpha测试. Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。 可移植性测试 可移植性测试,英文是Portability testing。又称兼容性测试。 可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。 用户界面测试-UI测试 用户界面测试,英文是User interface testing。又称UI测试。 用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。 用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。 用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息 (Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。 冒烟测试 冒烟测试,英文是Smoke testing。 冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。 随机测试 随机测试,英文是Ad hoc testing。 随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试 (Regressive testing)一起进行。 本地化测试 本地化测试,英文是Localization testing。 本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。 本地化能力测试 本地化能力测试,英文是Localizability testing。 本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。 本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了固定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。 国际化测试 国际化测试,英文是International testing。又称国际化支持测试。 国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。 国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。 安装测试 安装测试,英文是Installing testing。 安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。 白盒测试-结构测试-逻辑驱动测试 白盒测试,英文是White Box Testing。又称结构测试或者逻辑驱动测试。 白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 白盒测试常用工具有:Jtest、VcSmith、Jcontract、C++ Test、CodeWizard、logiscope。 黑盒测试-功能测试-数据驱动测试 黑盒测试,英文是Black Box Testing。又称功能测试或者数据驱动测试。 黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。 软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。 黑盒测试常用工具有:AutoRunner、winrunner、loadrunner。 自动化测试 自动化测试,英文是Automated Testing。 使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务提供商是泽众软件。自动化测试工具有AutoRunner和TAR等。 回归测试 回归测试,英文是Regression testing。 回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。 根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。 验收测试 验收测试,英文是Acceptance testing。 验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。 验收测试一般有三种策略:正式验收、非正式验收活Alpha 测试、Beta 测试。 动态测试 动态测试,英文是Moment Testing。 动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。 根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤: 1、单元测试 2、集成测试 3、系统测试 4、验收测试 5、回归测试 探索测试 探索测试,英文是Exploratory Testing。 探索测试是指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。探索测试人员只靠智能、洞察力和经验来对bug的位置进行判断,所以探索测试又被称为自由形式测试。 单元测试 单元测试,英文是Unit Testing。 单元测试是最微小规模的测试;以测试某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易做好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。 集成测试 集成测试,英文是Integration Testing。 集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。 集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。 集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别 系统测试 系统测试,英文是System Testing。 系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。 系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。 端到端测试 端到端测试,英文是End to End Testing。 端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。 健全测试 健全测试,英文是Sanity testing。 健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。 衰竭测试 衰竭测试,英文是Failure Testing。 衰竭测试是指软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。 接受测试 接受测试,英文是Accept Testing。 接受测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。 负载测试 负载测试,英文是Load testing。 负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。 负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。 强迫测试 强迫测试,英文是Force Testing。 强迫测试是在交替进行负荷和性能测试时常用的术语。也用于描述象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。 压力测试 压力测试,英文是Stress Testing。和负载测试差不多。 压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。 性能测试 性能测试,英文是Performance Testing。 性能测试是在交替进行负荷和强迫测试时常用的术语。理想的“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。性能测试一般包括负载测试和压力测试。 通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。 可用性测试 可用性测试,英文是Practical Usability Testing。 可用性测试是对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录象和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。 卸载测试 卸载测试,英文是Uninstall Testing。 卸载测试是对软件的全部、部分或升级卸载处理过程的测试。主要是测试软件能否卸载,卸载是否干净,对系统有无更改,在系统中的残留与后来的生成文件如何处理等。还有原来更改的系统值是否修改回去 恢复测试 恢复测试,英文是Recovery testing。 恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。恢复测试指通过人为的让软件(或者硬件)出现故障来检测系统是否能正确的恢复,通常关注恢复所需的时间以及恢复的程度。 恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。 安全测试 安全测试,英文是Security Testing。 安全测试是测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如: ①想方设法截取或破译口令; ②专门定做软件破坏系统的保护机制; ③故意导致系统失败,企图趁恢复之机非法进入; ④试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。 兼容性测试 兼容测试,英文是Compatibility Testing。 兼容测试是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。向上兼容向下兼容,软件兼容硬件兼容。软件的兼容性有很多需要考虑的地方。 比较测试 比较测试,英文是Compare Testing。 比较测试是指与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。来取长补短,以增强产品的竞争力。 可接受性测试 可接受性测试,英文是Acceptability Testing。 可接受性测试是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳定。必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。如果一个新版本没通过可测试性的验证,就应该阻拦测试部门花时间在该测试版本上测试。同时还要找到造成该版本不稳定的主要缺陷并督促尽快加以修正 边界条件测试 边界条件测试,英文是Boudary Testing。又称边界值测试。 一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。 边界条件测试是环绕边界值的测试。通常意味着测试软件各功能是否能正确处理最大值,最小值或者所设计软件能够处理的最长的字符串等等。 强力测试 强力测试,英文是Mightiness Testing。 强力测试通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如,在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。 装配/安装/配置测试 装配/安装/配置测试是验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。 静态测试 静态测试,英文是Static Testing。 静态测试指测试不运行的部分,例如测试产品说明书,对此进行检查和审阅.。静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。 静态测试常用工具有:Logiscope、PRQA; 隐藏数据测试 隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。 假设一个应用程序要求用户两条信息-----用户名和密码来创建帐户。这个用户输入这两条数据后保存。最后,一个确认窗口将通过数据库中找到这条数据来显示用户名和密码给用户。为了验证所有的数据保存是否正确,一个QA测试人员会在这个确认窗口简单的查看下用户名和密码。如果他们成功了?假设数据库记录了第三条信息----创建日期,它可能不会出现在确认窗口,而只在存档中才出现。如果创建日期保留的不正确,而QA测试人员只验证屏幕上的数据,那么这个问题就不可能被发现。创建日期可能就是一个bug,由于一个用户帐户保存了一个错误的日期到数据库中,这个问题也不可能会被引起注意,因为它被用户界面所隐藏。这只是一个简单的例子,但是它却演化出了一点:隐藏数据测试的重要性。 等价划分测试 等价划分测试的英文是equivalence partition testing。 等价划分测试是根据等价类设计测试用例的一种技术。是黑盒测试的典型方法之一,通过把被测试程序所有可能的输入数据域划分成若干部分。从每一部分中选取少数有代表性的数据作为测试用例,可有效减少测试次数,极大提高软件测试效率,缩短软件开发周期.等价类划分测试的目的就是为了在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。有效等价类盒无效等价类。有效等价类中的数据代表的是一组符合需求文档的正确的有意义数据。无效等价类则正相反。 判定表 判定表的英文是decision table,是指一个表格,用于显示条件和条件导致动作的集合。 定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。 判定表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题 深度测试 深度测试的英文Depth test ,是指执行一个产品的一个特性的所有细节,但不测试所有特性。 当比较函数返回真的时候才显示出效果来。必须启用“#深度测试”,才能执行测试。不使用的时候需要关闭。 基于设计的测试 基于设计的测试的英文是design-based testing,是根据软件的构架或详细设计引出测试用例的一种方法。 一种基于设计模型的测试方法(Model Based TestIng System,MATIS).该方法利用用户界面自动生成方法,把设计模型中的类属性定义和实现中的控件属性组织在一起,构建描述界面的逻辑对照表,辅助测试脚本引擎执行自动测试脚本.借助设计模型中扩展的类定义,MATIS方法可以自动生成测试用例和测试数据。

144 评论

zhang太太

数据挖掘在软件工程技术中的应用毕业论文

【 摘要 】计算机技术在发展,软件也发展的越来越复杂,而系统开发工作也显得更加重要。信息技术的广泛应用会产生大量数据,通过对数据进行挖掘,分析其存在的规律,对实现数据资源的有效利用意义重大。本文就数据挖掘技术在软件工程中的应用作简要阐述。

【 关键词 】数据挖掘技术;软件工程中;应用软件技术

随着信息技术发展而快速发展,但是其可控性并不是特别强。软件在应用过程中会产生大量数据,数据作为一种宝贵的资源,有效的利用可以带来价值增值。作为软件开发行业,数据挖掘技术应用则实现了数据资源的有效利用,通过对其中规律进行研究,为软件工程提供相应指导,并且对于系统故障能够有效处理,成本评估的有效性也能够提升。

1数据挖掘技术应用存在的问题

信息数据自身存在的复杂性

软件工程所包含的数据可以分为两个类别,结构化与非结构化。在非结构化数据中软件代码发挥着重要作用。而对结构化数据产生影响的则是软件版本信息。结构与非结构化数据二者之间联系非常密切。实现数据有效利用就需要通过一定技术找出其中的规律。数据挖掘技术则刚好满足需求。利用该技术对结构与非结构化数据进行整合,提升其使用的有效性。

在评价标准方面缺乏一致性

数据挖掘技术在生活中的应用比较广泛,通过该技术应用能够更好的对实际情况进行评价,从而对结果进行优化。但是由于没有统一标准,导致了软件信息复杂。而在表述方式方面自身又存有差异性。信息获取者无法有效的对信息进行应用及对比。而信息缺乏统一标准的原因就在于评价方式不一致。

2数据挖掘技术在软件工程中的应用

数据挖掘执行记录

执行记录挖掘主要是对主程序的路径进行分析,从而发现程序代码存有的相关关系。其实质是通过对相关执行路径进行分析,并进行逆向建模,最终达到目的。作用在于验证,维护,了解程序。记录挖掘的过程通常是对被分析的系统进行初步插装,之后是记录过程,该过程在执行上一步程序后,对应用编程接口,系统,模块的状态变量记录,最后是对所得到的信息进行约简,过滤,聚类。最终得到的模型能够表达系统的特征。

漏洞检测

系统或是软件自身都会存在漏洞,漏洞自身具一定的隐蔽性,由于人的思维存在某些盲区,无法发现漏洞的存在,就需要借助于某些软件。检测漏洞的目的就在于找出软件中存在的漏洞及错误,并对其进行修复,从而保证软件质量与安全。将数据挖掘技术应用于软件检测,首先要确定测试项目,结合到用户需要,对测试内容进行规划,从而确定测试方法,并制定出具体方案。测试工作环节主要是对数据进行清理与转换,其基础在于漏洞数据收集,通过对收集与采集的信息进行清理,将与软件数据有关联同时存在缺陷的数据筛选出来,而将剩余无数据清理,对丢失项目采取相应措施补充,将其属性转换为数值表示。之后是选择适当的'模型进行训练与验证,该环节要结合到项目实际的需要选择挖掘方式,通过对不同数据结果进行分析与比较找到最适合的方式。之后则是重复应用上述方法,对软件存在的漏洞进行定位与检测。并将与之对应的数据收集于软件库,在对漏洞进行描述的基础上分类,最后将通过挖掘得到的知识应用到测试的项目中.

开源软件

对于开源软件的管理由于其自身的开放,动态与全局性,需要与传统管理软件进行区别对待,一般情况下,成熟的开源软件对于软件应用记录较为完整,参与的内容包括了错误报告,开发者活动。参与开发的工作人员会处在动态变化之中,存在动态变化的原因就在于软件的开放性。同时对于软件中动态性特征的挖掘,可达到对开源软件进行优质管理的目标。

版本控制信息

为了保证参与项目人员所共同编辑内容的统一性,就需要对系统应用进行控制。软件开发工程应用中,开发工作管理与保护都会通过版本控制系统来实施。并且其应用方式主要是对变更数据挖掘,找出不同模块及系统存在关系,并对程序中可能会存在的漏洞进行检测。此类技术的应用,使得系统后期维护成本被有效的降低,而对后期变更产生的漏洞也有一定的规避作用。

3数据挖掘在软件工程中的应用

关联法

该方法作用在于寻找数据中存在的相关联系与有趣关联。而体现的关联规则有两个明显的特征。①支持度;②信度。前者表示在某个事物集中,两个子集出现的概率是相同的。而后者则表明了某事物在事物集中出现的概率,而另一事物也会出现。

分类方法

该方法主要是应用于分类标号与离散值的操作。该方法的操作步骤是,首先要建立相应的模型,对数据进行描述,并利用模型对其进行分类。在分类方法选择方面,常用的有判定树法,贝叶斯法,支持项量机法等。判定树法应用的基础是贪心算法。

聚类方法

该方法常用的有划分方法,基于密度,模型,网格的方法与层次方法。聚类分析输入的是一组有序对,有序对中的数据分别表示了样本,相似度。其基本的应用理论是依据不同的对象数据予以应用。

4数据挖掘在软件工程中的应用

对克隆代码的数据挖掘

在软件工程中最为原始的是对克隆代码的检查测试。就其方式而言有文本对比为基础,标识符对比为基础。前者是利用系统中程序代码包含的语句进行判断。该方法在后期改进过程中主要是对字符串匹配效率进行提升。实际应用过程中是通过相关函数匹配对效率进行优化。

软件数据检索挖掘

该方法同样是软件工程中原始的挖掘需求之一。该方法在应用时主要有以下三个步骤。

①数据录入。其实质是对需要检索的信息录入,并结合到使用者需要在数据中查找使用者需要的数据。

②信息查找过程。确认了用户需要查找的信息后,系统将依据信息内容在数据库中进行查找,并分类罗列。

③信息数据导出与查看。用户可以依据自身需要将数据导出或者是在线查看。数据在导出时会形成相应的记录,客户再次进行查找时就会更加的方便与快捷。而将数据导出则需要利用到相关的软件。

应用于设计的三个阶段

软件工程有许多关于软件的资料,资料通常是存放于代码库中。数据运用可以提升工作效率。软件工程每一次循环都会产生大量的数据。基于软件工程生命周期可以将其分为分析设计,迭代的开发,维护应用三个阶段。

面向项目管理数据集的挖掘

软件开发工作到目前已经是将多学科集中于一体。如经济学,组织行为学,管理学等。对于软件开发者而言,关注的重点除过技术方面革新外,同时也需要科学规范的管理。除过对于版本控制信息挖掘外,还有人员组织关系挖掘。对于大规模的软件开发工作而言,对人力资源的有效分配与协调也是软件工作领域需要面对的问题。例如在大型系统开发过程中,往往会有许多人参与其中,人员之间需要进行沟通交流。交流方式包括了面对面沟通,文档传递,电子信息等。通过对人员之间的关系进行挖掘,有利于管理工作开展。员工群体存在的网络是社会网络。通过人员合理组织与分配,将会影响到项目进度,成本,成功的可能性。而对该方面实施研究通常采用的是模拟建模。

5结束语

软件工程技术在生活中许多领域都有广泛的应用,数据挖掘作为其中的一项技术,其重要性及作用随着技术发展而表现的越加明显。为了保证挖掘技术的可靠性与高效,与其它工程技术有一定融合性。数据挖掘在实际应用工作中体现出了巨大的经济效益,因此应该大力推进其应用的范围,并拓展其应用的深度与层次。

参考文献

[1]李红兰.试论数据挖掘技术在软件工程中的应用综述[J].电脑知识与技术,2016(34).

[2]雷蕾.关于数据挖掘技术在软件工程中的应用综述究[J].电子测试,2014(02).

[3]孙云鹏.数据挖掘技术在软件工程中的应用综述[J].中国新通信,2015(15).

94 评论

土耳其电信

百度或者GOOGLE上搜索------无忧无虑毕业设计,希望您可以找到 第六章 系统运行评估 超市系统开发完毕到投入使用之前,需要进行一系列系统集成和确认测试。软件测试的根本目的应该是找出软件中存在的漏洞和问题,而开发人员往往不容易找出自己的程序中存在的漏洞和问题,所以从理论上讲,系统的测试工作应该由专业测试人员进行。 测试指导思想及方案 指导思想 针对本系统测试人员是开发者本人这一特点,本系统测试工作的指导思想以白盒测试方法为主,局部辅以黑盒测试方法。 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。相对的,黑盒测试方法是在已知系统结构的前提下,通过来测试系统每个功能是否都能正常运行并达到预期结果。在测试时将程序看作一个不能打开的黑盒子,在完全部考虑程序内部结构盒内部特性的情况下,在接口进行测试。 测试方案 从软件的生存周期看,测试往往指对程序的测试,这样做的优点是被测对象明确,测试的可操作性相对较强。但是,由于测试的依据是规格说明书、设计文档和使用说明书,如果设计有错误,测试的质量就难以保证。即使测试后发现是设计的错误,这时,修改的代价是相当昂贵的。因此,较理想的做法应该是对软件的开发过程,按软件工程各阶段形成的结果,分别进行严格的审查。 虽然测试是在实现且经验证后进行的,实际上,测试的准备工作在分析和设计阶段就开始了。 1. 测试的过程及组织 当设计工作完成以后,就应该着手测试的准备工作了,编写超市系统测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统实现后进行全面测试。 在对程序的正确性进行验证后,可以开始组织测试,测试一般可按下列方式组织: (1) 明确开发过程中各类文档 进一步理解超市系统在开发过程中生成的有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。 (2) 合理划分测试阶段 为了保证测试的质量,将测试过程进行划分,针对超市系统的特点,将测试过程划分为代码审查、单元测试、集成测试和验收测试四个阶段。 (3) 代码审查 一般的软件测试应该进行代码会审。代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。会审小组由组长,2~3名程序设计和测试人员及程序员组成。会审小组在充分阅读待审程序文本、控制流程图及有关要求、规范等文件基础上,召开代码会审会,程序员逐句讲解程序的逻辑,并展开热烈的讨论甚至争议,以揭示错误的关键所在。 针对本系统的开发特点,开发者本人再一次对所编写代码进行审查,并将其讲解给周围同学。实践证明,当再一次进行阅读和讲解时,确实可以发现许多自己原来没有发现的错误。 (4) 单元测试 单元测试集中在检查本系统设计的最小单位——模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。由于模块规模小、功能单一、逻辑简单,加之测试人员就是系统的开发人员,对于该模块的I/O条件和模块的逻辑结构都非常清楚,可以采用采用结构测试(白盒法)的用例,尽可能达到彻底测试,然后辅之以功能测试(黑盒法)的用例,使之对任何合理和不合理的输入都能鉴别和响应。高可靠性的模块是组成可靠系统的坚实基础。 (5) 集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如用户资料数据穿过接口时可能丢失;一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 (6) 验收测试 验收测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。 经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束,经验收后,软件可投入使用。 2. 测试方法的应用 因为本系统的测试人员是开发者本人,所以对于程序的代码等相当熟悉。在设计超市系统的单元测试时,测试人员将白盒测试方法和黑盒测试方法结合起来运用。先用白盒测试法分析模块的逻辑结构,提出一批测试用例,然后根据模块的功能用黑盒测试法进行补充。 集成测试及其后的测试阶段,本系统采用了黑盒测试方法。其策略包括: (1) 用边值分析法和(或)等价分类法提出基本的测试用例; (2) 用猜测法补充新的测试用例,重复前一步操作。 部分功能测试结果 在黑盒测试方法的指导思想下,通过大量用例对超市系统进行了测试。测试过程中发现了一部分设计上的漏洞及时进行了修改。由于篇幅有限,现特将本系统部分功能测试用例摘录如下: 用户界面窗体设计测试 窗体大小。大小要合适,控件布局合理; 缩放窗体。窗体上的控件应随窗体的大小变化而变化; 显示分辨率。必须在不同的分辨率的情况下测试程序的显示是否正常。 经过测试,发现系统用户界面窗体的大小在大部分台式机和笔记本电脑显示器上效果不一。后经分析发现,开发使用的笔记本电脑系宽屏设计,因此造成了一般尺寸的台式机显示器显示不正常的现象。及时修改页面大小可以修正此问题。其他功能未发现异常。 文本框的测试 输入重复的用户名,系统应该给出错误提示; 输入正常的字母或数字; 输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多25个字符,尝试输入 26个字符,检查程序能否正确处理; 输入默认值,空白,空格; 若只允许输入字母,尝试输入数字;反之;尝试输入字母; 利用复制,粘贴等操作强制输入程序不允许的输入数据; 输入特殊字符集,例如,NUL及\n等; 输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示; 输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入电子邮箱格式为,实际输入5156bs,程序应该给出错误提示; 经过测试,系统在文本框输入功能中表现正常,在出现异常输入时能够及时报错并提醒用户重新输入。 内容转载自: 求采纳

187 评论

天使宝贝的

去领测国际问问吧 他们挺专业的

296 评论

相关问答

  • 软件工程毕业论文方式

    先选好自己要写的方向吧,然后多参看一些别人的论文中找找灵感,比如软件工程与应用里面就有一些可以借鉴

    失踪的第九个梦 4人参与回答 2023-12-05
  • 软件工程毕业论文测试方案

    随着软件测试技术的发展,测试方法更加多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法: β测试_Beta测试 β测试,

    叮当木马 5人参与回答 2023-12-08
  • 软件测试毕业论文参考

    1、论文首先得讲你做了什么,开宗明义2、背景,这里就是你测试的产品,大体介绍一下,就是copy,注明出处3、这里需要根据产品的需求文档,逐一列出需要测试的各个功

    哈西哈西哈西 6人参与回答 2023-12-09
  • 物理试卷软件工程毕业论文

    软件工程毕业设计论文 大学生涯就要结束,大家是不是都在忙着自己的毕业论文呢?软件工程专业的同学们,我为大家整理了该专业相关的论文,供大家参考! 一、软件工程专业

    魔法袋的礼物 4人参与回答 2023-12-12
  • 软件工程毕业论文测试方法

    海奇杀毒软件

    虎虎生威2015 6人参与回答 2023-12-11