高级软件测试技术课程报告

研究生课程考试成绩单

任课教师签名:          

日期:   


软件测试新技术的进展和应用

——浅谈互联网应用测试

学号:138071  姓名:万玉建

1引言

当今时代已进入互联网时代,如今的互联网应用早已遍地开花,百家争鸣。很多中小企业开通简单的WEB页面,推销他们的产品和服务。大型企业则搭建功能齐备的电子商务交易平台来销售其产品。处在如此蓬勃发展的互联网时代,对于互联网应用测试的内容和方法的了解必须与时俱进。本文是作者通过阅读学习经典软件测试教材《软件测试的艺术(原书第3版)》[1]之后,浅谈对互联网应用测试的认识、理解和应用。

互联网应用系统本质上还是C/S模式的系统,客户端是Web浏览器,服务端是WEB或应用服务器。互联网应用测试的目标是在系统部署到互联网上之前暴露其中存在的错误。由于用户对互联网应用系统的期望比较高,一旦企业网站质量差强人意,一定会影响公司形象,甚至导致用户转向其他公司网站。传统的测试技术同样适用于互联网应用测试,但是测试互联网应用存在一些特殊之处。

2电子商务的基本结构

互联网最典型的应用就是电子商务,它在软件体系统结构中属于典型的新3-Tier/n-Tier结构[2], 电子商务系统的基本结构即为新3-Tier/n-Tier结构,如图1所示电子商务系统基本结构图。

表示层提供了GUI,互联网应用外观和用户体验,可以使用静态HTML、CGI、ASP、JSP、PHP等技术实现。其中WEB浏览器表现网站的内容,虽然浏览器厂商基本上都遵循颁布的标准,但是他们也会在浏览器中内置了专用的增强特性,导致浏览器运行不稳定,在测试时需要考虑不同厂商、不同版本浏览器的兼容性。

业务逻辑层又称“业务层”,运行应用服务器。提供对业务逻辑处理过程,如:事务处理、用户身份鉴定、数据确认和程序日志等。

数据层运行数据服务器,存储供业务逻辑层使用或者从最终用户收集来的数据,并基于数据库服务器对数据进行增加、删除、修改和查询等各种数据操作。

3互联网应用测试的挑战

在设计和测试基于互联网的应用系统时,由于有太多无法控制的因素,相互依赖的组件数量也非常之多,因此互联网应用测试将会面临许多挑战。

配置测试环境是互联网应用测试中最具挑战性的方面之一。为了严格地测试应用系统,必须复制软件运行的环境,即使用与软件运行环境中相同的WEB服务器、应用服务器和数据服务器。为了得到最精确的测试结果,还需要建立相同的网络环境,包括路由器、交换机和防火墙。配置这样的环境是一项高成本的工作。不仅设备要花钱,人工也要成本。大多数公司在做应用系统预算时都没有将这些开销考虑进去。即使考虑了这些因素,往往也会低估时间和资金的要求。此外,测试环境还需要一份维护计划以支持应用系统的升级。

浏览器的兼容性是互联网应用测试的另一个重挑战。现在市场上有多种不同的浏览器,如IE浏览器、搜狗高速浏览器、Firefox浏览器等等,每一种浏览器的操作都不相同,并且这些浏览器本身不同版本的兼容性也有所不同。这就使得互联网应用测试在浏览器兼容性问题上难度大大提高。

4互联网应用测试的策略

为基于互联网应用系统设计测试策略,不但需要对组成应用系统的每一个硬件和软件组件都有深入的了解,而且还需要一份系统规格说明文档来描述WEB站点的预期功能和性能。

需要测试的部件有内部开发的,也有从第三方购买的。对于内部开发的部件,可以使用单元、模块测试和代码审查等技术,验证其符合系统规格说明文档描述的功能要求后,方可将其集成到系统中。对于第三方购买的部件,首先要确认这些部件能够独立于系统正确执行,然后才可以将其集成到系统进行设计系统测试策略。

互联网应用测试可以采用结构化分解方法“分而治之”,系统按上述电子商务的基本三层结构划分,每一层都有各自的职责和特点,每一层的测试内容也有所不同。

4.1表示层的测试

表示层测试的主要目的是发现应用程序的GUI或前端中的错误。表示层测试的主要内容包括:内容测试、WEB站点结构和用户环境。

内容测试:包括整体审美、字体、色彩、拼写、内容准确性和默认值。不仅要检查人机界面元素,在字体类型、屏幕布局、色彩搭配、图形分辨率及其他会直接影响用户体验的特性中检查错误,而且还需要检查WEB页面中信息的准确性,包括语法和内容。

