2005年11月30日

1、今天去参加了国际计算机创新大会6016

2、上午听了三个报告,题目和报告人分别是:

 题目 报告人   职务
 美国陆军研究院的高性能计算:过去、现在和将来  Charles Nietubicz  美国陆军研究院高性能计算主任
 High End Into The Maninstream  Stephen Pawlowski  Intel公司院士
 从丝绸之路到硅谷之路:传统教育不会灭亡  Carl Chang  国际电子电气工程师协会计算机学会2004年主席

3、中午吃完午饭在展览区仔细的逛了逛,看了看IBM、Intel和我们的关于高性能计算方面的研究成果

4、带了点资料回来,是自己比较感兴趣的,准备研究研究

2005年11月29日

1、看着项目经理好像很轻松的样子,每天就协调下资源,开开会,写写文档,作作报告====

2、其实不然,这些都是表面上的现象,PM要有很强的领导能力和很深厚的技术功底

3、项目管理非常重要,一个项目如果没有了管理,那就乱作一团糟了

4、有这样一句话:“二分软件,三分管理,五分实施”

5、要重视起来

2005年11月28日

1、转眼就工作一个多月了

2、感觉时间很快,不是很快,是飞快

3、上星期五去了趟北师大

4、星期六老师来看我们,说了毕业设计的事情

5、星期天理了发,感觉精神多了

2005年11月25日

·等价类划分方法

·边界值分析方法

·错误推测方法

·因果图方法

·判定表驱动分析方法

·正交实验设计方法

·功能图分析方法

等价类划分:

是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.

无效等价类:与有效等价类的定义恰巧相反.

设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.
2)划分等价类的方法:下面给出六条确定等价类的原则.

①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.

④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).

⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.

3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:

输入条件 有效等价类 无效等价类

… … …

… … …

然后从划分出的等价类中按以下三个原则设计测试用例:

①为每一个等价类规定一个唯一的编号.

②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.

③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.

边界值分析法

边界值分析方法是对等价类划分方法的补充.

(1)边界值分析方法的考虑:

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

(2)基于边界值分析方法选择测试用例的原则:

1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.

3)根据规格说明的每个输出条件,使用前面的原则1).

4)根据规格说明的每个输出条件,应用前面的原则2).

5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.

6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.

7)分析规格说明,找出其它可能的边界条件.

错误推测法

错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).

因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

利用因果图生成测试用例的基本步骤:

