我以为可以彻底抛开和放弃Blogger了,因为之前找到了几家比较好的国外免费主机托管网站, 但是试用这几天给我的第一感受就是一个字: 免费的东西就是不稳定.
前后试用了N多个,包括kingofhosts.com, my-php.net, prehost, awarespace, 9999mb等等,发现所有的免费托管格式几乎千篇一律,引用chinalong兄弟的一句话"不知道他们在搞什么名堂".
连注册的程序几乎都一摸一样,都说中国人喜欢模仿,看来也不完全是这样啊, 另外, 对于网站的管理大都基于统一的模式,而且基本都有快速安装工具,可以快速建立基于WP或者其他主流论坛的能力.这的确可以省去建站所花费的时间,而且支持的空间也超级大,从几十G到几百G多少不一,另外,对于二级域名和顶级域名的支持也是出奇的一致. 真的是让我这样的新手不知如何取舍.
可惜最致命的是对于免费用户的支持都是有限的,而且稳定性没有保证,反反复复折腾吧. 郁闷.看来要想得到稳定可靠的服务和支持还要付出真金白银呐.
真要好好考虑考虑了.
--end
2007年2月22日 星期四
| [+/-] |
几大国外免费主机托管 |
2007年2月21日 星期三
| [+/-] |
搬家完毕 |
本博客已经搬家,请访问基于WordPress的站点http://www.rickyzhu.com查看最新的文章和系列.
另外,感谢这个搬家插件,使我的所有文章都能顺利搬家到新的站点.
--以此纪念在blogspot的三个月--
--end--
2007年2月19日 星期一
| [+/-] |
基于WP架构的个人网站已经建立 |
今天下午,花费了三个小时左右,基于WordPress架构的个人网站rickyzhu.com已经建立完毕.
现在打算把基于Blogger的这个博客移植到www.rickyzhu.com去,发现WP提供很多其他blog站点的导入功能,其中就包括blogger,不过好像目前只支持旧版本的blogger,也就是用blogger账号,而非google帐号登陆的blogger,看来我的这个站点要搬家还要另外想想办法了....
打算把目前这个站点搬过去之后,年后就开始在新的网站开始经营了,欢迎新老朋友过去捧场.个人站点的空间是kingofhosts免费提供托管,由WordPress提供技术架构的.
我申请域名的时候用的是rickyzhu.com,好像rickyzhu.com已经和rickyzhu.kingofhosts.com绑定,并且由kingofhosts提供空间托管,不过www.rickyzhu.com好像指向的是另外一个网站,不知道为什么,在kingofhosts里面好像提供修改的地方,不过已经修改不过了,哪位高手指点一下? 另外,Kingofhosts是一个国外的网站,可能访问的时候时好时坏,不一定有国内付费的空间那么稳定,没办法,穷啊,暂时只能这样了,而且kingofhosts也是提供了一个很简单的页面底部的广告.
--end
| [+/-] |
新域名得到启用 |
Google Blogger的免费域名绑定服务被封之后,我一直在寻找可以免费托管或者免费域名绑定的服务,现在最终有了结果,kingofhosts提供这个功能,而且功能非常全面,最重要的是全免费,提供的服务如下:
Features
KingofHosts has industry leading features that will allow you to build a website above and beyond your competitors, take a look at some of them:1,000mb Disk Space8,000mb disk space (8gb!)10,000mb Bandwidth50,000mb bandwidth (50gb!).- NO ADVERTISEMENTS on your pages!
- FREE subdomain (yourname.KingofHosts.com)
- Easy to use WYSIWYG editor
- Full FTP Support
- PHP 4 Support
1 mySQL database10 mySQL database's- Instant activation
- Domain name support
- 99.9% Uptime
- and MORE...
您不妨试试,现在我的新域名
rickyzhu.com
或者
rickyzhu.kingofhosts.com
两者都是可以的,目前在暂时将她们重定向到目前这个Google的博客。
--end
2007年2月15日 星期四
| [+/-] |
LoadRunner性能数据结果分析连载(引言) |
HP Mercury LoadRunner 是一款功能相当强大的性能测试工具,由三个部分构成, VUGen, Controller以及Analysis. 其中VUGen负责进行脚本录制, Controller是一个总控中心,负责场景的配置,监控器的选取和监控,并选择合适的负载生成器进行执行, Analysis是一个分析模块,主要负责所有执行数据的分析以及报告的生成.
之所以说LoadRunner是强大的性能测试工具,主要是因为VUGen支持大概好几十种主流的协议. 因此支持的被测对象相当广泛,另外Analysis也有超强的功能,提供非常丰富的图表,供测试结束之后分析和定位问题.
我使用Mercury LoadRunner有一年左右,2006年6月通过了LoadRunner的SP考试,并于12月底参加了CPC考试,以2分之差失败. 在这一年之内对Controller和Analysis的使用有一些心得和体会,大概能看懂一些主要的分析图表,包括事务相关的一些图表,所以希望作一个总结,对希望学习和了解LoadRunner的朋友有一些帮助. 因为时间有限,所以初步打算以系列的形式发表. 下次打算介绍Analysis提供图表的概述.
--to be continued
| [+/-] |
Andy Mckee |
好牛的吉他弹奏.
2007年2月14日 星期三
| [+/-] |
软件测试自动化之实践 |
我之前写过几篇原创的关于自动化测试的思考和总结,今天整理资料的时候发现这篇文档,涉及到实施自动化测试的切入,自动化测试的适应范围,自动化测试的环境,自动化测试的开展,甚至自动化测试的风箱评估等等,这篇文档系统的阐述了这些重要内容,给自动化测试的开展提供了一些理论方面的指导,跟我的前面几篇文档有异曲同工之处,可以做为一个补充和参考.
软件测试自动化,从计算机这一庞大学科发展至今,最根本的意义是解决手工劳动的复杂性,成为替代某些重复性行为模式的最佳工具。
1. 提高测试效率和降低测试成本
2. 将重复性强的测试由手工转为可以独立开来自动实现的。
3. 实现快速的回归测试,提高新版本发布的速度和质量,尤其是不能适应目前流行的迭代开发,回归测试频度高、工作量大,人工的测试很难对新的迭代版本作出快速评估。
4. 自动测试可以避免,人工测试容易犯的错误:错误测试、漏测试、多测试和重复测试等
5. 典型的应用,例如多用户并发注册、并发交易请求和并发交易应答,这种情况用人工测试几乎是办不到的,而自动测试却很容易。
6. 对于很常用的功能性边界测试测试,人工测试非常耗费时间,而自动测试很快且准确。
可以说,实施测试自动化是软件行业一个不可逆转的趋势,如果在这个领域走在了前列,无论从企业的核心竞争力还是个人的工作技能来说,都有巨大的优越性。
自动化测试能大大降低手工测试工作,但决不能完全取代手工测试。完全的自动化测试只是一个理论上的目标,实际上想要达到 100% 的自动化测试,不仅代价相当昂贵,而且操作上也是几乎不可能实现。一般来说,一个 40-60% 的利用自动化的程度已经是非常好的了,达到这个级别以上将过大的增加测试相关的维护成本。
测试自动化的引入有一定的标准,要经过综合的评估,绝对不能理解成测试工具简单的录制与回放过程。实际上,从实现成熟度来说,自动化测试分五个级别:
| 级别 | 说明 | 优点 | 缺点 | 用法 |
| 一级 | 录制和回放 | 自动化的测试脚本能够被自动的生成,而不需要有任何的编程知识 | 拥有大量的测试脚本,当需求和应用发生变化时相应的测试脚本也必须被重新录制 | 当测试的系统不会发生变化时,实现小规模的自动化 |
| 二级 | 录制、编辑和回放 | 减少脚本的数量和维护的工作 | 需要一定的编程知识;频繁的变化难于维护 | 回归测试时,用于被测试的应用有很小的变化 |
| 三级 | 编程和回放 | 确定了测试脚本的设计,在项目的早期就可以开始自动化的测试 | 要求测试人员具有很好的软件技能,包括设计、开发 | 大规模的测试套件被开发、执行和维护的专业自动化测试 |
| 四级 | 数据驱动的测试 | 能够维护和使用良好的并且有效的模拟真实生活中数据的测试数据 | 软件开发的技能是基础,并且需要访问相关的测试数据 | 大规模的测试套件被开发、执行和维护的专业自动化测试 |
| 五级 | 使用动作词的测试自动化 | 测试用例的设计被从测试工具中分离了出来 | 需要一个具有工具技能和开发技能的测试团队 | 专业的测试自动化将技能的使用最优化的结合起来 |
自动化测试能提高测试效率,快速定位测试软件各版本中的功能与性能缺陷,但不会创造性的发现测试脚本里没有设计的缺陷。测试工具不是人脑,要求测试设计者将测试中各种分支路径的校验点进行定制,没有定制完整,即便事实上出错的地方,测试工具也不会发觉。因此,制订全面、系统的测试设计工作是相当重要的。
自动化测试能提高测试效率,但对于周期短、时间紧迫的项目不宜采用自动化测试。推行自动化测试的前期工作相当庞大,将企业级自动化测试框架应用到一个项目中也要评估其合适性,因此决不能盲目的的应用到任何一个测试项目中,尤其不适合周期短的项目,因为很可能需要大量的测试框架的准备和实施而会被拖跨。
实施测试自动化必须进行多方面的培训,包括测试流程、缺陷管理、人员安排、测试工具使用等。如果测试过程是不合理的,引入自动化测试只会给项目团队带来更大的混乱。
那么应该具备什么样的条件才可以引入自动化测试呢,才可以最大可能的减少引入风险,并能够可持续性的开展下去呢?
第一,从项目规模上来说,没有严格限制。无论项目大小,都需要提高测试效率,希望测试工作标准化,测试流程正规化,测试代码重用化。所以第一要做到的,就是从公司高层开始,直到测试部门的任何一个普通工程师,都要树立实施自动化测试的坚定决心,不能抱着试试看的态度。一般来说,一个这样的软件开发团队可以优先开展自动化测试工作:测试与开发人员比例合适,比如1:3到1:5,开发团队总人数不少于10个。
第二,从公司的产品特征来说,一般开发产品的项目实施自动化测试要比纯项目开发要优越些。但决不是说做纯项目开发不能实施自动化测试,只要软件的开发流程、测试流程、缺陷管理流程规范了,自动化测试自然水到渠成。
第三,从测试人员个人素质和角色分配来说,除了有高层重视外,还应该有个具有良好自动化测试背景和丰富自动化测试经验的测试主管,不仅在技术方面,更重要的是在今后的自动化测试管理位置起着领导的作用。还要有几个出色的开发经验良好的测试人员,当然也可以是开发工程师,负责编写测试脚本、开发测试框架,还有一些测试执行者,他们要对软件产品业务逻辑相当熟练,配合测试设计者完成设计工作,并在执行自动测试时,敏锐的分析和判断软件缺陷。
综合分析上述三个条件,就可以决定是否推行自动化测试;但是为了减少实施风险,还要预测到其他潜在的风险,做好事先解决问题规避风险的思路。
资金风险,虽然有些项目具备实施自动化测试的条件,但还是要引入自动化测试后组织结构调整等方面的成本估算是很必要的。
自动化测试对软件功能类型的切入点的风险,开发的产品业务和功能是否需要自动化测试?包括白盒自动化测试、功能自动化测试和性能自动化测试。
软件自动化测试切入方式的风险,一定要将自动化测试与手工测试结合起来使用,不合理的规划会造成工作事倍功半。首先,对于自动化测试率的目标开始是 20/80 (20% 的自动化测试和 80% 的手工测试),当这些目标都实现了,再将自动化测试率提高。
时间估算,在评估完前面几项指标后,需要估算实施测试自动化的时间周期,以防止浪费不必要的时间,减少在人员、资金、资源投入上的无端消耗。虽然到测试自动化步入正轨以后,会起到事半功倍的效果,但前期的投入巨大,要全面考虑各种因素,明确实施计划并按计划严格执行,才能最大限度降低风险。
工作流程变更风险,测试团队乃至整个开发组织实施测试自动化,或多或少会因为适应测试工具的工作流程,带来团队的测试流程、开发流程的相应变更,而且,如果变更不善,会引起团队成员的诸多抱怨情绪;所以应该尽量减少这种变更,并克服变更中可能存在的困难。
五、什么条件下使用自动化测试
一般在这样的条件下使用自动化测试
l 具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试)
l 对于自动化测试你拥有一个能够被识别的测试框架和候选者
l 能够确保多个测试运行的构建策略
l 多平台环境需要被测试
l 拥有运行测试的硬件
l 拥有关注在自动化过程上的资源
如下条件下是宜采用手工测试:
l 没有标准的测试过程
l 没有一个测试什么、什么时候测试的清晰的蓝图
l 在一个项目中,测试责任人是一个新人,并且还不是完全的理解方案的功能性和或者设计
l 整个项目在时间的压力下
l 在团队中没有资源或者具有自动化测试技能的人
| 测试阶段 | 描 述 | 备 注 |
| 单元测试/ 组件测试 | 这个测试工作通常是开发人员的职责,很多不同的方法能够被使用,比如"测试先行",它是一个测试框架,开发人员在编写代码前编写不同的单元测试,当测试通过时,代码也被完成了。 | 通过使用正式的单元测试,不仅能够帮助开发人员产出更加稳定的代码,而且能够是软件的整体质量更加的好。 |
| 集成测试 | 这里的测试工作集中在验证不同的组件之间的集成上。 | 这种类型的测试通常是被测试系统的更加复杂测试的基础,大量的边缘测试被合并以制造出不同的错误处理测试。 |
| 系统测试 | 这种测试是通过执行用户场景模拟真实用户使用系统,以证明系统具有被期望的功能。 | 这里不需要进行自动化的测试。安装测试、安全性测试通常是有手工完成的,因为系统的环境是恒定不变的。 |
| 其它两种非常重要的测试 | ||
| 回归测试 | 回归测试实际上是重复已经存在的测试,通常如果是手工完成的化,这种测试只在项目的结尾执行执行一到两次。 | 这里完全有潜力应用自动化的测试,能够在每次构建完成后执行自动化的回归测试,以验证被测试系统的改变是否影响了系统的其他功能。 |
| 性能测试 | 性能测试包括以下不同测试形式: - 负载测试 | 使用自动化的测试工具,通过模拟用户的负载实现的高密集度的性能测试。 |
| [+/-] |
LoadRunner的工作原理(第二部分) |
LoadRunner Internal Architecture
![]()
| |
| |
|
| [+/-] |
LoadRunner的工作原理(第一部分) |
Architecture Overview
Requests from many virtual user clients are generated by "Load Generators" in order to create a load on various servers under test These load generator agents are started and stopped by Mercury's "Controller" program. The Controller controls load test runs based on "Scenarios" invoking compiled "Scripts" and associated "Run-time Settings". Scripts are crafted using Mercury's "Virtual user script Generator" (named "V U Gen"), It generates C-language script code to be executed by virtual users by capturing network traffic between Internet application clients and servers. With Java clients, VuGen captures calls by hooking within the client JVM. During runs, the status of each machine is monitored by the Controller. At the end of each run, the Controller combines its monitoring logs with logs obtained from load generators, and makes them available to the "Analysis" program, which can then create run result reports and graphs for Microsoft Word, Crystal Reports, or an HTML webpage browser. Each HTML report page generated by Analysis includes a link to results in a text file which Microsoft Excel can open to perform additional analysis. Errors during each run are stored in a database which can be read |
|
| Note: Links to documents that used to be here were removed after Mercury Interactive, Inc. lawyers demanded their removal. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Application Product | Process Image Name | V8.0 Img KB | File Size | |
|---|---|---|---|---|
| | - | LRLauncherApp.exe | 16,288 | n/a |
| | Virtual User Generator | VuGen.exe | 12,436 | 2,334,769 |
| | Controller | wlrun.exe | 13,076 | 5,681,215 |
| | Load Generator Agent | magentproc.exe | 3,236 | |
| magentservice.exe | | 65,536 | ||
| mdrv.exe | | |||
| | Analysis | Analysisui.exe | 13,132 | 6,058,496 |
| | Tuning Console | protune.exe | | 3,403,833 |
Console programs
| perl5.8.0.exe | Interpreter | 20,535 |
| regtlb.exe | registers the batch automation type library | 30,720 |
| sed.exe | 55,296 | |
| wdiff.exe | Compares text files | 197,632 |
Alex Arbitman's
LR 7.8 Footprints.xls reports that to run Web requires __ per process and __ per thread.
| Quality Web Systems: Performance, Security, and Usability (Addison-Wesley Professional; Aug. 2001) by Elfriede Dustin, Jeff Rashka, Douglas McDiarmid |
|
| Protocol | Server | Client Program | Parameter | Notes |
|---|---|---|---|---|
| Web | WebTours\StartServer.bat | http://localhost:1080/mercuryWebTours | | |
| COM/DCOM | (Operating System) | samples\bin\frsui.exe | | |
| Winsock | sockfrs.exe | samples\bin\flights.exe | Winsock WinSockWeb | |
| ODBC | (MS Access) | samples\bin\flights.exe | ODBC_Access | |
| CORBA | samples\CorbaSamples\server.cmd & samples\CorbaSamples\server.bat | samples\CorbaSamples\client.cmd & samples\Corbasamples\clientrecord.cmd | | Stuart Moncrieff's article on CORBA |
| RMI | samples\RMISamples\server.cmd & samples\RMISamples\server.bat | samples\RMISamples\client.cmd & samples\RMISamples\clientrecord.cmd | |
According to CPT11877.doc, JDK 1.5 users need to contact Mercury Support for a patch to each specific LoadRunner version (7.6, 7.8 FP1 or 8.0). Otherwise, you'll get these messages:
- Error: Failed to find javac.exe Java Compiler in Path and JDK installation folder in registry. [MsgId: MERR-22981]
Error: Failed to compile the Actions.java file. Please add the
Warning: Extension java_int.dll reports error -1 on call to function ExtPerProcessInitialize [MsgId: MWAR-10485]
Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread. [MsgId: MERR-10176]
The Java sample apps use the "flight32lr" User Data Source with Microsoft Access driver(*.mdb) in the USER DNS table in Data Sources(ODBC) of the VuGen's local machine.
Additionally, the sample Java servers must be operational prior to starting the client. This is done with the "samples\RMISamples\server.cmd":
- set lrpath=C:\PROGRA~1\Java\jre1.5.0_02\bin;C:\PROGRA~1\MERCUR~1\MERCUR~1\classes
set lrclasspath=C:\PROGRA~1\MERCUR~1\MERCUR~1\classes;C:\PROGRA~1\MERCUR~1\MERCUR~1\classes\srv;C:\PROGRA~1\Java\jre1.5.0_02\lib\rt.jar
set flightRmi=%~dp0;%~dp0RmiSamples.zip
set classpath=%lrclasspath%;%flightRmi%;C:\PROGRA~1\Java\lib\rt.jar;.;%classpath%
set path=%lrpath%;.;%path%
cd %~dp0
start java -Djava.security.policy="%~dp0RmiFlights.policy" RmiFlights.Server
Note the location of loadrunner class files I added to the default sample. They are pre-pended to the existing classpath.
Note that there are no spaces in the file path.
The Zip file is equivalent to a JAR file in Unix systems.
Do not delete the black command window because the Java server runs within it.
CORBA and RMI Java clients are invoked with a command for Windows to start the java.exe program. This "samples\RMISamples\client.cmd" file contains:
- set lrpath=C:\PROGRA~1\Java\jdk1.5.0_02\bin;C:\PROGRA~1\MERCUR~1\MERCUR~1\classes
set lrclasspath=C:\PROGRA~1\MERCUR~1\MERCUR~1\classes;C:\PROGRA~1\MERCUR~1\MERCUR~1\classes\srv;C:\PROGRA~1\Java\jdk1.5.0_02\lib\rt.jar
set flightRmi=%~dp0;%~dp0RmiSamples.zip
set classpath=%lrclasspath%;%flightRmi%;C:\PROGRA~1\Java\jdk1.5.0_02\lib\rt.jar;.;%classpath%
set path=%lrpath%;.;%path%
cd %~dp0
start java RmiFlights.main
Note that the RmiFlights.main class file name is passed into java for it to load.
When recording Java with VuGen, a different command — such as the sample clientRecord.cmd — needs to be invoked because VuGen needs to be invoked within the JVM sandbox:
- set flightRmi=%~dp0;%~dp0RmiSamples.zip
set classpath=%flightRmi%;%classpath%
cd %~dp0
start InvokeVugen.exe
- Error: Failed to find javac.exe Java Compiler in Path and JDK installation folder in registry. [MsgId: MERR-22981]
Instead of web "Start recording", Java VuGen scripts invoke Java functions within the Actions section.
"vuser_init" and "vuser_end" actions are not relevant within Java VuScripts.
Internally, the cjhook.ini file specifies which Java classes can hook in its [EXC_SYSTEM_CL] section. Java classes specified in the [SYSTEM_CL] section are not hooked.
The user.hooks file in LR \bin folder is a general format and cannot be used as-in. It needs to be copied.
Uninstall
Unlike Microsoft Office applications, Mercury has not programmed invididual components to be selectively uninstalled on its own.
2007年2月13日 星期二
| [+/-] |
Lonely |
一九六九年十月五日出生在加纳。十岁的时候他跟随他母亲、兄弟姐妹一起去了德国。这一去,改变了他的生活,nana学到了很多新的东西。从幼年开始,nana酷爱音乐,他从中学毕业后,当了一名dj。他在很多地方表演,渐渐小有名气。与此同时,他还在两部德国电影中担任配角,因而,nana也可以被称为一名演员。这个时候,他遇到了toni cottura。此人在fun factory大大地有名,参与炮制好几个著名组合:后街男孩、超级男孩、Marky Mark.在与nana合作一段时间之后,tony cottura 和他的搭档离开了fun factory。
歌词:
I am lonely lonely lonely 我是寂寞的 寂寞的 寂寞的
I am lonely lonely in my life我是寂寞的 孤独的在我的生命中
I am lonely lonely lonely 我是寂寞的 寂寞的 寂寞的
God help me help me to survive! 神救我 帮助我生存
Remember first time we met day one 记得那天第一次我们相遇一个小孩在花园里快乐的玩耍
Kids in the garden\' playin\'
games heaven\' fun
Excitin\' and amazin\' havin\'激动和吃惊发现了我的一个真正的朋友
a real friend of mine
Feel my heartbeat and for感觉到当我遇到真正朋友时的心跳
real friend of mine
Face to face and eye to eye脸对脸.眼对眼
Usin\' our hands to buy and supply 用 我们的手去卖去供给
Chillin\' is cool from january to june 寒意从一月到六月
And we still stiked together我们像胶水一样粘一起
like the glue
And know the rules 我们知道规则
Forever you and i and believe 我和你都相信它永远是干净的
it was clear
If i ever should fall即使我曾经落下
i could count on you with no fear 我可以依靠你不会害怕
Runnin\' out of time i see who\'s fake 用完所有时间,我看到虚假的孤独没有保护
Alone without protection
from all them snakes 从他们的虚假
All for one one for all i was told 不管我说黑白黄不管年轻或老
Black white yellow no matter
if your young or old
Nana\'s in the house to let you know祖母让你知道
What i see is how i fell and damn 我看到的,我是多么忧伤和失败
I\'m alone我是孤独的
I am lonely lonely lonely 我是寂寞的 寂寞的 寂寞的
I am lonely lonely in my life 我是寂寞的 孤独的在我的生命中
I am lonely lonely lonely 我是寂寞的 寂寞的 寂寞的
God help me help me to survive! 神救我 帮助我生存
Everybody\'s trippin\' on me 所有人牵绊着我
Oh lord come help me please 求上帝来保佑我
I did some bad things in my life 很多不好的事情在我的生命中
Why can\'t you rescue me 为什么你不来拯救我
\'cause you\'ve got all i need 你能做到我所有想要的
I know i got to pay the price 我知道我需要付出代价
Cheppin\' thru the streets at night在夜间穿过大街
after a fuss and fight 在一切慌乱后
Tears in my eyes i\'m a man眼泪在我眼底,我一个人望着光
lookin\' for the light
Dark is the path黑暗已经过去
i know he will rescue me我知道他会来拯救我
The lord is my shepard上帝是我的牧主
i\'m cool despite emergency
Whom shall i fear exept the god只有上帝在我冷的时候不会让我遇到事情时感到害怕
Thank you for the blessin\' a
nd the skils on the mic 谢谢你保佑和赐予我唱歌的能力
Five years we know there\'s no diggity 五年我们知道了那儿没有diggity(不知道这个词什么意思)
Free at last see the light in me 我最后一次看到光
What goes up must come down 什么才是必须做的
I\'ll be around while you 我会在你周围直到死亡
heading towards deathtown 朝(?)前进
Allways look forward hardly 一直努力的向前看决不回头
never look back So many tears and 决不回顾那么多眼泪和毒蛇
the snakes on my jock 当我成为男子汉
Now i\'m riding in my big fat ride 现在我骑着我肥壮的马
Your ass is late so look for the line 你的驴慢所以只能看着线
Nana in the house to let you know 祖母会让你知道
What i see is how我感觉到我的感觉所以让我一个人带回儿
i feel so leave me alone 感觉到 我不管
I am lonely lonely lonely我是寂寞的 寂寞的 寂寞的
I am lonely lonely in my life我是寂寞的 孤独的在我的生命中
I am lonely lonely lonely我是寂寞的 寂寞的 寂寞的
God help me help me to survive!神救我 帮助我生存
Knock on my door whom you lookin\' for 敲我的门当你看到梦想的敌人在我的门前
A dream or reality enemies at my door
Eyes i realize 注视着,我发现了,那是梦想我必须定很很高
it\'s fantasize i must be high 想象中一定是高的
So let me live before i die 所以让我生动的度过我剩余的时间
Once again grab the
bottle twist the cap再一次拿起瓶子
To survive your life 去拯救你的生命
is yours my life is mine 是你的我的生活是我的
No emotions in this world full of lies面对这个世界的完美的谎言不要冲动
Step by step and be versatile 一步一步的实现
Love peace and cash爱,和平和死亡
that\'s what is\'s all about那是所有
Alone by yourself than you比你自己更孤独
lack there\'s no doubt about 不要怀疑
I\'m always into something
making moves to improve 只要你归于我,我会证明给你看
What would you do 如果你处在我的位置
if you were in my shoes 你能做什么
Boom a letter oops another suicide(这句实在是不知道怎么翻译)
Meet me for a ride at the boulevard 骑着马和我在林荫道相遇
Nana\'s in the house to let you know 祖母会让你知道,
What i see is how i feel我看到的和我感到的
and damn l\'m alone和我 多么的孤独
2007年2月10日 星期六
| [+/-] |
自动化测试的思考和总结之功利篇 |
上周参加公司的自动化测试研讨会,今年的主题是ROI(投资回报),个人感觉这是一个很严肃的话题,也是领导最关心的一个问题。不过谈测试自动化的投资回报似乎并不是一件容易的事情。测试自动化本身是一个需要持续投入的系统工程。他并不像开发过程一样那么容易衡量产出和回报。另外,对于测试自动化的投资回报似乎不应该在一开始提到一个很高的高度。否则对自动化的开展非常不利。
另外,测试自动化并不是简单的把手工的测试转化成自动化的代码或者脚本这么简单的过程,而是要贯穿在产品的生命周期中,进行不断地执行,只有不断地执行,才能得到收益,根据经验,回归测试的自动化测试用例在不考虑被测对象改变带来自动化测试脚本维护的前提下,反复执行4-7轮才能收回成本。如果被测对象本身不是十分稳定,或者缺陷比较多,产品不成熟,这个时候介入测试自动化是非常得不偿失的。
测试自动化在很大程度也依赖于被测对象或者被测设备的稳定性,系统的设计应该考虑到可测试性,Design for Test。测试自动化越早加入到产品的开发周期,成功的机会越大。
关于测试自动化的效果衡量不是简单的发现了多少缺陷,其实自动化测试并不能比手工测试发现更多的缺陷,如果要发现更多的缺陷,一定要进行必要的手工测试。自动化测试的效果或者投资回报可以通过其他一些方法进行衡量,比如节省的测试人力成本,可以通过统计手工测试的时间,自动化测试的开发时间,自动化测试的执行之间,执行次数,刨去维护时间,进行计算得到。另外,还可以从回归测试能加快产品的发布时间上进行衡量。
最后,关于产品的自动化程度,究竟多少比例的产品需要被自动化,这个取决于产品本身,以及这个产品本身可以被自动化的程度有关系,还要考虑自动化所需要花费的代价。一般来说,不是所有的测试用例都需要自动化,也不是所有的测试用例都能够自动化。据个简单的例子,有一个测试用例,需要重新启动机房里面一台服务器,常规来说,是不能也不需要自动化。但是有没有可能自动化呢?肯定有,不过肯定不会为了这个自动化这个测试用例而去花费巨大的代价开发一个机器人帮你完成这个任务。当然这是一个极端的例子。目的是告诉大家,不是所有的测试用例都需要自动化,也不是所有的用力都能自动化。衡量的依据是不同产品和代价得多少。
--end
2007年2月9日 星期五
| [+/-] |
二十世纪最狂妄的演讲 |
埃里森,甲骨文公司CEO,是当今仅次于盖茨的第二富翁。不过,也有人网上和他开玩笑,以下是网上流传的他在耶鲁大学2000年毕业典礼上的致词(可以肯定这不是真的)。
耶鲁的毕业生们,我很抱歉一一如果你们不喜欢这样的开场。我想请你们为我做一件事。请你一一好好看一看周围,看一看站在你左边的同学,看一看站在你右边的同学。请你设想这样的情
况:从现在起5年之后,10年之后,或30年之后,今天站在你左边的这个人会是一个失败者
右边的这个人,同样,也是个失败者。而你,站在中间的家伙,你以为会怎样?一样是失败者。失败的经历。失败的优等生
说实话,今天我站在这里,并没有看到一千个毕业生的灿烂未来。我没有看到一千个行业的一千名卓越领导者。我只看到了一千个失败者。你们感到沮丧。这是可以理解的。为什么,我,埃里森,一个退学生,竟然在美国最具声望的学府里这样厚颜地散布异端?我来告诉你原因。因为,
我,埃里森,这个行星上第二富有的人,是个退学生,而你不是。因为比尔·盖茨,这个行星上最富有的人一一就目前而言一一是个退学生,而你不是。因为艾伦,这个行星上第三富有的人,也退了学,而你没有。再来一点证据吧,因为戴尔,这个行星上第九富有的人一一他的排位还在不断上升,也是个退学生。而你,不是。
……你们非常沮丧。这是可以理解的。
现在,让我打击你一下。我要相当诚挚地指出:你们的文凭不是白拿的。你们中的大多数,我猜,已经在这里花费了四五年时光,你们将以各种方式在未来使用你所学的东西。你们已经确立了好的工作习惯。你们已经建立了能帮你沿这条路前进的人际网。你们已经将自己这辈子与“治疗”这个词建立了一种联系。一切很好。因为事实上,你们需要这些。
你们将来需要这些有用的工作习惯。你将来需要这种“治疗”。你需要它们,因为你没辍学,所以你永远不会成为世界上最富有的人。哦,当然,你可以,也许,以你的方式进步到第10位,第 11位,就像史蒂夫·鲍尔默,但,我没有告诉你他在为谁工作,是吧?根据记载,他是研究生时辍的学,开化得稍晚了些。
现在,我猜想你们中间很多人,也许是绝大多数人,正在琢磨,“我能做什么?我究竟有没有前途?”当然没有。太晚丁,你们已经吸收了太多东西,以为自己懂得太多。你们再也不是19岁了。你们有了“内置”的帽子,哦,我指的可不是你们脑袋上的学位帽。
嗯……你们已经非常沮丧啦。这是可以理解的。所以,现在可能是讨论实质的时候啦一一绝不是为了你们,2000年毕业生。你们已经被报销,不予考虑了。我想,你们就偷偷摸摸去干那年薪20万的可怜工作吧,在那里,工资单是由你两年前辍学的同班同学签字开出来的。事实上,我是寄希望于眼下还没有毕业的同学。我要对他们说,离开这里。收拾好你的东西,带着你的点子,别再回来。退学吧,开始行动。我要告诉你,一顶帽子一套学位服必然要让你沦落……就像这些保安马上要把我从这个讲台上撵走一样必然……(此时,Oracle CEO被带离了讲台)
人物介绍:
姓名:拉里.埃里森(Larry·Ellison),俄罗斯移民的美国犹太人后裔
年龄:57岁,出生于1944年曼哈顿
婚史:曾经历过3次婚姻
学历:读过三所大学,伊利诺斯大学、芝加哥大学、西北大学,后辍学
人生目标:击败微软,成为世界最大的软件企业是我的一大目标。我成功并不重要,重要的是其他所有人都失败了,那时我才是真正的成功。
惊人手笔:
1、他曾经想花2000万美元购买一架俄罗斯米格战斗机,令美国海关手足无措。
2、开着一架意大利产战斗机在太平洋上空和别人进行模拟空战。
3、因冒险玩命多次住进医院:上大学踢球时弄断过鼻梁骨,在夏威夷冲浪时扭伤过颈骨,还有一次因骑车摔断过肘骨。
4、拥有一架拆除武器的意大利产‘马尔切蒂S.211’型战斗机。
2007年2月8日 星期四
| [+/-] |
如何判断一个字符串是否为数字或日期? |
转自Eygle大侠的一篇文章,感受颇深:
这就是区别.
高手遇到问题,总是说:自己写一个吧!
新手遇到问题,总是问:这个怎么实现?
昨天有一个朋友在MSN上问,如何判断一个字符串是否为数字?
我说,写一个函数吧。于是给出了一个例子:
SQL> CREATE OR REPLACE FUNCTION is_number (parmin VARCHAR2)
2 RETURN NUMBER
3 IS
4 val NUMBER;
5 BEGIN
6 val := TO_NUMBER (NVL (parmin, 'a'));
7 RETURN 1;
8 EXCEPTION
9 WHEN OTHERS
10 THEN
11 RETURN 0;
12 END;
13 /Function created.
SQL> select is_number('a') from dual;
IS_NUMBER('A')
--------------
0SQL> select is_number('0.998') from dual;
IS_NUMBER('0.998')
------------------
1SQL> select is_number('9999999999999999') from dual;
IS_NUMBER('9999999999999999')
-----------------------------
1
今天,这个朋友在MSN上又问:如何判断一个字符是否是日期?
我说,再写一个函数吧。
补注:由于session的语言设置会影响日期的输出格式,所以时间被转换为字符可能有多种形式。
以下这个函数只能满足部分情况,仅供参考。
SQL> CREATE OR REPLACE FUNCTION is_date (parmin VARCHAR2)
2 RETURN NUMBER
3 IS
4 val DATE;
5 BEGIN
6 val := TO_DATE (NVL (parmin, 'a'), 'yyyy-mm-dd hh24:mi:ss');
7 RETURN 1;
8 EXCEPTION
9 WHEN OTHERS
10 THEN
11 RETURN 0;
12 END;
13 /
Function created.
SQL> select is_date('a') from dual;
IS_DATE('A')
------------
0SQL> select is_date('2004-05-05') from dual;
IS_DATE('2004-05-05')
---------------------
1SQL> select is_date('2004/01/01') from dual;
IS_DATE('2004/01/01')
---------------------
1SQL> select is_date('01/01/04') from dual;
IS_DATE('01/01/04')
-------------------
1SQL> select is_date('01-jan-04') from dual;
IS_DATE('01-JAN-04')
--------------------
1
这两者是何其相似啊!
参考原文--end
2007年2月3日 星期六
| [+/-] |
天堂里没有忧愁--沉痛悼念丽丽 |