WEB站点结构:包括无效的链接或图形。尽量发现浏览过程中和结构上存在的错误,发现无效的链接、丢失的网页、错误的文件或者其他任何将用户引到错误区域的问题。有多种工具可以自动执行验证链接、检查丢失文件等过程。白盒测试技术也可以用于测试WEB站结构。

用户环境:包括WEB浏览器版本和操作系统配置。测试系统不同浏览器以及相同浏览器的不同版本中运行的情况。如果应用系统高度依赖客户端的脚本处理,如ActiveX控件、JavaScript、VBScript、Java Applets、Html5、Adobe Flash、PHP等,用户环境测试就变得更加复杂。由于每个浏览器都有不同的脚本引擎或者虚拟机在客户端计算机上运行脚本和代码,因此,应该特别关注浏览器兼容性问题。

4.2业务层的测试

业务层测试的重点是发现互联网应用系统的业务逻辑中的错误。业务层测试类似于测试单机程序,可以使用黑盒测试和白盒测试技术,黑盒测试是业务层测试的主要方法,需要模拟用户使用系统的所有步骤和整个过程。内部开发的部件可以使用白盒测试方法测试。

业务层测试的内容主要包括性能、数据有效性和事务。

性能测试:检查应用系统是否满足书面的性能规格说明。性能规格说明应该在需求阶段完成,通常包括响应时间、吞吐率等。长时间的页加载、缓慢的事务处理,会使用户怀疑系统的鲁棒性。强度测试是一种常用的性能测试方法,它通过大量的并发操作使用系统临近失效点,借以判断应用系统是否满足其性能目标。通过对应用系统进行强度测试,还可以检查网络设施的鲁棒性和可测量性。

数据验证:发现从客户那里采集到的数据中的错误。业务层的一个重要功能是确保从用户收集来的数据是有效的,如果系统使用了无效的信息,例如错误的信用卡或格式错误的地址,那么可能发生严重的错误。与测试单机应用系统时查找用户输入或参数的错误很相似,通过传统的测试方法测试发现数据采集时的错误。

事务测试:发现事务处理过程中的错误。互联网应用必须在全部的时间里正确处理事务,用户不能容忍事务出错。我们可以将事务测试视为对业务层进行的系统测试。除了测试内部业务过程之外,还必须测试外部服务,例如信用卡鉴别、银行事务以及地址确认等。

4.3数据层的测试

数据层测试主要是指对应用系统用于存储和获取信息的数据库管理系统的测试。数据层测试最大挑战之一,是复制应用系统的运行环境。必须使用相同的硬件平台和软件版本来进行有效的测试。在测试数据层时应当在特定的方面查找错误,包括:响应时间、数据完整性以及容错性和可恢复性。

响应时间测试:应量化结构化查询语言SQL语句的消耗时间。测量响应时间,确定每一项插入、删除、修改、查询等数据库操作需要多久完成。数据层响应时间测试与测试环境关系密切,测试环境必须与系统实际应用环境一致,否则得到的结果就会无效。响应时间测试通常使用黑盒测试方法进行。

数据完整性测试:验证数据存储适当且正确。数据完整性测试是指在数据库表中发现不准确数据的过程。尽量在数据的存储方式中发现问题,如数据类型和长度导致数据失去精度的问题。还要检查系统使用的检查/参考表的准确性,例如邮政编码、时区等信息。

容错性和可恢复性测试:最大化平均无故障时间MTBF,最小化平均恢复前时间MTTR。最大化MTBF取决于数据库的容错级别。我们可以通过故障处理机制或者内制容错机制,使得数据故障时对系统的影响最小。根据系统采用的结构来决定采用的测试类型。可恢复性测试的目标是设计出数据库无法恢复的场景,恢复计划开始于获得有效的备份,测试时如果无法恢复数据库,就需要修改备份策略。

5应用与体会

作者一直从事软件开发与项目研发管理工作,研发产品主要是电力行业实时监控软件,研发产品中也有WEB发布模块,但是它的规模和用户数都无法和互联网应用相比,即便这样基于企业局域网的小规模WEB网站系统的测试,也同样需要面对配置测试环境和浏览器兼容性问题的挑战。不过因为规模小,信息发布服务器、业务逻辑服务器和数据服务器三层结构在逻辑上分开,物理上可以放在一台电脑上运行,甚至可以把系统放在虚拟机里运行,这样就解决了配置测试环境投资大的问题。然而,浏览器的兼容性问题和系统规模和用户数量没有关系,这样问题同样需要面对。