(1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.

(2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.

(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.

(4) 把因果图转换为判定表.

(5) 把判定表的每一列拿出来作为依据,设计测试用例.

从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.

前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.

判定表通常由四个部分组成.

条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.

动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.

条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.

动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.

规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.

判定表的建立步骤:(根据软件规格说明)

①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则.

②列出所有的条件桩和动作桩.

③填入条件项.

④填入动作项.等到初始判定表.

⑤简化.合并相似规则(相同动作).

B. Beizer 指出了适合使用判定表设计测试用例的条件:

①规格说明以判定表形式给出,或很容易转换成判定表.

②条件的排列顺序不会也不影响执行哪些操作.

③规则的排列顺序不会也不影响执行哪些操作.

④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.

⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.

2005年11月24日

1、虚拟机其实挺好用的,原来一直用VM Ware来装Linux

2、昨天在单位上的测试机也装了一个,不过完全是网络安装,而且操作的盘全部是网络硬盘

3、因此速度较慢,装了个Fedora Core 4花了2天的时间

2005年11月22日

Installing Oracle 9i R2 (9.2.0.1.0) on Red Hat 9

This is the installation HOWTO for Oracle 9.2 on RedHat Linux 9. Please remember that Oracle 9.2 is not certified for RedHat 9 and this combination should not be endorsed in production environments. For a full list of Oracle certified environments, check out the Oracle certification matrix.

 

 

1. Creating users and groups:

————————-

Become root and execute the following commands

 

 

 

 

[roko@miniroko] su -

 

 

[root@miniroko]# groupadd oinstall

[root@miniroko]# groupadd dba

[root@miniroko]# useradd -g oinstall -G dba oracle

[root@miniroko]# passwd oracle

 

 

2. Creating directories.

————————–

Oracle recommends OFA – Optimal Flexible Architecture directory structure, but we will install everything under /opt/ora9:

 

 

 

 

[root@miniroko]# mkdir -p /opt/ora9/product/9.2

[root@miniroko]# mkdir /var/opt/oracle

[root@miniroko]# chown oracle.dba /var/opt/oracle

[root@miniroko]# chown -R oracle.dba /opt/ora9

 

 

3. Preinstallation (system configuration):

—————————

 

 

 

 

3.1 Install these compatibility libraries:

 

 

 

 

compat-gcc-7.3-2.96.118.i386.rpm

compat-libgcj-7.3-2.96.118.i386.rpm

compat-libgcj-devel-7.3-2.96.118.i386.rpm

nss_db-compat-2.2-20.i386.rpm

 

 

 

 

I found them all using Synaptic, a graphical tool for updating your RH system. To install synaptic, first download Apt binary RPM package for RH9 from http://apt.freshrpms.net/ and then do (as root):

 

 

[root@miniroko]# rpm -Uvh apt-0.5.5cnc5-fr2.i386.rpm

[root@miniroko]# apt-get update

[root@miniroko]# apt-get install synaptic

 

 

3.2 Set kernel params to be correct at startup:

 

 

Append these lines to /etc/sysctl.conf

You might want to change these values if you have more RAM:

 

 

 

 

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.sem = 250 32000 128 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

 

 

Append these lines into /etc/security/limits.conf

 

 

 

 

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

 

 

REBOOT the system so the kernel changes can take effect, or if rebooting is not an option, you can change the kernel params at runtime by issuing:

 

 

 

 

[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem

[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax

[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni

[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall

[root@miniroko]# echo 65536 > /proc/sys/fs/file-max

[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

 

4. Preinstallation (oracle environment):

—————————-

Login as oracle user:

 

 

 

 

su – oracle

 

 

Put the following lines in ~/.bashrc:

 

 

#oracle 9i

export ORACLE_BASE=/opt/ora9

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export ORACLE_OWNER=oracle

export ORACLE_SID=ora9i /* this id must be the same as ur db’s SID, or, u get errno: ORA_27101 */

export ORACLE_TERM=vt100

export LD_ASSUME_KERNEL=2.4.1

export THREADS_FLAG=native

export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH

export PATH=/opt/ora9/product/9.2/bin:$PATH

#

# change this NLS settings to suit your country:

# example:

# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.

#

export NLS_LANG=’croatian_croatia.ee8iso8859p2′

 

 

 

 

If you want other national settings (these are croatian), consult the supported settings here, and change the NLS_LANG variable accordingly.

 

 

5. Installation:

————————

 

 

Login as root and allow user oracle to write to X display:

 

 

 

 

su -

xhost +

 

 

 

 

Login to oracle user:

 

 

 

 

su – oracle

As this user, u "startx" & execute the "runInstaller"!!!!!!!!

 

 

Start the installation. Do not switch to your CD-ROM mount directory because you will not be able to unmount the 1st Cd to insert others when asked.

 

 

/mnt/cdrom/install/linux/runInstaller

 

 

During the installation, Oracle will ask you to insert other disks. Open up a new console, unmount the current disk with umount /dev/cdrom (as root), replace the disk. If Redhat9 does not mount it automagically, mount it yourself with mount /dev/cdrom

Your installation will produce two errors.

 

 

 

 

First, you will see an error dialog informing about problems with ins_oemagent.mk. Choose ignore on this one, we will fix it in postinstallation.

 

 

Second dialog will inform you about an "Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk".

When that happens, open up a new console and login as oracle user. Execute the following commands:

 

 

[oracle@miniroko oracle]$ cd $ORACLE_HOME/install

[oracle@miniroko install]$ tail make.log

 

 

You will see a line such as this:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/

-L/opt/ora9/product/9.2/lib/stubs/  /opt/ora9/product/9.2/ctx/lib/ctxhx.o

-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut

-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9

-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

 

 

Copy this line, add -ldl at the end and run it in $ORACLE_HOME/bin

[oracle@miniroko]$ cd $ORACLE_HOME/bin

[oracle@miniroko bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/

-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/ 

/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/

-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc

-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9

-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

 

 

Now hit the ignore button on the dialog and the installation will continue.

At the end Oracle installation will probably inform you that agents failed to start. Choose ignore on this one, we will fix it later

 

 

6. Postinstall

—————————

Open up a console and login as oracle user. Execute these lines:

 

 

 

 

[oracle@miniroko oracle]$ cd $ORACLE_HOME/network/lib

[oracle@miniroko lib]$ make -f ins_net_client.mk install

 

 

Then edit the $ORACLE_HOME/ctx/lib/ins_ctx.mk file so that lines 13-14 change from:

ctxhx: $(CTXHXOBJ)

$(LINK) $(CTXHXOBJ) $(INSO_LINK)

 

 

to

ctxhx: $(CTXHXOBJ)

$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

 

 

Then do a

[oracle@miniroko lib]$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

 

 

Now you should be able to start your agents with

[oracle@miniroko lib]$  /opt/ora9/product/9.2/bin/agentctl start

 

 

7. Starting the database

——————————

The easiest way is to create a startup/shutdown script as such

#!/bin/bash

#

# (c) denis.klaric@in2.hr

#

# name: /etc/rc.d/init.d/ora9

# description:  starts and stops oracle 9i database, TNS listener

#               http server, and fixes kernel parameters for oracle

 

 

 

 

#oracle environment

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export NLS_LANG=’croatian_croatia.ee8iso8859p2′

export ORACLE_SID=tis

 

 

export DISPLAY=:0

oracle_user=oracle

                                                                                                                                         

# see how we’re called

                                                                                                                                          

case $1 in

  start)

  # fix kernel parameters

  echo 250 32000 100 128 > /proc/sys/kernel/sem

  echo 536870912 > /proc/sys/kernel/shmmax

  echo 4096 > /proc/sys/kernel/shmmni

  echo 2097152 > /proc/sys/kernel/shmall

  echo 65536 > /proc/sys/kernel/fs/file-max

  echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

 

  # start listener, apache and database

  su – root<<EOR

    touch /var/lock/subsys/oracle

EOR

  su – "$oracle_user"<<EOO

    lsnrctl start

    apachectl start

    sqlplus /nolog<<EOS

      connect / as sysdba

      startup

EOS

EOO

 ;;

                                                                                                                                          

 stop)

  # stop listener, apache and database

  su – "$oracle_user"<<EOO

    lsnrctl stop

    apachectl stop

    sqlplus /nolog<<EOS

      connect / as sysdba

      shutdown immediate

EOS

EOO

  su – root<<EOR

    rm -f /var/lock/subsys/oracle

EOR

 

 

  ;;

                                                                                                                                         

  *)

  echo "Usage: /etc/rc.d/init.d/ora9 [start|stop]"

  ;;

                                                                                                                                          

esac

 

 

Just make sure you change the ORACLE_SID to your SID!!!!!!!!!

You can copy that script to your /etc/rc.d/init.d directory or link it from your runlevel startup directory (e.g. /etc/rc.d/rc5.d) to make sure Oracle is started upon booting the machine, and stopped before shutting down.

Alternativly you can start and stop it directly with /etc/rc.d/init.d/ora9 start|stop

 

 

That’s it, good luck

 

 

Finally, u can use user "oracle" to login console & startx & use following steps:

 

 

*** 1 ***  dbca(创建,删除数据库的工具)

General perporse db

set dbname & sid

dedicated mode

select unicode chinese char set"ZHS16GBK"(Enable chinese in oracle)

in next window, set the path of all the db file from "{ORACLE_BASE}/oradata/…" to "/oradata/…"

 

 

*** 2 ***  oemapp consoleoracle数据库管理工具)

其中可以删除数据库,但只是逻辑上删除。因为库表都还在/oradata下,此时还要进入dbca后再删除一道才全部删除该库所有数据。

 

 

*** 3 ***  sqlplus /nolog

connect / as sysdba

startup

select * from scott.EMP /* 如果你看到scott.EMP表中的信息,则表明数据库工作正常了 */

 

 

——————————————————————————-

*** PS: Enable chinese in oracle db which created without chinese support***

LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

LANG=en

GDM_LANG=zh_CN.GB2312:zh_CN

2005年11月21日

1、今天自己测试的产品投入了beta测试阶段,即大规模推广使用

2、还是有种说不出来的喜悦,毕竟也有自己的工作成果在里面

3、尽管只是在单位里推广

2005年11月19日

1、和家里连视频了,感觉挺好的

2、我老爸还弄个麦克风来对话

3、出来差不多一个月了,老爸老妈也听挂念的

4、放心吧,我很好,你们保重身体

2005年11月18日

1、我们单位上加班是习以为常的事情了

2、大家好像都是自觉自愿的加班,没有报酬的

3、我一般22点就走了,很多同事比我晚的多

4、大概是热爱自己的事业,热爱自己的工作的原因吧

5、而且搞IT的,都是很苦很累的

6、不过单位里的这个气氛还是挺不错的,害得我22点下班还有点不好意思呢

2005年11月16日

1、最近流感盛行,禽流感也可怕

2、怎么计算机病毒也那么猖獗呢?

3、今天单位很多机子都中招了,好像是个蠕虫病毒,在$system32$下创建了个remon.sys

4、搞了半天才弄好,原来是有个进程创建的,把这个进程强行结束,再把注册表相关键都删除了,OK

5、大家要多注意保暖,室内要通风,防止流感蔓延

6、也要注意给自己电脑的操作系统和反病毒软件更新更新,防止被病毒侵扰