Category Archives: Scrap

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【8】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.3 数据层的测试
一旦你的站点开始运行,你收集到的数据将会变得非常有价值。信用卡号码,支付信息,和用户资料是你开设你的电子商务站点时将会从用户哪里收集到的信息的一些例子。如果你丢失了这些数据,损失是非常惨重的,而且可能使你的业务变成残废。因此,你必须开发一个程序来保护你的数据存储系统。
测试你的数据层主要由测试你程序用来存储和检索信息的数据库管理系统所组成。小型的站点可能在文本文件中存储信息,但是大型的复杂的站点使用的是企业级的全面的数据库。根据你自己的需求,你可能这两者都会用到。
和测试这个层面相关的最大的挑战是重现产品的环境。你必须使用和现实一样的硬件和软件来验证测试。另外,一旦你得到了财务和人力的资源,你必须开发一个保持你的测试环境和产品环境相互同步的方法。
就像其他层一样,你必须在测试数据层的时候找到哪个特定的区域有错误。这些错误包括了下列的:.相应时间。DML(SQL INSERTs,UPDATEs,和 DELETEs)的定量完成时间,查询(SELECTs)和执行。.数据完整性。验证数据正确的存储着。.容错和可恢复性。MTBF的最大值和MTTR的最小值。
9.3.3.1 响应时间慢速的电子商务程序会使得客户不愉快。因此,你应该想办法保证你的站点在用户需求和动作之后的相应时间。在这一层上测试的相应时间不包含页面的载入时间,但是主要专注于定义数据库操作是不是达到了性能标准。当测试数据层的相应时间时,你必须保证个体的数据库可以很快的操作,不会成为其他操作的瓶颈。
不管怎么说,你开始衡量数据库操作之前,你必须明白数据库由什么组成。就这个讨论来讲,数据库的操作包含了在RDBMS中对数据的插入,删除或者查询操作。衡量相应时间简单的是包括决定每个操作占用多长的时间。你不需要对衡量执行次数太过关心,因为他们可能包含在多数据库操作中。在测试商务层的时候外观的执行速度测试已经做过了。
因为你想要定位数据库的错误,你不想测试数据层的响应速度是衡量完成交易的速度。在整个执行的过程中,太多的因素会影响到测试的结果。比方说,如果用户试着取回自己资料的时候耽误了很长时间。你应该决定那个是操作中存在的瓶颈。是在SQL 声明中还是Web服务器还是防火墙中?如果单独测试数据库操作,使得你可以确认问题。在这个例子中,如果SQL声明写的很差,在你测试响应时间的时候它会自己显示出来。
数据层的响应时间测试是充满挑战的折磨。你必须有和你产品一样的测试环境。否则,你可能得到不正确的测试结果。同样,你必须对你数据库系统有一个直观的了解来确保它是正确地设置和高效地运行。你可以找到数据库运行低效的原因是因为RDBMS被不正确地配置。
通常来说,你对响应时间的测试大多数时候是用的黑盒方式进行测试。你所关心的是数据库执行所花去的时间。有很多工具可以做这个事情,或者你可以自己写一个。
Technorati Tags: Art of software testing, internet application test, data

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【7】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.2.2 数据验证
商务层的一个非常重要的功能就是要确保你从用户那里收集的数据是正确的。如果你的系统运作在像错误的信用卡号码或者错误的地址这样的不正确的信息上的话,就会发生含义错误(歧义?)。如果你运气不好,那么这些错误将会导致你和你的客户发生财务上的问题。你测试数据收集的错误就应该像你测试独立的程序时的用户输入或者参数错误那样测试。请参考第5章来取得设计这些测试用例的信息。
9.3.2.3 业务处理测试
你的电子商务网站必须一直100%地正确处理交易业务。不能有例外。客户是不会容忍失败的交易业务的。另外,名声上的污点也会导致顾客的流失,你还可能因为失败的业务招来法律责任上相关的麻烦。
你可以在测试商务层的时候,考虑像测试系统测试一样测试业务流程测试。换句话说,你从头到尾地来测试商务层,试着揭露问题。再说一次,你应该有一份制定整个业务交易的详细流程文档。它到底是用户怎么在站内查询,填充购物车,或者还是只是由购买的流程所组成?
从一个典型的互联网应用来讲,交易业务的组成远远比财务上的业务交易要复杂的多(比如处理信用卡)。客户在整个业务交易中产生的事件主要包括以下一些:.查询存货清单。.收集客户想要购买的物品。.购买物品,当然这中间除了进行财务的交易处理以外,还包括了交易税和运输费用的计算。.通知顾客这个交易已经完成,这通常是用E-mail来完成的。
除了测试内部的交易流程,你还必须要测试外部的服务,比如信用卡的验证,银行还有地址的认证。你基本上使用第三方的组件和财务机构在指导财务交易时定义好的交流界面。不要认为这些项目已经很好地工作着了。你必须测试和验证你可以和外部的服务沟通还有你从他们哪里收到正确的反馈。
Technorati Tags: art of software testing, internet application test, data

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【6】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.2.1性能测试
糟糕的互联网程序使你的用户怀疑你网站的强壮能力,而且会让顾客离开。冗长的页面和缓慢的下载速度就是这中差体验的典型。为了帮助达成足够的性能水平。你需要保证,操作仕样已经在需求收集的阶段就已经写好了。如果没有写好仕样或者目标,你没办法知道你的程序到底运行的怎么样。操作手顺经常一条一条地列出相应时间或者吞吐率。举例来说,一个页面载入了x秒,或者程序服务器一分钟完成y张信用卡支付。
通常的捷径是,你可以用压力测试来当做性能测试。通常来说,对系统的需求变得过载的时候,系统的性能表现将会下降到一个不能使用的点。这可能是导致时间敏感型处理程序失败的原因。当然程序的错误将会导致你的顾客浪费金钱。压力测试的概念我们在第六章中就提到过了,可以用到测试商务层的性能上。
我们来做一个快速的回顾,压力测试包含了用过多个登录和模拟处理来使得程序出错,你可以以此来判断你的程序有没有达到一个性能的目标。当然,你也需要一个典型的用户访问模型来验证结果。只是载入主页不等于传输购物信息和处理交易。你应该使系统承受重压来暴露过程上的错误。
压力测试也允许你调查你网络构造的坚固和轻装。你可能会觉得你的程序每秒钟只处理x个交易是一个瓶颈。但是进一步的调查显示配置不正确的路由,服务器,或者防火墙的浪费了带宽。因此,你应该保证之前用来进行压力测试的的网络结构是支持的。而不是做了很多之后得到一个错误的结果。
Technorati Tags: artofsoftwaretesting, internet application, performance

