人是测试工作中最有价值也是最重要的资源,没有一个合格的、积极的测试小组,测试就不可能实现。然而,在软件开发产业中有一种非常普遍习惯,那就是让那些经验最少的新手、没有效率的开发者或不适合干其他工作的人去做测试工作。这绝对是一种目光短浅的行为,对一个系统进行有效的测试所需要的技能绝对不比进行软件开发需要的少,事实上,测试者将获得极其广泛的经验,他们将遇到许多开发者不可能遇到的问题。
①、沟通能力
一名理想的测试者必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者)和非技术人员(客户,管理人员)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,不幸的是这两类人没有共同语言。和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上。而和开发者谈相同的信息时,就必须将这些活重新组织以另一种方式表达出来,测试小组的成员必须能够同等地同用户和开发者沟通。
②、移情能力
和系统开发有关的所有人员都处在一种既关心又担心的状态之中。用户担心将来使用一个不符合自己要求的系统,开发者则担心由于系统要求不正确而使他不得不重新开发整个系统,管理部门则担心这个系统突然崩溃而使它的声誉受损。测试者必须和每一类人打交道,因此需要测试小组的成员对他们每个人都具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度。
③、技术能力
就总体言,开发人员对那些不懂技术的人持一种轻视的态度。一旦测试小组的某个成员作出了一个错误的断定,那么他们的可信度就会立刻被传扬了出去。一个测试者必须既明白被测软件系统的概念又要会使用工程中的那些工具。要做到这一点需要有几年以上的编程经验,前期的开发经验可以帮助对软件开发过程有较深入的理解,从开发人员的角度正确的评价测试者,简化自动测试工具编程的学习曲线。
④、自信心
开发者指责测试者出了错是常有的事,测试者必须对自己的观点有足够的自信心。如果容许别人对自己指东指西,就不能完成什么更多的事情了。
⑤、外交能力
当你告诉某人他出了错时,就必须使用一些外交方法。机智老练和外交手法有助于维护与开发人员的协作关系,测试者在告诉开发者他的软件有错误时,也同样需要一定的外交手腕。如果采取的方法过于强硬,对测试者来说,在以后和开发部门的合作方面就相当于“赢了战争却输了战役”。
⑥、幽默感
在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。
⑦、很强的记忆力
一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。因为许多新出现的问题和我们已经发现的问题相差无几。
⑧、耐心
一些质量保证工作需要难以置信的耐心。有时你需要花费惊人的时间去分离、识别和分派一个错误。这个工作是那些坐不住的人无法完成的。
⑨、怀疑精神
可以预料,开发者会尽他们最大的努力将所有的错误解释过去。测式者必须听每个人的说明,但他必须保持怀疑直到他自己看过以后。
⑩、自我督促
干测试工作很容易使你变得懒散。只有那些具有自我督促能力的人才能够使自己每天正常地工作。
11、洞察力
一个好的测试工程师具有“测试是为了破坏”的观点,捕获用户观点的能力,强烈的质量追求,对细节的关注能力。应用的高风险区的判断能力以便将有限的测试针对重点环节.
转载自CSDN
--end
2007年1月29日星期一
[+/-] |
好的测试工程师应具备的素质 |
2007年1月13日星期六
[+/-] |
Oracle Database 10g:为DBA提供的最佳前20位的特性(二) |
第一个特性就是前面的那篇<Oracle10g中如何追踪数据操作历史>
从本周开始,陆续介绍这20位特性,敬请留意。
Oracle Database 10g:为 DBA 提供的最佳前 20 位的特性第 2 周
第 2 周还要多长时间?:回滚监视
为用户提供对回滚操作时间的准确评估
我们还在这地方吗?还要多长时间?
听起来熟悉吗?这些问题可能是您在前往孩子们最喜爱的主题公园的路上,从汽车后座上提出来的,并且经常是不断地、越来越频繁地提出来。您不想告诉他们还确切需要多长时间吗 — 或者更简单些,您自己知道答案吗?
同样,在回滚长期运行的事务时,经常会有些用户不停地询问相同的问题。这些问题是合理的,因为该事务进行了锁定,正常的处理经常受到回滚进程的影响。
在 Oracle 9i Database 及更低的版本中,您可以执行查询
SELECT USED_UREC
FROM V$TRANSACTION;
该语句返回由当前事务所使用的重做记录的数量,而如果重复地执行该语句,将会显示连续减少的数值,因为回滚进程在其处理过程中会释放重做记录。随后您可以通过对一段间隔进行快照来计算其速率,然后推断出评估结束时间的结果。 虽然在视图 V$TRANSACTION 中有一个名为 START_TIME 的列,但该列只显示整个事务的起始时间(也就是在回滚执行之前)。因此,除了推断,您没有办法知道回滚实际上是在什么时间执行的。
事务回滚的扩展统计信息
在 Oracle Database 10g 中,这种操作很简单。当事务回滚时,事件被记录在视图 V$SESSION_LONGOPS 中,该视图显示长期运行的事务。用于回滚,如果进程耗时超过六秒,则记录出现在该视图中。在回滚执行以后,您可能会隐藏所查看的监视屏幕并执行以下的查询:
select time_remaining
from v$session_longops
where sid = <sid of the session doing the rollback>;
既然您意识到这个视图 V$SESSION_LONGOPS 的重要性,就让我们来看它必须提供的其他信息。该视图在 Oracle Database 10g 的预览版中提供,但没有捕获关于回滚事务的信息。为了以一种易读的方式显示所有的列,我们将使用由 Tom Kyte 在 AskTom.com 中所描述的 PRINT_TABLE 函数。此过程简单地以表格方式而不是常用的行方式来显示列。 SQL> set serveroutput on size 999999
SQL> exec print_table('select * from v$session_longops where sid = 9')
SID : 9
SERIAL# : 68
OPNAME :Transaction Rollback
TARGET :
TARGET_DESC :xid:0x000e.01c.00000067
SOFAR : 20554
TOTALWORK : 10234
UNITS :Blocks
START_TIME :07-dec-2003 21:20:07
LAST_UPDATE_TIME :07-dec-2003 21:21:24
TIME_REMAINING : 77
ELAPSED_SECONDS : 77
CONTEXT : 0
MESSAGE :Transaction Rollback:xid:0x000e.01c.00000067 :
10234 out of 20554 Blocks done
USERNAME :SYS
SQL_ADDRESS :00000003B719ED08
SQL_HASH_VALUE : 1430203031
SQL_ID :306w9c5amyanr
QCSID : 0
注意,此处显示对行的所有更改,即使删除并重新插入行时也是如此。VERSION_OPERATION 列显示对该行执行的操作 (Insert/Update/Delete)。完成这些操作不需要历史表或额外的列。 让 我们仔细检查这些列中的每一列。在会话中可能会有超过多个长期运行操作 — 特别是因为视图中包含以前的会话中所有长期运行操作的历史。列 OPNAME 显示该记录用于“事务回滚”,这为我们指出了正确的方向。列 TIME_REMAINING 显示所评估的剩余时间秒数,这在前面已经描述过,而列 ELAPSED_SECONDS 显示到目前为止所消耗的时间。
那 么该表如何提供对剩余时间的评估呢?可以在列 TOTALWORK 中找到线索,该列显示要完成的“工作”总量,还有 SOFAR 显示到目前为止已经完成了多少工作。工作的单位显示在列 UNITS 中。在本例中以数据块为单位;因此,到目前为止已经回滚了 20,554 个数据块中共计 10,234 个数据块。此操作到目前为止已消耗了 77 秒。因此,剩余数据块将消耗:
77 * ( 10234 / (20554-10234) ) ˜ 77 秒
但您不必利用这种方法来获得该数值,它已经清楚地显示出来了。最后,列 LAST_UPDATE_TIME 显示有关当前视图内容的时间,这将用于加强您对结果的解释。
SQL 语句
另一部分重要的新信息是正在被回滚的 SQL 语句的标识符。在早先,SQL_ADDRESS 和 SQL_HASH_VALUE 用于获取正在被回滚的 SQL 语句。新的列 SQL_ID 对应于视图 V$SQL 的 SQL_ID,如下所示:
SELECT SQL_TEXT
FROM V$SQL
WHERE SQL_ID = <value of SQL_ID from V$SESSION_LONGOPS>;
该查询返回所回滚的语句,因此提供了额外的校验以及 SQL 语句的地址和散列值。 并行实例恢复
如果 DML 操作是并行操作,则列 QCSID 显示并行查询服务器会话的 SID。在并行回滚事件中,如实例恢复以及随后的故障事务恢复期间,经常用到该信息经常。
例如,假设在大型的更新期间,实例异常关闭。当实例启动时,发生故障的事务被回滚。如果启用了用于并行恢复的初始化参数值,则回滚并行地而不是串行地发生,如同它发生在常规事务回滚中一样。下一步的任务是评估回滚进程的完成时间。
视 图 V$FAST_START_TRANSACTIONS 显示为回滚故障事务所产生的事务。类似的视图 V$FAST_START_SERVERS 显示对回滚进行处理的并行查询服务器的数量。这两个视图都在以前的版本中提供,但显示事务标识符的新列 XID 使得联接更方便了。在 Oracle9i Database 以及更低的版本中,您必须通过三列(USN — 重做段号,SLT — 重做段中的存储区号,SEQ — 序列号)来联接视图。其父集显示在 PARENTUSN、PARENTSLT 和 PARENTSEQ 中。在 Oracle Database 10g 中,您只需将其联接到 XID 列,其父 XID 由直观的名称表示:PXID。
最有用的信息部分来自于 V$FAST_START_TRANSACTIONS 视图中的列 RCVSERVERS。如果发生并行回滚,则该列中显示并行查询服务器的数量。您可以查看该列,了解启动了多少并行查询进程:
select rcvservers from v$fast_start_transactions;
如果输出是 1,则事务正在由 SMON 进程进行串行回滚 — 显然这是完成工作的一种不充分的方法。您可以将初始化参数 RECOVERY_PARALLELISM 的值改为除 0 或 1 以外的值,重新启动实例进行并行回滚。随后您可以执行 ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK = HIGH,按 CPU 数量的 4 倍创建并行服务器。 如 果上述查询的输出显示不是 1,则正在进行并行回滚。您可以查询同一视图 (V$FAST_START_TRANSACTIONS) 来获得父事务和子事务(父事务 id — PXID,而子事务 id — XID)。XID 还可用于联接此视图与 V$FAST_START_SERVERS,以获得其他详细信息。
结论
总之,当在 Oracle Database 10g 中回滚长期运行的事务时 — 无论是并行实例恢复会话还是用户执行的回滚语句 — 您所需做的一切就是查看视图 V$SESSION_LONGOPS 并评估还需要多少时间。
现在,如果能预测到达主题公园的时间就好了!
--end
2007年1月10日星期三
[+/-] |
开源测试工具的完整解决方案 |
开源软件运动正在获得很大成功,正在改变软件业的开发模式、运营方法等,也自然改变着软件测试的方法,借助开源软件测试工具完全可以构造一个完整的测试解决方案,可以极大地提高测试效率,又能大大的降低测试成本。从单元测试、功能测试到性能测试,从Web页面测试到VoIP/Telephony等一些多媒体应用的测试,直至测试的管理平台和缺陷跟踪系统,能覆盖整个测试工作领域。
1. 测试模型:见 开源软件测试模型 ,阐述了开放源码软件测试模型框架以及环境、元素和技术等。
2. 单元测试工具:JUint (大家太熟悉了)- see: http://www.junit.org/index.htm
针对各种语言 (C/C++/C#, PHP, SQL ) Cactus, Cgreen, Check, CppTest, NUnit, NUnitForms , PHPUnit, SQLUnit, ...还有针对各种对象(HTTP, XML, Database, ) 进行的单元测试:HttpUnit, XMLUnit, DBUnit, ObjcUnit, SIPUnit, ...Mockrunner用在J2EE环境中进行应用程序的单元测试,不仅支持Struts actions, servlets,过滤器和标签类还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。
3. Web 功能测试 : 要数 Selenium,see: 强大的Web开源测试工具—Selenium
再结合 Ant, EMMA 一起使用就更完美了, see:使用 EMMA 测量测试覆盖率
又如:Canoo WebTest,
功能测试工具很多,可以发现多达几十个:http://www.opensourcetesting.org/functional.php
4. Java 客户端,可以使用 Abbot, see: http://abbot.sourceforge.net/doc/overview.shtml
Abbot是一个用来测试Java GUIs的框架, 用简单的基于XML的脚本或者Java代码,就可以开始一个GUI.
5. 性能测试, 著名的有 Jmeter 和 OpenSTA,使用都很方便
Jmeter可以完成针对静态资源和动态资源( Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等)的性能测试。 Jmeter 可以结合 Badboy 来使用,录制测试脚本。
性能测试工具很多,可以访问 http://www.opensourcetesting.org/performance.php
6. 数据库测试: DBMonster, DBProbe, OraRep, phpMyAdmin
OSDL Database Test Suite, 是根据Linux开发人员需要而开发的测试框架中数据库测试工具套件,具有很好的实用价值。 see: http://www.osdl.org/lab_activities/kernel_testing/osdl_database_test_suite/
More: http://dbcommander.sourceforge.net/
7. 多媒体(VoIP/Vedio)、IP电话 等测试Ethereal, AuthTool, ... SIPp, Sofia SIP, ... Seagull, ... Asterisk - the Open Source PBX,X-Lite
其中经常使用的有:Ethereal, SIPp 和 Seagull。而Asterisk 不仅可以作为测试工具,还可以构造企业内部电话网络。
更多的还有:http://voipsa.org/Resources/tools.php
8. 网络安全性测试
#1 Nessus : Premier UNIX vulnerability assessment tool
#2 Wireshark : Sniffing the glue that holds the Internet together
#3 Snort : A Everyone's favorite open source IDS
#4 Netcat : The network Swiss army knife
还有许多网络监控工具,pls visit: http://www.slac.stanford.edu/xorg/nmtf/nmtf-tools.html
9. 缺陷跟踪
Bugzilla一款不错的软件缺陷管理工具
Mantis是一款基于WEB的软件缺陷管理工具,配置和使用都很简单,适合中小型软件开发团队
10. 测试平台
TestMaker (solve functionality, scalability and performance of services)- http://www.pushtotest.com/
Eclipse Test & Performance Tools Platform (TPTP 4.3)
11. Reference
http://www.eclipse.org/tptp/
http://sourceforge.net/search/?type_of_search=soft&words=Test+Tool
http://www.opensourcetesting.org
http://testingfaqs.org/
http://www.pushtotest.com/
http://www.openqa.org/
http://www.aptest.com/webresources.html
注:测试自动化可以做到90%或更高,但也不能完全代替手工测试。
参考:
"Test Automation Snake Oil" (James Bach, http://www.satisfice.com/articles/test_automation_snake_oil.pdf )
"Automation Myths" (M. N. Alam, http://www.benchmarkqa.com/PDFs/automation_myths.pdf )
"When Should a Test Be Automated?" (Brian Marick, http://www.stickyminds.com/r.asp?F=DART_2010 )
转载朱少民老师的博客<软件测试和质量专栏>
--end
2006年12月30日星期六
[+/-] |
腐败的成长过程 |
腐败的成长过程
1.世上本没有腐败
小村过去没有腐败。主要是因为高度透明:
村里有几只羊,几只是公羊几只是母羊,这只羊长得啥模样,那只羊长得啥模样,人们都清清楚楚。从村东到村西,大人走需要几步到头,小孩子走需要几步到头,人们也都清清楚楚。
村长今天干啥了,昨天干啥了,白天干啥了,晚上干啥了,人们都清清楚楚。村长老婆今天干啥了,昨天干啥了,白天干啥了,晚上干啥了,人们都清清楚楚。村 长孩子今天干啥了,昨天干啥了,白天干啥了,晚上干啥了,人们也都清清楚楚。村长家有几个亲戚,住在哪个村子。哪个亲戚有钱,哪个亲戚没有钱,村里的人也 都了如指掌。
小村过去没有腐败的另一个原因是,一个人的行为都受到其他人的制约,大家包括村长和村长家里的人谁都不敢去做不道德的事情,怕受到惩罚。
小村就这么大,只要你去干坏事,肯定会被人知道,这样导致的后果可能是:你家养的猪被人打断腿,你家的孩子被人嘲笑……
那时候的贫富差距很小,即便是村长也不敢违反这个规矩,因为他们家里也需要养猪、养鸡、养鸭之类的。
村里的人常说:好事不背人,背人没好事。村长有事也不敢瞒着大家。
2.腐败的产生和第一次反腐败
村长最早被揭发出来的一件事情是,大集体的时候,村里杀羊,村长在家里悄悄藏了一条羊腿。
一只羊长几只眼睛几条腿,是固定的,村里喂养的所有的羊都是健康的,没有少一条腿的,也没有多一条腿的。所以,村长的行为很快被揭发出来。
村长说是他老婆干的,当着众人的面把他老婆骂了一顿。
但很快又有人说曾经亲眼看见村长拿着羊腿悄悄往家里跑,村长无奈,只好承认了。村长痛哭流涕,说自己对不起大家,愿意受罚。
一些老人看不上去了。“不就是一条羊腿吗?”村里人宽恕了村长。
村长没有受到任何惩罚,羊腿还归村长所有。村长家养的猪腿没有被打断,村长家养的鸡子、鸭子也都没有丢失……
3.腐败的升级和第二次反腐败
不久,又发生了一件事情。村长家里传出了小羊的叫声。而在此之前,村子里谁也没有看见村长或村长家里的人去买羊羔。村子里的羊也没有丢失的,因而没有理由怀疑村长偷了集体的羊。
但是,有人在几天前看见:村长曾经把集体的一只羊牵到自己家里,几天后又牵回了集体。
问题是,村长牵走的那只羊是只母羊,而且是只即将临产的母羊,牵回来的时候却是一只已经生产过的母羊。这就是村长家里小羊的来历。
村长这次作弊手段明显提高了,胆子也大了,从偷羊腿到侵占整只小羊。
太过分了!村里的人议论纷纷,但谁也没有证据。反腐败的难度在加剧。
人们开始更紧密地盯着村长的一举一动。
4.腐败的发展与第三次反腐败
一天深夜,村长家里升起了炊烟,炊烟之后就散发出了香喷喷的肉味儿。
村长家在煮肉。
村里的几个年轻人摸到了村长家里。
村长一片惊慌之色。村长背地里杀了集体的一只羊,村长已经准备好了借口:就说羊丢了。
村里的人人赃俱获。这次,村里人不再原谅村长。
第二天,村里人告到了公社。公社把村长骂了一顿,责令其写检查。但村长很快度过了危机,他交检查的时候,把羊肉、羊骨头也全部交了上去。公社的头头原谅了村长。
腐败的萌芽似乎被消除了。
村长开始总结经验教训,然后他做了三件事。一是与上层拉关系,为自己制造保护伞。二是加高了墙,墙是土墙,利用职权找村子里的劳力帮忙,多记几天工分就摆平了。三是从外面买了条大狼狗。村长有肉吃,狼狗就有骨头啃,所以,狼狗全力捍卫主人,谁反对村长它咬谁。
5.腐败的不可救药
村长渐渐与群众脱离。过去,村长做事情希望找群众商量,群众有事情也找村长。但现在两不来往,村长只和上面的人打交道。
改革开放后,村长家里蒸蒸日上。上面说了,让一部分人先富起来,村长自然不甘落后。
村里的人都知道村长很腐败,有人把悄悄地把掌握的情况反映给乡里。但乡长很快把举报人的姓名告诉了村长,村长马上就带人去实施报复。
“这狗X的,心黑了,翅膀也硬了”。村里的人在背后骂。
骂归骂,谁也拿村长没有办法。
村长背后有乡长做后台,搬倒村长首先要把乡长搬倒,乡长背后又有县长作后台……
6.腐败的规则
村长把贪污的钱留下一半自己用,剩下的一半送给比他官大的乡长。村长完蛋,乡长也跟着完蛋。所以,乡长保护村长。
乡长贪污的钱也不全要,他拿出一半送给县长,乡长完蛋,县长跟着完蛋,所以,县长保护乡长。
……
这样一级一级地延续,一级一级地缠绕,腐败的队伍越来越大,腐败的力量越来越大。
这是腐败的基本游戏规则,那些贪得无厌的,被窝里放屁——独吞的,则在反腐败运动中落网。
上面强令反腐败,小村里也不例外,反腐败小组组长由村长亲任。
7.腐败的来源:腐败源于民
村长的钱来源于村民,各种摊派雪片般落到村民身上。养猪养羊都要交钱,村长说:“农民要交农业税,养猪属于农业,自然要交税。再说了,人有人头税,猪自然也有猪头税”。
负担越来越重。后来,谁家的猪、狗、羊交配也得交税。村民骂说:村长连狗日的、猪日的、羊日的钱也挣,咋不怕报应哩!
村民去上访,先是被乡里拦住,后是被县里拦住,接着是被市里栏住……
村民好不容易把事情反映到了上面,上面批示给下面,下面再批示给更下面的下面。
批示最后到了村长手里。
8.腐败的反思:都怪那条羊腿?
村里成立了减轻农民负担小组,组长是村长,成员都是村长的亲戚。
贼喊捉贼,负担还减轻个屁哩!
一位老人受不了,一气之下喝了毒药。临终前,他断断续续地重复着一句话:“不应该原谅,那条羊腿……那条羊腿,真的不应该原谅……”
村长的腐败越来越严重。
但是,村长后来的一切腐败都与羊腿无关。
--end
2006年12月29日星期五
[+/-] |
狗日的增税 |
世上本无税,更无苛捐杂税。杂种多了,便有了杂税。苛刻毒辣、贪得无厌的杂种多了,也便有了苛捐杂税。这是小村一位老人生前曾经说过的话。
――题记
1.税的起源
村长对村民说:"流氓要凌辱你们、强盗要掠夺你们、无赖要欺压你们。你们纳税,我组织保安队保护你们,我当保长。"
村民们觉得有道理,就积极纳了税。
村长对村民说:"你们老的时候,无依无靠,我要盖养老院养活你们,你们要纳税。"
养老很重要,村民们踊跃纳了税。
村长说:"我要让你们的孩子免费上学,要盖学校,你们要纳税。"
教育实在重要,村民们又纳了税。
……
2.征税成本
小村的村民被村长的话鼓舞着,一次又一次地掏出腰包。后来,国外有杂志说,小村村民的税负世界第二高。
但是,村民们发现,流氓比过去更残忍地凌辱他们,强盗比过去更恶毒地掠夺他们,无赖比过去更冷酷地欺压他们。
因为村长自己就变成了流氓、强盗、无赖,三种恶棍习气于一身。
村长用收上来的税款,购买了一辆"伤他妈"牌的进口车,换掉了驴车。村长每天开着"伤他妈"到村里收税,收十块钱的税,耗五块钱的油。后来,全世界排名,小村的征税成本位居第一。
这是小村有史以来第一次在国际排名中夺到冠军,村长开着"伤他妈",激动地像驴子一样嗥叫:创新高了!创新高了!又创新高了!
3.税的用途
小村的税收年年创新高。村长越来越逍遥,洗脚、泡妞、吃喝、公款旅游、贪污……
村长的承诺没有一样兑现。
村长用收上来的钱圈养了一群流氓,结交了一群强盗,拉拢了一帮无赖。治安恶化,村民没有安全感;承诺的养老体系没有建立,因为钱都被村长挪用了,贪污了;所谓的免费上学,却是交了这钱交那钱。所谓的学校也仅仅是几个草棚子……
"我纳税是为了换安全、换养老、换教育,村长一样也不兑现,俺不缴税了。"有村民不愿意再缴税,村长开着"伤他妈",带领一群流氓,抄了村民的家。
为了避免偷税,村长说:"年收入12元钱的都要申报,炒股赔钱的我不管,赚钱的要申报!"
4.增税
缴纳了那么多年的税,却什么也没有得到。一切都需要另外花钱。小村的人越来越穷,小村的人水深火热。
税收到最后,村长也开始为难,能收的税都收了,小村的税负已经从世界第二上升到了世界第一。
村长苦思冥想,要设置新的税种!
村长组织一帮圈养的二奶专家、学者讨论如何增税。
这时,两条交配的狗进入村长和一群与会者的视野。
他们异口同声:"狗日也要纳税!"于是,"狗日税"横空问世。
村长找到两家养狗的村民,强收了税。
5.再增税
村长每天派人盯着狗,看谁家的狗交配,就现场录像。村长说,"证据确凿,就不怕这些刁民不认帐!"
后来,小村的人不敢养狗了,悄悄把狗放了。
村长说:"放了也是你家的狗,照样得纳税。"
狗通人性,狗知道,它得到一时的快感,主人就得遭一年的罪。于是,所有的狗见了村长都忍着欲望,再也不交配。
村长盯着狗的下半身看,狗就是不起反应。村长等不及了。狗不交配,今年的税收还咋创新高呢?
于是,村长脱了裤子跟狗交配。然后,村长让养狗的村民缴税。村民不干:"你规定的是'狗日税',现在是你日而不是狗日,凭什么让我缴税?"
村长说:"这还不简单!我现在就把'狗日税'改成'日狗税',我就是小村的王法。"
失身的狗跳河徇情死了。养狗的村民悲痛欲绝:纯洁的狗啊,这世道连你的清白都被权贵糟蹋啊!
6.税源枯竭
连年缴税,连年没有福利。小村盖不起房子,都住在草棚里。草棚搭得小了,不符合村长制订的规范,要罚款;草棚搭得大了,村长又要按照大户型征收保有税。
村民们买不起衣服,都用草和树叶围着腰部;收获的粮食也都交了税,村民只好吃野菜。
村民们实在受不了了。村民商量说:我们不要它的福利,我们也不要它为我们"服务",我们把一切财产都给他,我们回到原始社会还不行吗?
"没那么便宜!"村长气急败坏:"交不了税,你们把身体抵押给我,到城里打工挣钱纳税。别忘了:纳税光荣,逃税可耻。"
"我们被这狗日的绑架了!"村民们这才发现,连回原始社会的权力都被剥夺了。山洞都被村长霸占了,进山洞里住要纳税"保有税"、"排污税"、"卫生 税"……野兽也都被村长霸占了。打野兽也要缴纳"资源税"、"狩猎税"……到山洞的路上还要缴纳"养路费"、"过桥费"……
但是,当村民变得一丝不挂,税源就开始枯竭。
7.培养税源
村民再也没有钱缴税。小村成了原始部落。
村长再次召集圈养的二奶专家、学者讨论如何增税。
一位二奶专家说:"我们这里现在是原生态,是原始社会生活,在现代社会的再现,我们可以建景点,让人来参观,卖门票赚大钱。"
一位二奶学者说:"对,原生态的生活状况是现代人追求的最高境界,对环境不造成任何破坏,正好符合以人为本,是最美的人居环境。"
村长说:"好!"
村长让人把小村围起来,对外面大做宣传,许多城里人来看。"乖乖,还真像原始社会呢!瞧,那草裙多精致!"城里人啧啧赞叹。
村长大发横财。
8.税收政绩
由于收税有方,且培养了新的增长点。小村村长成了为官者的楷模。
不久,县长亲自带人前往参观。县长拉着村长的手说:"你真正做到了以人为本、绿色发展,没有想到,绿色GDP竟然在这个不起眼的地方实现了。"
小村村长因为对提高当地知名度的贡献,被授予劳模,县长还透露说准备提拔他当副乡长。
许多税务部门的领导也来小村参观学习。他们认为,小村村长是天才的税收实践者,特意请村长去做专场报告,掌声雷动,许多税务人员都咧着嘴,乐得跟傻B似的。
不久,一位著名大学聘请村长当了名誉教授。
而小村村民在被剥夺得一干二净之后,继续被一帮狗日的当猴耍。
写于
《小村》系列的题记:
小村的本名就叫小村,这使得没有到过小村也不了解小村的人很容易产生歧义。小村其实并不算小,至少与周围大大小小的村子相比是这样的。我听很多人讲起过小村的故事,这些故事构成了一部小村的历史……
2006年12月28日星期四
[+/-] |
地主返乡 |
地主返乡
1.少爷
少爷回来了。这个消息从村东头传到村西头,再从村西头传回村东头。在小村,少爷特指地主的儿子。地主在解放前跑到了台湾,少爷也跟着跑到了台湾。
乡长和村长都很高兴。上级在精简机构,由于没有一个台胞,乡里的对台办(对台湾事务办公室)正面临着被撤销的危险,对台办里面都是乡里领导的女眷,乡长老婆兼任主任。由于业务比人咬伤狗的事情还稀少,乡对台办成了一帮娘们儿打毛衣、甩扑克、唠家常的好去处。乡对台办成立多年来,以挨家挨户搜寻台胞为己任,成员也有两人发展到二十几人。乡对台办为了能够找到一个台胞,费尽了心血,他们排查了每一个祖上有人参加过国民党军队的家庭,希望从中有所发现。但是,台胞不仅没有找到一个,还被一个假台胞骗了一次,害得乡长被县长骂娘,村长被乡长骂娘。
少爷回来,村长也高兴。台胞思乡心切,也都有钱,没有多总有少吧,多少会往小村投点资,他这个当村长的也能沾点光,自然也有了一个出头露面的机会。
2.家仇
乡长让村长抓紧时间给少爷的爷爷建造一个墓,少爷爷爷的墓在文革时候被村长家里的人掘了。乡长还让村长去查找少爷先祖的资料,争取发现一些爱国志士或者有影响的伟大人物,来激发少爷的自豪感和爱国情操,自然也有利于保持长久的联系。少爷家的姓和小村的任何一家都不相同,这意味着村长必须从头开始做。村长去问他的父亲,被父亲痛骂了一顿,原来,村长和少爷家有仇,村长的爷爷就是被少爷的爷爷打死的。
村长说:“这事儿你咋不告诉我呢?”
村长父亲又痛骂:“我都给你说了几百遍了,你咋没有一点记性呢?”
村长说:“人家现在可是台胞……”
村长父亲说:“你,这不是忘本吗?你没有一点恨?你平常不是挺狠的吗?”
村长觉得谈下去,没有什么结果,就走了。
3.历史
“少爷的先人,咋不是奸贼就是叛徒呢?你是不是弄错了,少爷的爷爷咋干那么多坏事呢?”
村长拿着一组名单问乡里教历史课的老师,历史老师说,这都是事实。
村长说:“你得想办法找点正面的来,现在又不是要批判他。”
历史老师说:“书上就是这样写的。”
村长说:“你这人咋恁固执呢?岳飞破坏国家统一,民族英雄光荣称号听人说都已经被组织上取消了,秦桧也快平凡了,你咋不与时俱进呢?”
历史老师问:“就按照这种模式改?”
“就这么改!”村长掷地有声。
4.帽子
少爷也老了。
村民指着少爷,尽管他们谁也看不出过去少爷的影子。
少爷走在村头,满眼泪痕。少爷后面,跟着一位副县长和县对台办的工作人员,后面是乡长和乡对台办的工作人员,再后面是村长和村对台办的(临时成立的)工作人员。在这里,职位和辈分成正比。副县长看上去像是少爷的跟班(平辈),乡长看上去像是少爷的儿子,村长看上去像是少爷的孙子……
少爷头戴礼帽,一会儿,也许是太热了,少爷取下帽子。村长赶紧跳过去,接了去。村长手捧着帽子,毕恭毕敬的,像是捧着自己祖先的牌位。村长看着摄像镜头对着自己,赶紧从兜里拿出梳子梳了梳头。
少爷先去了他爷爷的墓地,这个豪华的墓地是村长挨家挨户摊派上来的。少爷突然跪地痛哭,副县长一霎时有点不知所措。乡长也跪了下去。村长则跟着跪倒号啕大哭:“爷爷啊!你的孙子来看你来了。”
村民就在一边骂:村长咋能给仇人下跪呢?再说,按照村里的辈分,少爷应该管村长叫叔叔啊。村长咋就成了孙子呢?
有的说:真是黄鼠狼哭耗子,那墓还不是村长家给人掘开的。
有的则说:见到台胞就这样,见到外国人还不得管人家叫祖爷爷!
5.伙伴
少爷向人打听自己儿时的一个伙伴,村民马上给他说了。
村长这边飞一般地去做工作,再三交待哪些话该说,哪些话不该说。
儿时的伙伴,经过50多年的岁月,也都是两鬓斑白的人了。少爷热泪盈眶。伙伴也想哭,看着村长恶狠狠的眼睛,没有哭出来。
“这些年你过得还好吧?”少爷问。
其实,少爷问也是多问,看看破旧的房屋,什么就不用说了。
伙伴说:“都是政府领导得好。”
少爷把村长叫过去,给村长讲他们小时候的事情,村长很夸张地笑个不停。但少爷明显感觉到了伙伴在村长身边的恐惧。少爷突然想到了鲁迅笔下的润土,当年活泼勇敢的伙伴,已经被恐惧吞没了。
少爷走的时候,伙伴突然失声说了一句话:我爹死的时候,还想给你家种地。
少爷听了眼泪都出来了。
6.怀念
少爷的家事成为村民们议论的话题。
年纪大一点的人说:少爷的爷爷作恶多端,少爷的父亲却是一个大好人。他对人很好,农忙的时候他也下地干活。从来没有看不起穷人。他有同情心,谁家日子苦得过不下去了,他也会主动给人送去一点粮食。
有的村民说:真的很怀念他。那时候,我们家里给他家干活,什么也不用管,不像现在,要了这要那……
7.投资
中午,乡里设宴款待少爷。
谈到了投资的事情。
少爷说:“我想给家乡建一座庙。”
“啥?”副县长、乡长、村长都愣了一下。
少爷说:“我十几岁就离开了家乡,现在已经是白发人了,在台湾的每一天,我都盼着到家乡看看……”
副县长说:“现在正在破除邪教,县里刚刚成立了破邪办,这时候盖庙好像不太合适,能不能投资搞点实体?”
8.危房
下午,少爷去了一趟学校。
小村的教室让少爷大吃一惊,这房子还能上课?!
少爷问村民:“教室咋这么破,学生咋这么少呢?村里不是说该进入小康了吗?”
村民谁也没有敢说话,村长的眼线可都在盯着呢。
9.学校
少爷走了时候,一脸的沉重:这么多年来,天天想家,家乡怎么变化这么大呢?人们脸上的欢乐都到哪里去了呢?
少爷最终没有建庙,他捐献出来一笔数目可观的钱,委托村里建一所好一点的学校,上面的领导听到这个消息,挨着边的挨不着边的,都来视察、指导工作,一痛吃一痛喝一痛拿,后来,村里凡是活着的东西看见这帮人就没命逃窜。
村长家的看门狗也被一位领导看上,炖了狗肉汤。还有人说,村长连自己老婆都赔上了,被上面来的某位领导占了便宜。这件事情传出来之后,乡长见到村长离老远都打招呼,摇头晃脑地热情,活像一只家犬。
少爷捐献的那笔钱越来越少,以至于后来连个鸡窝都垒不起来了。
10.庙
但是,学校又不能不建,不然怎么对台胞交待。最后,村长让村民对钱,没有钱的用鸡、鸭、羊、粮食、树木、砖之类的来抵账。
学校最后建起来了,学校以少爷的名字命名,乡对台办从此高枕无忧。
学校仅有的几个学生相继辍学。
村民在学校里塑了一尊菩萨像,以乞求上天的保佑。学校成了一座庙,香火日盛,据说极为灵验,周围村子的人都来小村敬香(注:敬香为烧香的敬语)。
少爷从此再也没有回过小村。
11.出国潮
去年,有人说少爷在美国治病,海峡两岸血浓于水,县里、乡里、村里得到消息,轮流派人去美国探望,不过,有知情者透露说,少爷住院两天后就出院回台湾了。但出国潮至今未见降温,目前还有一班人正准备动身前往美国探望少爷。
--end
2006年12月27日星期三
[+/-] |
政绩的产生 |
政绩的产生
1.引子:村长《创世纪》
起初,神创造天地。地是肥沃的,天空是洁净的。小村里的人安居乐业。村长的脚丫子从村子这头运行到村子那头。村长说,村子中间要修柏油路。就有了路。路宽得吓人,路把村子分开。老百姓一片抱怨。有工程就有钱赚,村长赚了一笔钱。这是他担任村长的第一年。
村长说,小村周围要有环村路,把小村包围起来。村长就让大家集资修了一条环村路。路宽得吓人。老百姓叫苦不迭。有工程就有钱赚,村长赚了一笔钱。这是他担任村长的第二年。
村长说,小村的人开会要聚在一起。村长就叫村民集资建广场。事就这样成了。村长称这个广场叫“官财广场”,村长看作是好的。村长说,广场上要 有草坪,并能放养他家里的羊。事就这样成了。村长家的羊在广场上吃草。老百姓叫苦连天。有工程就有钱赚,村长赚了一笔钱。这是他担任村长的第三年。
村长说,广场上要有高台子,有喷泉。可以唱戏、开会、演电影、吹牛皮。于是,广场上造了一个大台子,叫小村世纪坛。广场中间建了两个喷泉,小的挨着大的。水喷得老高。村长看着是好的。老百姓苦不堪言。有工程就有钱赚,村长赚了一笔钱。这是他担任村长的第四年。
村长说,路要漂亮才行。柏油路没修好,石子被冲走了,路面塌陷了。猪、牛、羊都在上面跑,脏兮兮的。村长就让集资修水泥路。事就这样成了。 猪、牛、羊照样都在上面跑。路不到半年全坏了,路上有水也有泥,老百姓叫“水-泥-路”。老百姓怨声载道。有工程就有钱赚,村长赚了一笔钱。这是他担任村 长的第五年。
村长说:“我们要按照最科学的方式经营农业,使地里的庄稼、喂养的鸡、鸭、猪、牛、马、羊都自由自在地饮水。”村民集资三分之一,村里贷款 三分之二。于是,村里开始毁掉过去的水渠,建设全自动喷灌工程。喷灌建好了。村长说:“看哪!我将全部的福都带给你们了。”没有几天,全自动喷灌工程不会 动了,也不喷水了。老百姓民不聊生。有工程就有钱赚,村长赚了一笔钱。这是他担任村长的第六年。
村长对乡长说,小村太穷了,连个毛也拔不下来了,给我换换位置吧。村长花钱买通了乡长。村长当了副乡长。这是他担任村长的第七年,担任副乡长的第一年。
新村长上任。村长说……这是他担任村长的第一年……
2.政绩的动机
县里从上面调来了一位比较有背景的县长。县长临上任前去看望一位比他更有背景的领导,县长的位置就是这位领导给的。
去到要好好干,领导对县长说话时语重心长,就像面对自己的孙子。
领导说,那里很穷,但越穷越有机会。县长毕恭毕敬,一脸的虔诚,像是教徒在听老道讲经。
领导说,过去我在一个县里当县长的时候,让那里的老百姓种烟叶,一开始他们不愿意,后来,他们种烟叶富裕了,你现在不让他们种都不行。
县长说,我去了也让他们种烟叶,学习您的经验。县长的语气仿佛在宣誓。
领导说,我那哪里是什么经验,你要看看那里能不能种烟叶,能种就种,不能种就搞别的(画外音:种好了是领导指示得对,种不好了,是你没有弄清楚能不能种,责任全怪你)。去到那里争取打几个漂亮仗,出点政绩,少干吃力不讨好的事情。这话里就有暗示了。
3.政绩的布置
县长开了全县乡长会议,会上一致通过把地里的麦苗拔掉改种烟叶。
乡长从县城开会回来,开了全乡村长会议,布置上面的指示,急令迅速把地里的麦苗拔掉改种烟叶。
4.政绩的出笼背景
村长和乡长是亲戚。会议结束,小村村长去找乡长。“咱们这里过去不是搞过试验,种不成烟叶吗?”
乡长说:“这个我比你清楚。”
村长说:“听人说新来的县长是在北京长大的,分不清哪是麦苗,哪是韭菜。可乡长们都懂啊,那文件咋就通过了呢?”
乡长说:“你以为全县那么多乡长都是傻B?县长是从大城市来的,是有来头的,谁敢提反对意见?谁提意见就是跟他唱对台戏,以后别想混下去。县 长再傻B他也是县长。下面的人就必须装得比县长还傻B,这样才有‘顺差’,县长才会高兴,才会信任你。下面的人日子才好过,才有实惠。”
乡长接着说:“县长提出来种烟叶时,底下的人都热烈鼓掌。散会的时候还有几个乡长跑到县长那里请教农业问题,问题都是从秘书那里搞来的,是县长绝对能够答出来的很傻B的问题。”
村长说:“这招够狠的,谁先想起来的?”
乡长不好意思地笑笑:“我”。
村长说:“种烟叶也好,咱们能挣点种子钱。”
乡长说:“县长刚上来,就非常老练,他说种子他亲自搞。”
村长说:“这狗日的!”
乡长说:“咱可以加点价,天塌了有县长顶着,这钱挣着扎不了咱的手。”
5.政绩的动员
村长在小村广场上召集群众开会,布置上面的指示。
村长说,上面叫我们种烟叶。
村民都在下面议论:你咋不叫我们养河马呢?人睡觉有睡颠倒的,村长睁着眼咋还说颠倒话呢?咱们这地里能种烟叶吗?
村长说,地是国家的,我这个村长也是国家的,你们种的是国家的地,也是种的我村长的地。叫你们种啥你们种啥,明天各家拔各家的麦苗,一天完成,顽固抵抗国家政策的,严厉打击,到时候别吃后悔药。
6.政绩的实施
第二天,全村的男女老少都去拔麦苗。绿油油的麦苗长在人的心里,拔一下心就痛一下。一位老人拔着拔着,就忍不住哭了……
第二天,全村一多半家庭没有完成任务。村长带着人去收罚款,几个要辩理的被村长带领的人揍了一顿。钱不够的用养的鸡、鸭、羊顶替。自此,村长和村里的大小干部整天吃香的、喝辣的。
第三天,烟叶种分花下来,价钱比市场上贵了一倍多,村长说这些种子是高科技产品。
小村全部种上了烟叶。
烟叶最终没有长成。一个收获的季节枯黄了。
7.政绩的报道
小村的村民把烟叶拔下来,补种青菜,他们没有钱买化肥、也没有钱买农药。他们自发地凑到一起,雇车拉到城里去卖,多少挽救回来一点损失。县电 视台报道说:小村村民遵照x县长的指示,在当地政府的带领下,大力发展绿色蔬菜产业,找到了致富的好路子,今年创收xxx元。X县长指示继续在农业贷款等 方面支持小村绿色蔬菜业的发展。不久,市里、省里的记者都报道了小村发展绿色蔬菜的情况,主角都是X县长。
--end