在实际工作中,互联网应用测试的策略还是值得学习和运用的,特别是“分而治之”思想,实际应用中经常发现一个问题反应在网页上,但是问题的根源却在业务层,甚至在数据层,这就需要分层测试,从而尽快发现问题产生的原因。每一层的测试内容和测试方法,以前只是根据感觉随意地测一些,没有进行理论上的分析,通过本次学习,系统地认识和理解了每一层的测试内容和方法,使得测试工作有了方向,少了一些盲目。总之,通过本次理论的学习和研究,并在实际工作中指导和应用,对互联网应用测试的认识和理解更深一层,深感受益匪浅。

6结束语

互联网应用的测试面临诸多挑战,尤其是那些用户基数庞大的电子商务网站,对于数据准确性和安全性提出了更高的要求。对于像12306火车票销售网站、淘宝网这些拥用庞大用户量的大型网站,还需要做广泛的用户测试以确保符合产品规格说明书以及通过用户验收测试。毫无疑问,我们应该把软件做得既好看又好用,而这一点要求对于互联网应用尤为苛刻。纵观今日之环境,软件上的成功往往意味着商业上的丰收,而成功的软件需要我们积极彻底的测试。

参考文献

[1]:《软件测试的艺术(原书第3版)》(美)Glenford J.Myers Tom Badgett Corey Sandler 著 张晓明 黄琳译

[2]:《软件体系结构——面向思维的解析方法》沈军 编著

 

第二篇:软件测试技术课程标准

徽商职业学院软件测试技术课程标准

一、课程概述

(一)课程性质:软件测试在软件生命周期中占有重要的地位,是软件产品交付用户使用之前保障软件质量的重要手段,近来,软件工程界趋向于认同一个新观点,即软件生命周期中每一个阶段都应该包含测试,软件测试占软件开发总工作量的40%以上,由于测试的重要性,它慢慢的发展成一个行业,并在迅猛的发展。

(二)课程基本理念:

1. 以党的教育方针作为培养高级职业人才的基本思路

《软件测试技术基础》课程教学要全面贯彻党的教育方针,准确把握这门课程在人才培养方案中的作用和地位,教学内容、方法、手段的选择必须以培养新时期企事业专业人才的目标和要求为依据。课程教学目标和组织与我校职业教育的定位相匹配。

2.知识布局着眼为后续课程和继续教育服务

《软件测试技术基础》课程内容的设置,是根据软件技术专业教学计划和专业教学特点进行设置,内容包括软件测试的基本概念、软件测试的各种方法和流程,软件测试用例的设计、面向对象的程序设计等,这些知识对后续课程和学员就业后的继续教育都有非常重要的作用。

 3.教学方法注重学员计算思维能力培养

课程设计在注意发挥教师在教学中主导作用的同时,应特别注意体现学员的学习主体地位,以充分发挥学员的积极性和学习潜能,挖掘学员的计算思维能力。在测试用例的设计教学中教师的主导作用在于阐述算法设计的基本思路,为学员进行算法设计提供引导作用,让学员在基本思路的指引下,自己动手完成算法设计,使学员的计算思维能力得到充分的挖掘和发挥。通过这种方式,使学员在充当一个软件测试者的同时在实践着软件生产管理者的作用。

4.在实践中培养学员创新能力

《软件测试技术基础》是指导软件设计与实现的一门综合性基础课程,需要学员融会贯通,理解体悟。通过课后作业的方式,将完成作业的整个过程变成本课程教学的重要实践环节,将软件工程、并发程序开发技术方法、算法设计方法浸透到整个学习过程中,使得学员在设计算法解决工程中实际问题的过程中得到启发,体会软件测试需要解决的许多问题以及解决的方案。

(三)课程设计思路:软件测试技术课程是新的软件专业人才培养方案的重要组成部分,在第三和第四学期开设,其课程目标是通过课程的贯彻实施,学习软件测试理论知识和业界主流的通用测试技术,使学生掌握软件测试的基本概念和基本理论、基本测试流程、技术和方法,并应用到实践,使学生具备软件测试的必备专业知识和实际工作能力,能基本承担起软件测试的工作任务,人才将直接表现出专业技能和工作素质,并为未来成为软件测试工程师奠定必须的理论知识和实践基础。

为了充分体现任务引领、实践导向课程思想,将本课程的教学活动分解成若干项目或工作情景,以项目为单位组织教学,以设备为载体引出相关专业理论知识,使学生在完成各个项目训练的过程中,逐渐展开对专业知识、技能的理解和应用,培养学生的综合职业能力,满足学生职业生涯发展的需要。

