转载:电子商务软件测试的探讨

来源:互联网 发布:c语言中switch 编辑:程序博客网 时间:2024/09/21 08:19

这篇文章,感觉总结的很好,自己收藏转载下;

转载地址:http://mp.weixin.qq.com/s?__biz=MzIzMDU5MDg4OA==&mid=2247484047&idx=1&sn=4c96519a51c34c526f2cff2b9ebdf5fb&chksm=e8b05248dfc7db5e44b199b11d8f81a905e46a1507a7871fbc44cd05d6efc03dea31c97d9776&mpshare=1&scene=23&srcid=0820HFYjpSHYCsvkCAdc54ED#rd

1

导读

国际互联网的快速增长,使WEB技术对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在移植到互联网上,电子商务迅速增长。因此,电子商务应用系统的测试也变得十分重要,它对软件测试提出了新的挑战,要求采用新的测试方法展开软件测试工作。这种对应用系统的测试不但能检查是否满足设计的要求,还需要能测试系统每个层面是否正常,确保系统的整体性能、安全性和可用性满足需要。  



2

典型的系统结构


  随着电子商务的兴起,Web方式的应用系统发展迅速,它将成为电子商务技术领域的主流。在电子商务应用系统中,目前普遍采用的是三层C/S结构,即表示层、业务层和数据层。这种结构使软件测试人员能采用“局部分层测试”和“系统整体测试”相结合的方法,对应用系统进行测试。即先对每一层进行独立的测试,再开展系统整体测试,这样更容易发现应用系统缺陷和错误。如果仅仅依赖系统测试,要确定存在问题的特定部件十分困难。


3

局部分层测试



1.表示层。即检查应用程序的前端是否存在错误。


  (1)内容测试。内容测试用来检验Web应用系统提供信息的正确性、准确性、相关性等人机界面元素,信息的正确性是指信息是可靠的还是误传的,例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsft Word的“拼音与语法检查”功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中所谓“相关文章列表”。此外,还要检查字体类型、屏幕布局、色彩、图形分辨率及其他直接会影响最终用户体验的特性。


  (2)Web站点结构。测试Web站点的结构是检查结构上存在的错误,发现无效的连接。链接测试可分为三个方面。首先,测试所有链接是否链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。测试链接可以借助hlvsetup等链接检查器。


  (3)用户环境。测试用户平台和浏览器。市场上有很多不同的操作系统平台,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容型问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。此外,要测试浏览器。浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java、JavaScript、ActiveX、plug-ins或不同的HTML规格有不同的支持,同一款浏览器不同版本间的要求也可能不同。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。操作系统(OS)和浏览器的组合非常多,不仅要测试每一个浏览器的配置,还要测试同一个浏览器的不同版本。兼容性测试方面,微软公司已经有成熟的测试方法,这个可以找一下微软的一个测试人员写的书籍(具体书名我忘记了)。


2.业务层。业务层测试的重点是发现应用系统的业务逻辑中的问题。测试业务逻辑层与测试单机程序非常类似,通过测试去检查应用系统是否满足系统性能方面的需求。


  (1)性能测试。主要是负载测试,即带负载情况下的响应时间和吞吐率。负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。此外,还要进行压力测试。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。


  (2)数据验证。测试从用户采集到的数据,通常是以表单形式。当用户给Web应用系统提交信息时,就需要使用表单操作,例如用户注册、登录、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息是否正确。如果表单只能接受指定的某些字符,测试时可以跳过这些字符,看系统是否会报错。如果Web应用系统使用Cookies(通常用来存储用户信息和用户在某应用系统的操作),当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上。 

  

       (3)业务测试。测试系统的业务处理过程的正确性,比如信用卡处理、电子邮件验证以及消费税计算等。电子商务系统必须在全部的时间里正确处理业务,无一例外。因此,要通过测试确保业务处理的正确性。


