工程硕士学位论文选题报告
及论文工作计划
课 题名 称 基于Web的软件测试自动化的研究 姓 名 褚 艳 丽 专 业领 域 软 件 工 程 所在院、系 软 件 学 院 校 内导 师 杜 庆 峰 校 外导 师 王 文 斌 选 题时 间 2004 年 2 月 6 日
同济大学研究生院 200 4 年 3 月 6 日
一、立论依据 课题来源、选题依据和背景情况、课题研究目的、工程应用价值 随着软、硬件技术的发展,计算机的应用领域越来越广,而其中软件的功能也越来越强大,软件也越来越复杂。这就使保证软件的质量,保证软件的高度可靠性,面临巨大的挑战.特别是诸如军事、航空航天、通讯、交通医疗等行业,软件的微小瑕疵就可能造成对生命安全、天文数字的巨额财产、甚至对国家安全严重威胁. 因此对软件产品质量的度量、评估和保证,是软件开发中非常重要的问题。基于这些原因,国际上的标准化和认证组织已经制定了一些软件标准。对于软件的开发过程即可通过这些标准进行约束和度量。 随着Internet和Intranet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现.Web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。 在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。 在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试.然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难.因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术. 而自动化测试就是希望能通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。自动化测试的目的在于发现老缺陷.而手工测试的目的在于发现新缺陷。自动化测试涉及到测试流程、测试体系、自动化编译、持续集成、自动发布测试系统以及自动化测试等方面的整合.也就是说让测试能够自动花,不仅是技术、工具的问题,也是一个公司和组织的文化问题.首先公司要在资金、管理上支持,其次要有专门的测试团队去建立适合自动化测试的测试流程、测试体系;其次就是要把源代码从受控库中取出、编译、集成、发布可运行系统、进行自动化的单元测试和自动化的功能测试的过程。 自动化测试可以减少或消除一些手工测试中的重复和烦琐,节约测试所必需的时间和提高测试的一致性和可重复性。自动化测试可以提高产品质量并尽可能在软件生命周期的早期发现缺陷。 并非任何测试自动化都可以起到预期效果,只有好的自动化测试体系才能扬长避短,达到建立自动化测试体系的初衷,在质量保障方面有所作为。否则测试自动化可能会由于其建立和维护等方面的负担造成延误工期、成本浪费,甚至最终被完全放弃。
1
二、文献综述 国内外研究现状、发展动态 Web 网站的流行在世界范围内引发了软件质量保证的挑战,一个全球性的网站可以有多个并发用户同时访问,所以网站的响应速度、网站的安全对于网站的测试人员来说是个很重要的问题,测试和质量的控制也就变得更加困难. 基于Web的测试跟其它软件的测试有相通之处,需要测试功能的实现、配置、兼容性、性能测试。但是因为很多和应用程序交互的分布式的系统组件使得Web应用的测试更加复杂一些,在Web环境下,很难发现错误是在哪里产生的,因为错误比较难再现。此时自动化的测试给Web的测试提供了机会和挑战。 引入自动化测试的好处 1、 对新版本执行回归测试--测试每个特征 对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而可以让测试达到测试每个特征的目的。 2、 更多更频繁的测试--沉闷、耗时 一个系统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测试效率低下. 3、替代手工测试的困难--有些非功能性方面的测试:压力测试、并发测试、大数据量测试、崩溃性测试,用人来测试是不可能达到的 4、具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的, 所以每次执行的测试具有一致性, 人是很难做到的. 由于自动化测试的一致性,很容易发现被测软件的任何改变。 5、更好的利用资源--周未/晚上 理想的自动化测试能够按计划完全自动的运行, 在开发人员和测试人员不可能实行三班倒的情况下, 自动化测试可以胜任这个任务, 完全可以在周末和晚上执行测试。 这样充分的利用了公司的资源,也避免了开发和测试之间的等待。 6、解决测试与开发之间的矛盾 通常在开发的末期,进入集成测试阶段, 由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员有等待测试人员测试出错误的时间. 事实上在叠代周期很短的开发模式中,存在更多的矛盾, 但自动化测试可以解决其中的主要矛盾。 7、增加软件信任度 总之,自动化测试的好处和收益是很明显的,但也只有顺利事实了自动化测试才能从中获得它的益处。 三、研究内容
2
1.主要研究内容及拟关键技术 一、传统测试和Web应用程序测试的区别 1. 软件生命周期和项目结构的改变(开发和测试工作) 2. 改变Web系统的规则 3. 媒体和系统的复杂性 从而引起测试流程的改变 二、基于Web的测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。, 1. 功能测试 2. 性能测试 3. 可用性测试 4. 客户端兼容性测试 5. 安全性测试 三、基于Web的应用程序的错误为何难以再现,在Web环境下分析和重现错误,如何让基于Web的应用程序的测试报告具有更好的重现能力 四、自动化测试的引入、分析、和生命周期的分析 1.了解自动测试的益处 2.测试脚本的录制 3.测试用例的提取 4.测试用例的自动执行 五、基于Web的应用程序测试引入自动测试的流程
3
2.拟采取的研究方法、技术路线、实施方案及可行性分析 本文将对对下列内容进行研究 1. 软件测试的相关理论 2. 自动化的流程 3. 何时需要自动化测试 4. Web测试需要覆盖哪些方面 5. 对于一个web站点进行测试需要考虑哪些方面 6. 如何把对web站点的测试自动化 本文还将采用几种自动化的测试工具对web应用程序进行测试, 并分析比较 还将对引入自动化流程之后的工作量进行对比 自动测试对任何一个项目好处可以体现在:提高系统的可靠性,提高测试工作的质量,减轻测试工作量并缩短测试进度。但是,对于不同的实际项目,测试组要从项目本身的特点来考虑自动化测试带来的好处。 在web项目中,系统的可靠性更多地体现在对于整个web系统性能的要求上,包括web系统的访问时间(response time)、大量数据的提取时间(load data time)以及web系统在大量用户同时访问的承受能力(pressure degree).但是仅仅依靠单一的手工测试是难以实现这种测试要求的,自动测试可以在数据上,模拟程度上更好的完成性能测试的要求。 如果仅仅依靠单一的手工测试不但需要很多人力资源,而且避免不了重复性手工测试带来测试质量的下降。自动测试能更好的在每一次新版本建立后,立即投入到测试工作中去,而且自动测试严格按照测试用例的要求不会出现任何人为的错误。 3.预期目标 因为软件测试的工作量很大(40% 到60% 的总开发时间),而又有很大部分适于自动化,因此,测试的改进会对整个开发工作的质量、成本和周期带来非常显著的效果。 自动化测试的引入阶段要考虑:测试过程的分析和测试工具的选择。 在web测试中引入自动化的测试流程,将会大大降低测试的工作量。
四、研究基础
4
1.Web测试覆盖的内容 2.软件测试的生命周期 3.软件自动化测试的引入 4.自动化测试的流程
五、工作计划
5
序号 阶段及内容 工作量估计 (时数) 起讫日期 阶段成果形式 1 2 3 4 5 自动化测试的生命周期研究 引入自动化测试的分析 自动化测试工具的评估与选择 自动化测试在Web项目中的引入流程 引入了自动化测试的效益 150小时 150小时 150小时 150小时 150小时
六、评审意见
6
导师(或导师组)对本课题的评价 导师签名 年 月 日 评审小组的审查结论 组长 组员 年 月 日 工程领域领导小组意见 负责人签名 年 月 日
7
因篇幅问题不能全部显示,请点此查看更多更全内容