二、课程目标

(一)总体目标:

通过任务引领型、项目活动,掌握软件测试的方法、软件测试的流程、测试用例的搭建和面向对象的测试等技能和相关理论知识,在完成本专业相关岗位的工作任务中,培养诚实、守信、善于沟通和合作的品质,树立环保、节能、安全等意识,为发展职业能力奠定良好的基础。

(二)具体目标

     1.知识目标:使学生全面而系统地掌握在软件测试过程中,所运用的管理信息手段和方法的常见技术。

     2.能力目标:通过对本课程的学习,要求学生能综合运用软件测试技术与手段;能利用软件测试技术手段分析、设计、测试及反应软件中存在的问题。通过独立分析设计,使学生具有一定的系统分析能力;通过测试用例设计,使学生具备软件开发过程中高质量完成测试的能力。

     3.素质目标:通过参与案例分组讨论培养学生团队协作精神。学生了解软件测试职业应具备的职业道德和职业守则。

三、课程内容标准(小四号黑体加粗,顶头空两字)

根据专业课程目标和涵盖的工作任务要求,确定课程内容和要求,说明学生应获得的知识、技能与态度。

项目一  软件测试的基础理论

参考学时:2学时

学习目标:正确理解软件质量和软件缺陷的概念;了解软件测试的分类和阶段、软件测试的工作内容,建立一个完整的软件测试概念。掌握软件质量的概念、软件质量的内涵、软件缺陷的定义;理解软件测试基础理论;了解软件测试的分类和阶段、软件测试职业;认识软件开发与软件测试相辅相成的关系。

重点:软件测试过程

难点:软件测试的方法

教学内容:

1.1 软件测试的含义

1.2 软件测试的目的与原则

1.3软件测试的生命周期

1.4 软件测试与软件开发的关系

项目二  软件测试方法

参考学时:6学时

学习目标:掌握黑盒测试的基本知识;掌握黑盒测试的方法,包括等价类划分法、边界值分析法;了解因果图法。掌握静态测试测试的概念;掌握白盒测试概念;掌握白盒测试的几种方法,包括逻辑覆盖、路径测试;能够自行分析程序,运用学过的白盒测试方法进行测试用例设计。

重点:黑盒测试的等价类划分法、边界值分析法;白盒测试的逻辑覆盖及路劲分析测试

难点:黑盒测试的等价类划分法、边界值分析法;白盒测试的逻辑覆盖及路劲分析测试

教学内容:

2.1 软件测试方法概述

2.2 静态测试与动态测试

2.3 黑盒测试

2.4 白盒测试

项目三 软件测试流程

参考学时:4学时

学习目标:了解软件测试的复杂性与经济性,掌握软件测试的流程;掌握单元测试、集成测试、确认测试、系统测试和验收测试等几种情况的基本概念和方法。

重点:软件测试的流程;单元测试、集成测试、确认测试

难点:软件测试的流程;集成测试、系统测试和验收测试

教学内容:

3.1  软件测试的复杂性与经济性分析

3.2  软件测试的流程

3.3  单元测试

3.4  集成测试

3.5  确认测试

3.6  系统测试

3.7  验收测试

项目四 软件测试环境的搭建

参考学时:2学时

学习目标:熟悉测试环境的要素,掌握软件测试用例环境的搭建

重点:软件测试的用例环境的搭建

难点:软件测试的用例环境的搭建

教学内容:

4.1测试环境的作用

4.2 测试环境的要素

4.3 搭建测试实验室步骤

4.4测试环境的管理与维护

4.5测试环境搭建举例

项目五 软件测试用例设计

参考学时:2学时

学习目标:了解测试用例的基本概念,掌握测试用例的设计的原则;掌握黑盒和白盒测试用例的设计。

重点:软件测试用例设计的原则;黑盒和白盒测试用例的设计

难点:黑盒和白盒测试用例的设计

教学内容:

5.1测试用例概述

5.2黑盒测试用例设计

5.3白盒测试用例设计

项目六 软件测试计划与相关文档

参考学时:4学时

学习目标:熟悉测试计划的制定,掌握测试文档用例的设计;了解测试总结报告。

重点:软件测试文档;测试用例文档的设计

难点:测试用例文档的设计

教学内容:

6.1  测试计划的制定

6.2  测试文档

6.3  测试用例文档的设计

6.4  测试总结报告

项目七 软件自动化测试

参考学时:4学时

学习目标:熟悉自动化测试计划的概念,掌握自动化测试的策略;了解自动化测试的工具。