1 Comment

怎么在Wordpress MU中开启注册这个链接?

昨天还在问我爱水煮鱼,怎么在WP MU中打开“注册”这个链接。今天就在WP MU的文档中找到了答案。
要打开“注册”这个链接,需要在管理员后台打开“anyone can register”这个功能。应该是任何人都可以注册用户的功能,而不是任何人都可以注册用户并开启Blog这个功能吧。
然后,编辑header.php
 <body> <div id=”rap”> <div id=”header”>        <ul id=”topnav”>                <li><a href=”http://blogs.sitename.com/”>blogs.sitename.com</a> | </li>                <li><?php wp_register(’ ‘ , ‘ ‘); ?> | </li>                <li><?php wp_loginout(); ?> | </li>
OK,这样应该就可以了。但是具体的还没有时间试验,等到回家之后或许可以试验一下。当然,我觉得这个链接也不一定需要出现在header中,如果你设置了单独的首页入口的话,也是一样的。
Technorati Tags: wordpress mu, code, project azz

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【5】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.2 商务层的测试
商务层测试主要关注找到你网络程序的商业逻辑的错误。你会发现其实测试这个和测试其他的独立程序是一样的,你可以使用白盒和黑盒手段来进行。你要建立测试计划和步骤来检测程序在性能要求和数据收集还有交易进程的过程中的错误。
你要通过白盒测试来接近内部开发的组件,因为你可以知道程序的内部逻辑。然而,黑盒测试才是你在这一层测试的时候主要的技术手段。你要从开发测试驱动来组合测试独立的组件。(You will start by developing test drivers to unit-test the individual components.) 接下来你可以进行系统测试来检测你的组件在一起是不是可以很好的工作。当在这一层来领导一个系统测试时,你需要模仿用户购买产品或服务的步骤。比如,作为一个电子商务站点你可能需要建立一个测试驱动来查找清单,添加东西到购物车,还有支付。实事求是地为这些步骤来做模型是很有挑战的。( Pragmatically modeling these steps can prove challenging.)
你用来建立商业逻辑的技术指导你如何来建立和领导你的测试。有很多技术和手段你可以在这层的测试中用到,这使得没法建议你挑选一种唯一的测试方法。( There are numerous technologies and techniques you [...]

Leave a comment

中国移动,你是优秀的服务还是糟糕的骚扰

一早上,短短的10分中之内被中国移动骚扰了3次。先是10086的电话,一直不停的响,我开的是震动还是受不了接了起来。告诉我余额不足20元了,要快点交钱了。接完电话还没几分钟,短信又来了,一看又是中国移动。还是那句,您的余额不足20元了,为了保证您的…blah blah 心想这次总该让我好好工作了吧,等我下班再去买卡充值。第二条短信又来了… 囧 一模一样的短信发两次。强忍着没把手里的手机扔出去,要不然就变成办公室3C掷远了。
我明白,移动是怕我忘记交电话费,可是我不是还有20元的余额么 -___- 虽然全球通比较费钱,可是20元撑一下还是可以的吧。这么热情的提醒我缴费…我有欠过你移动钱么 -____-
确保用户能及时准确地收到消息是对的。但是密集的消息轰炸就有些过了,难道我不用干活每天都是等着移动的消息,然后屁颠屁颠地跑去充值么。
现在很多网站也是这样.经常一条通知发送n次。一般来讲这种服务我基本上都不会再去用它了。
Technorati Tags: china mobile, service

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【4】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3.1 展示层的测试
对展示层的测试由寻找图形界面上的错误和前台的错误所组成。这个关键的一层提供了减少对你站点投诉,所以发现和改正这一层上发现的问题对展示一个有质量,有活力的站点来说是至关重要的。( This important layer provides the curb appeal of your site, so detecting and correcting errors in this layer are critical to presenting a quality, robust website.) [...]

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【3】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.3 测试的战略
开发一个测试基于互联网的程序的战略要求踏实地了解组成这个程序的每个硬件和软件。因为这是是否能成功地测试程序的重要标准,需要一份描述你的网站期望的功能和性能的测试需求文档。如果没有文档,你没法设计合适的测试用例。
你需要测试内部开发的组件以及向外部购买的第三方组件。对自己开发的组件,你可以使用之前几章我们介绍的那些手段。包括了设计组合/模块化的测试用例以及代码审查。只有在你检查过这些组件达到了你的文档中提到的设计标准和功能需求之后,你才能把他们集成到整个系统中去。
如果你购买了第三方的组件,那么你要设计一系列的系统测试来检验这个组件是否可以正常地独立地运行于你的程序中。不要用你供应商的质量控制程序在这个组件中来发现的错误在作为测试的结果。比较完美的是你需要自己独立地完成你对程序的测试。只有当你决定他们表现出了可以接受水平之后,你才能把他们集成到程序中去。对于你程序结构中的非功能性的第三方组件,很难用测试结果来解释和定义出错误的源头。通常,你需要用到黑盒测试来检验第三方的组件,因为你几乎不知道这个组件内部是怎么实现的。
测试基于互联网的程序,最方便的方法是用分而治之的方法来达到效果。幸运的是,基于互联网的应用程序的结构可以允许你来定义描述区域来运用测试用例(Fortunately, the architecture of Internet applications allows you to identify discrete areas to target testing.) 图标9.1已经表达了一些互联网程序的基本结构。那么图标9.2将会为每一层提供更多更仔细的视角。

就像我们在本章的早些时候提到的那样,基于互联网的程序可以被看做是三层的C/S结构。在图标9.2中对每一层是怎么定义的:.展示层 这一层互联网程序提供了图形界面。.商业逻辑层 这一层为你提供了用户认证和交易处理等的商业模式.数据层 这一层容纳了你的程序需要使用的或者是从用户那里收集来的数据
每一层都有它自己的特性,他们促进了测试的细化。如果你每个层分开独立测试,那么你将会在系统测试开始之前更容易地定义问题和错误。如果你只是依赖于系统测试,那么你可能会将时间浪费在定位一个造成问题的特定组件上。
图表9.2列出了你在每一个层面必须测试的项目。这个列表并不完整,但是为你设计自己的测试标准提供了一个出发点。在这一章的接下来部分我们会为怎么测试每一个层面提供更详细的指导。
Technorati Tags: art of test, internet application test, stratage

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【2】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 2nd Edition作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.2 测试的挑战
在设计和测试基于互联网的程序是因为大量的你无法控制的元素和许多互相依存的组建,所以你将面对许多挑战。适当的测试你的程序需要你来制作一些你的客户如何使用你网站的环境假定。
一个基于互联网的程序有许多容易失败的地方,在你需要在设计测试用例的时候需要考虑好的。( An Internet-based application has many failure points that you should consider when designing a testing approach.) 下面的这个列表提供了一些测试基于互联网的程序相关联挑战的例子:
.有一个很大而且各式各样不同的用户群。你网站的用户技术的水平是不相同的,他们所使用的浏览器也是各式各样的,当然使用的操作系统和设备也不相同。你也应当考虑到,用户访问你网站的网络速度也是不一样的。不是每个人都有一条T1线路或者拥有宽带连接的。
.商业环境 如果你正在运营一个电子商务网站,那么你必须考虑到一些比如计算税收的问题,还要决定运费,完成交易财务处理和追踪客户的资料。
.发生的场地  用户可能定居在不同的国家,所以你需要处理一些国际化的问题,比如语言的翻译,时区的考虑和货币的换算等问题。
.测试环境 为了恰当地测试你的程序,你需要重现产品的环境。这表示你需要使用和正式上线的产品环境一样的web服务器,程序服务器和数据库服务器。为了得到最准确的测试结果,我们同样需要重现网络的基础设施,包括路由器,交换机和防火墙。
.安全 因为你的站点是面向全世界的,你必须保护自己的站点防止黑客的攻击。他们会用DoS攻击给你的站点带来令人难以忍受的停顿或者窃取你用户的信用卡资料。
即使在这个列表之外,当我们从一个非常多样化的开发和商务的角度来看待这个测试时,我们也需要添加许多考虑角度。( Even from this list, which [...]

Leave a comment

测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications) 【1】

注:这一个系列是我在看原版的The Art of Software Testing时的一些翻译,因为没有得到作者和出版社的同意,这只是我自己的练习。请不要把本文中的内容用于商业用途。
测试的艺术第九章测试基于互联网的程序(The Art of Software Testing-Chapter9 Testing Internet Applications)作者:GLENFORD J. MYERSRevised and updated by Tom Badgett and Todd M. Thomas with Corey Sandler
9.1 基本的电子商务网站结构
在一头扎进测试基于网络的程序之前,我们先来看看在典型的基于网络电子商务的C/S的三层结构吧。从概念上来讲,每一层都可以作为一个很好地定义了接口的黑盒。这样的模型的好处是,你可以改变每层的内部不用担心这种改变会影响到其他的层。
虽然不是一个非常正式的结构,但是客户端和它的关联是非常值得讨论的。尽管从设计上来说比如手机,冰箱,传呼机还有汽车都开始可以连接到互联网,但是大多数和你的程序的联系都是存在与一台运行着浏览器的电脑上。浏览器戏剧性地呈现他们从网站上得到的内容。就像我们稍后会提到的,测试浏览器的兼容性是一项和互联网测试相关的挑战。内容提供者轻松地跟随已经发布的标准来帮助浏览器表现的一致,但是他们的独家增加的内容可能会导致一些不一致的行为。通常客户端使用的自定义程序就像管道一样通向一个特定的站点。在这个情况下,程序模仿一个你可能会在公司本地网路中看到的标准的C/S程序。
Web服务器是三层结构的第一层,而且也是网站所存放的地方。一个互联网程序的外观和感觉都是来自这个第一层。因此,也有的说法称呼这一层为展示层,它有这个称呼的原因是因为它向最终客户提供了可视化的内容。Web服务器可以使用HTML页面文件来提供静态的内容,也可以使用CGI脚本来提供动态的HTML内容,但是有很大的可能是提供了静态和动态。
第二层,又被称为商务层,程序服务器就是这一层。你在这里可以运行你那些展示你商业进程的软件。(?)一下的列表包含了一些和商务层相关的功能:. 处理过程. 用户认证. 数据校验. 程序的日志
第三层关注的是从数据源中存储和读取数据,其中有代表性的是RDBMS(关联数据库管理系统),第三层又被称为数据层。这一层是由数据库的最底层结构组成用来和第二层通讯的。数据层的接口是由数据模型定义的,它描述了你希望怎样了存储数据。有时候这一层有好多个数据库服务器组成。你通过典型的调整这层中的数据库系统来处理电子商务网站遇到的高交易量问题。(You typically tune database systems in this layer to handle the high transaction rates encountered in an e-commerce site.)关于数据库服务器,一些电子商务网站也可能在这层增加一个认证服务器。最有可能的是,你使用一个LDAP服务器来实现这个功能。
Technorati Tags: The art of test, internet [...]

1 Comment