为什么??这究竟是为什么??
昨天看到曾勇发的短信,"丽丽昨天上吊自杀了",我真的不敢相信自己的眼睛.
活泼可爱的丽丽,自从毕业之后就一直没能见过一面,去年她来过一次深圳
我们最近的时候相隔竟然不到一公里,而因为行程,居然没有见着,想不到...
一直都记得她那铜铃般灿烂的笑声,可是以后再也听不到了,这究竟为什么...
祝福丽丽在天堂能得到她的幸福....
丽丽,一路走好~~
五四六零上的部分留言:以此来纪念曾经的活泼可爱的丽丽
留言者: 张皓
可从上午至今,一直没有落泪,难以面对的事实使我精神麻木!
但现在,看着这行行思念和祝福,泪水夺眶而出!
她将所有的快乐播撒给了我们,然后在那天悄悄的走开!
然而在红尘寂寂的生活中,我想我居然并没有时常想起她,只会独自的享受"开心果"的开心.真的,现在,今天,明天
请记住她,请记住那天!
并请加上永远的
留言者: 陈艳琴
留言者: 董玉华
到了他单位,门卫奇怪地看着我,我说进去找人,工程机所的×××,然后进去,正是他们下班的时候,每个人匆匆忙忙地走过,我呆呆地,没有人注意到我,穿过第一栋楼的大厅,他站在那等我,看到他,我泪水又下来......
他问:是不是真的?会不会是弄错了啊?
我也宁愿相信这不是真的,张帆在电话里失声痛哭,我也哭。
前段时间她还说有空来青岛玩,我也说我全程陪伴的,而这个,也是她许给我的空头承诺。
眼泪流干心被掏空........
留言者: 黄刘华
谢谢伟光,新运能发起这个捐款号召
留言者: 熊英
天堂是什么模样,祈祷你在天堂不再不快乐,不再没有人陪你说话,你现在应该知道了是不是和梦中一样,那里应该没有痛苦没有烦恼.
你blog最后的链接是"查无此人",时间是2006年11月11日,你离开的时间是2007年2月1日,没有人知道你承受多少痛苦,你把关于你的一切永远的永远的带走了......
我知道,每个人都会离开这个世界的,可是你离开的方式是这么壮烈.
我们再也联系不到你了,再也不知道另一个世界你的喜怒哀乐了.
留言者: 尹雪辉
正如伟光所言,彭丽选择了她自己的道路,我们惟有送上自己的祝福。
脑海里,彭丽的音容笑貌历历在目。毕业后,大家各赴前程,和彭丽也只见过2面。一次彭丽来上海进修,一次在长沙母校重逢。
给女友电话,告之彭丽的事情,女友大声叫着,不会吧,这么一个爱笑的女孩,这么一个开朗的女生,就这么走了?虽然只有一面之缘,餐桌上,那清朗略带腼腆的笑容给每个人留下深刻的印象。
而我,也始终无法接受这样的现实。在长沙,也就2,3个月之前,彭丽站在铁道校区大门口等待我们。仍然感受着只属于她的那种温柔,那种温暖。笑着,望着……
我们始终无法走进彭丽的思维,就像一个正常人来考虑这样的事情一样,而她还是去了。但那动人的笑容,会浮现在眼前。生命啊,何其重,何其轻?
愿她的天堂,像她一样,充满欢笑,充满阳光。
我们也会把你的笑容珍藏,在每年的今日,再和你一起共享。
留言者: 高洪霞
留言者: 薛_云志^
一段时间没见她上网,一直以为年底工作忙。没想到却是这样的一个消息...
msn上,有一个名字,永远也无法上线了...
lily的照片还在下面,那笑容还是很灿烂...
lily走好,天国一切平安。
留言者: 周新运
逝者已经远去,留下的只是无尽的伤痛。
现在最痛苦莫过于丽丽的父母和亲人。
丽丽的父母都是农民,丽丽是他们家经济上的主力。我们所能做的也就是奉献自己的绵薄之力,代丽丽孝敬一下丽丽的爸妈。
我和伟光商量后,打算这样做。
伟光设立一个帐号,大家往这个帐号上面汇过去,汇总了之后,由伟光等人做代表送给丽丽的爸妈。具体的帐号信息稍后伟光会公布出来。
此外,由于一时联系不上很多同学,请知道这个消息的同学给身边的同学转发通知一下,大家齐伸手,谢谢大家。
2007年2月1日 星期四
| [+/-] |
自动化测试的思考和总结之工具利器篇 |
谈到自动化测试,自然离不开自动化测试工具. 其实自动化测试和自动化测试工具还有很大的差别,不过很多人提起来自动化测试就想到自动化测试工具,其实是不全面的,更有人提到自动化测试就想到QTP,LoadRunner,Test Manager,那就更是片面的了。
自动化测试工具是开展自动化测试的必备利器,就好像你要进行性能测试自动化,但是缺少工具。传统的方法比如压力测试是号召大伙某个固定的时间,登陆某台测试对象或者测试设备进行同时测试。这在现在看来是有些不切实际,而且实际的测试效果往往因为无法有效组织或者无法模拟实际情况大打折扣。而利用自动化测试工具就可以很好的满足这样的需求,最简单的就是模拟500用户并发测试web服务器的性能。
不单单性能测试,往往功能测试自动化也是这样的,只是性能测试表现得更加明显罢了。功能测试自动化如果能有效的利用自动化测试工具,有的时候可以收到事半功倍的效果。
简单的分析到这里,关于测试工具的一个很全面地总结,可以参考前面的一篇日志。
--to be continued
| [+/-] |
软件测试工程师面试题 |
以前做过测试,有志于从事测试,目前正在从事测试或者将来要从事测试的朋友都来问问自己 ,这些问题如果问到我应该怎么回答.
软件测试工程师面试题
01. 为什么要在一个团队中开展软件测试工作?
02. 您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03. 您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
06. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
07. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
08. 您认为做好测试计划工作的关键是什么?
09. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
10. 您认为做好测试用例设计工作的关键是什么?
11. 请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。
12. 您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
13. 您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。
14. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
15. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
16. 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
-end



REM Start Controller:
wlrun7.ini
then right-click on a group to select "Show 
Quality Web Systems: Performance, Security, and Usability (Addison-Wesley Professional; Aug. 2001)
The Web Testing Handbook (S T Q E Pub, Jan. 2001)
Download [after required registration] the 10 day trial from
Disable your anti-virus software (Symantec, McAfee, etc.) before invoking on installers.
Virus Detection engines (such as Hauri versions since May 18) may find that program
this installation manual
so that I can click into that folder from anywhere. The pause command ensures that the command window does not disappear automatically. Alternately, from within a command window I can just type "L" and press Enter.