重点:软件自动化测试的策略

难点:软件自动化测试的策略

教学内容:

7.1软件自动化测试概述

7.2 自动化测试的策略与运用

7.3 常用自动化测试工具简介

项目八 面向对象的软件测试

参考学时:6学时

学习目标:熟悉面向对象测试的基本概念,掌握面向对象测试的内容与范围;掌握面向对象软件测试技术与方法;熟悉面向对象测试软件测试用例的设计和步骤,了解面向对象测试的工具。

重点:面向对象测试的内容与范围;面向对象的技术与方法

难点:面向对象的技术与方法

教学内容:

8.1 面向对象软件测试的基本概念

8.2 面向对象测试的内容与范围

8.3 面向对象软件测试技术与方法

8.4 面向对象软件测试用例设计

8.5 面向对象测试基本步骤

8.6 面向对象测试工具JUnit

项目九 Web网站测试

参考学时:4学时

学习目标:熟悉Web网站测试的基本概念,掌握功能测试、性能测试、安全性测试和可靠性测试等,了解数据库测试。

重点: Web网站测试;功能测试、性能测试、安全性测试

难点:功能测试、性能测试

教学内容:

9.1  Web网站的测试

9.2  功能测试

9.3  性能测试

9.4  安全性测试

9.5  可用性/可靠性测试

9.6  配置和兼容性测试

9.7  数据库测试

项目十 软件测试质量保证

参考学时:2学时

学习目标:熟悉软件质量保证及能力成熟度模型。

重点:软件测试的质量保证

难点:能力成熟度模型

教学内容:

10.1 软件质量保证与软件测试

10.2 软件测试管理和软件测试团队职责

10.3 ISO 9000标准

10.4 能力成熟度模型

四、实施建议(小四号黑体加粗,顶头空两字)

(一)教学建议

本课程是专业主干课程,理论性较强,比较抽象。在教学方法上,采用课堂理论讲授与机房上机,课后自学,课堂讨论等教学形式。

1. 课堂理论讲授与机房上机

本课程属基础理论课程,涉及到较多概念性的知识,在讲述的过程中教师应尽量联系实际,不要陷入到抽象的概念之中;讨论课应该让学生充分地动手实践,多培养他们动手的过程中思考的学习习惯。

2.课后自学

为了培养学生的自学动手能力,每章都安排一部分内容,课上教师只给出自学提纲,不作详细讲解,课后学生自学。

3.课堂讨论

课堂讨论的目的是活跃学习气氛,开拓思路。教师应认真组织,安排重点发言,充分调动每一名同学的学习积极性,做好总结。

4.习题课

习题课以典型例题分析为主,并适当安排开阔思路及综合性的练习及讨论。

5.课外作业

课外作业的内容选择基于对基本理论的理解和巩固,培养综合分析、判断能力以及使用计算工具的能力。

6.平时测验

为及时了解教学情况,教师可适当安排平时课堂测验,每次测验不超过30分钟。

(二)评价建议

教师可以根据需要灵活选择考核方式。由于本课程的理论和实践性都比较强,课程成绩由理论成绩和实践成绩构成,建议比例分别为40%和60%。

(三)教材编写与选用建议

1.《软件测试技术基础》杜文洁 景秀丽 主编 中国水利水电出版社;

2.《软件测试技术》 徐芳 主编 机械工业出版社;

3.《软件测试方法和技术》 朱少民 主编 清华大学出版社;

4.《软件测试技术》 贺平 编著,机械工业出版社。

(四)实验实训设备配置建议

实训装备要求有一定数量的计算机并可以介入互联网,要求计算机安装有JSP运行环境,实训场地要有多媒体教学设备。

(五)课程资源开发与利用建议

1.注重实训指导书的开发和应用。

2.注重录像带、视听光盘、教学仪器、多媒体等常用课程资源和现代化教学资源的开发和利用,这些资源有利于创设形象生动的工作情境,激发学生的学习兴趣,促进学生对知识的理解和掌握。

3.积极开发和利用网络课程资源,充分利用诸如电子书籍、电子期刊、数据库、数字图书馆、教育网站和电子论坛等网络信息资源,使教学从单一媒体向多种媒体转变;教学活动从信息的单向传递向双向交换转变;学生单独学习向合作学习转变。同时应积极创造条件搭建远程教学平台,扩大课程资源的交互空间。

4.产学合作开发实验实训课程资源,充分利用本行业典型的企业资源,加强产学合作,建立实习实训基地,实践工学交替,满足学生的实习实训需求,同时为学生的就业,创造机会。

相关推荐