3.数据层。数据层的测试,主要是指对数据库的测试。在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在使用了数据库的Web应用系统中,一般情况下,注重数据库操作的响应时间、数据存储的完整和数据库系统的容错。


  (1)响应时间。需量化数据操作语言(DML,包括结构化查询语言SQL中INSERT、UPDATE和DELETE)、查询(SELECT)及事物的完成时间。电子商务系统运行速度缓慢会引起客户不满。因此,我们应该积极确保网站能够及时响应用户的请求和操作。在测试数据层的响应时间时,我们要确保单个的数据操作能够快速完成,不至于阻塞其他操作。


  (2)数据完整性。验证数据存储适当且正确。所谓数据完整性测试,即在数据库表中发现不准确数据的过程。这项测试与数据确认有所不同,后者在测试业务层时进行。数据确认测试试图发现数据收集中的错误,而数据完整性测试是尽力要在数据存储的方式中发现问题。


  (3)容错性和可恢复性。最大平均故障间隔时间(MTBF),最小平均故障恢复时间(MTTR)。一般来说,数据库操作的一个目标是最大化MTBF,最小化MTTR。


  数据库的恢复具有重要意义。可恢复性测试的目标是设计出数据库无法恢复的场景出来。在某些时间,数据库会崩溃,因此须制订一些规程以便快速恢复。恢复计划开始于获得有效的备份,在进行可恢复性测试时,如果无法恢复数据库,那么需要修改备份策略。


4

系统整体测试


1.整体界面。整体界面是整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,能否找到信息所在地方,整个Web应用系统的设计风格的总体效果,操作是否让人习惯。

  对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。


2.安全性。安全性测试区域主要有:


  (1)web漏洞扫描。通常借助自动化扫描工具进行,但自动化扫描工具只能检测到部分常见的漏洞(如跨站脚本、SQL注入等),不是针对用户代码的,也就是说不能理解业务逻辑,无法对这些漏洞做进一步业务上的判断。往往最严重的安全问题并不是常见的漏洞,而是通过这些漏洞针对业务逻辑和应用的攻击。Web目前分为application和Web service两部分。Application指通常意义上的Web应用,而Web service是一种面向服务的架构的技术,通过标准的Web协议(如HTTP、XML、SOAP、WSDL)提供服务。

(2)服务器信息收集。比如不应使用的账号(如root、administrator)、不应开放的端口(如Jboss开放的8083)、不应开放的http方法(如DELETE\MOVE\COPY\PUT\TRACE)、

(3)文件、目录测试。检查是否存在某些敏感接口、不恰当的(容易造成信息泄露)目录列表、不恰当的文档归档方式(如UE在修改后会生成文件名加bak后缀的文件,攻击者通过直接访问这些备份的路径可以下载文件)。

(4)认证测试。包含身份信息维护方式、cookie存储方式、用户注销登录的方式、会话超时、会话定置等。

(5)权限管理。如页面是否进行权限判断;页面提交的资源标志是否与已登录的用户身份进行匹配比对;

(6)数据输入。如sql注入等

(7)其他。

介绍几个工具:

  • AppScanIBM Rational AppScan,在Web安全测试中所使用的自动化扫描工具

  • Httprint,Web服务器类型和版本的探测工具

  • WebScarab,Web Proxy软件,可以对浏览器与Web服务器之间的通信数据进行编辑修改

  • DirBuster,在Web安全测试中用来遍历目录、文件的工具

  • WSDigger,Web service 安全测试工具

  • Jad,Java class文件反编译软件

  • CAJAVA,Java class文件反编译软件(兼容多个JDK版本)

  • Pangolin,SQL注入测试工具

  • WireShark,网络协议抓包与分析工具


  3.导航。导航描述了用户在一个页面内操作的方式。在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。

  导航测试就是检查应用系统的页面结构、导航、菜单、连接的正确性。确保用户知道Web应用系统里面的内容,以及内容所在位置。


5

结束语

在电子商务领域,Web软件的测试是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器的显示是否合适。因此,我们必须为测试复杂的基于Web的系统不断研究新的方法,满足软件开发人员的需要。





原创粉丝点击