存档

2009年4月 的存档

[QC]server has been disconnected while performing postbug action解决方法

2009年4月28日 stone 没有评论

今天在使用QC登记defect,在submit defect时出现错误提示:server has been disconnected while performing postbug action.      昨天使用时还是很正常的,今天使用就出问题了,怀疑是不是QC出问题了,于是让同事用他们自己的用户登陆在别的机器上试试能否登记defect,一试没问题,那就说明这不是QC的问题,那是不是我的用户本身的问题呢?在本机上用同事的用户名登陆,也出现同样的错误。那就只能重装客户端试试了,将本机的QC客户端删除,重新下载控件,一试,问题解决。

看来这个问题还是由于客户端组件出现问题造成的,只要将客户端组件删除,重新下载即可。

分类: Note 标签:

[MySQL] MySQL区分大小写问题

2009年4月22日 stone 没有评论

这次一个数据采集的项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。

这个问题的根源在于,在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。

MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。

WINDOWS:
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。

LINUX:
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。

关于 数据目录

数据目录是用来存放数据表和相关信息的地方,是数据库的核心。在MySQL中的数据目录根据不同平台的有一些差异:

在Unix/Linux系统上,如果用源码编译安装,数据目录的位置默认是在/usr/local/mysql/var中;

在UNIX/Linux系统上,如果用二进制发行版安装,数据目录的位置默认是在/usr/local/mysql/data中;

在Windows系统上,数据目录的位置默认是在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data中;

PS: Identifier Case Sensitivity

How table and database names are stored on disk and used in MySQL is affected by the lower_case_table_names system variable, which you can set when starting mysqld. lower_case_table_names can take the values shown in the following table. This variable does not affect case sensitivity of trigger identifiers. On Unix, the default value of lower_case_table_names is 0. On Windows the default value is 1. On Mac OS X, the default value is 2.

Value Meaning
0 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive. Note that if you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive filesystem and access MyISAM tablenames using different lettercases, index corruption may result.
1 Table names are stored in lowercase on disk and name comparisons are not case sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.
2 Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on filesystems that are not case sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1.
分类: Note 标签:

测试人员应具备的几种思维方式

2009年4月16日 stone 没有评论

测试人员应具备的几种思维方式

  1、逆向思维方式

  ● 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分

  ● 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析

  ● 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞

  2、组合思维方式

  ● 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长

  ● 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”

  ● 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性

  3、全局思维方式

  ● 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求

  ● 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性

  4、两极思维方式

  ● 边界值分析是两极思维方式的典范

  ● 为了看系统的稳定性,我们采用了压力测试

  ● 两极思维方式,是在极端的情况下,看是否存在缺陷?

  ● 注意是两极,不是一极

  ● 测试人员做久了,往往容易走极端——职业病,不利于与人沟通

  5、简单思维方式

  ● 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”

  ● 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向

  6、比较思维方式

  ● 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用

  ● 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用

  ● 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

  7、动起来,更精彩

  ● 关注程序的运行时状态

  ● 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离

  ● 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

  其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

  最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要简单,需要(不断的学习+不断的经历+不断的思考)。

原文:【聚杰网测试技术】

分类: Article 标签: ,

浅谈软件测试中集成测试的方法

2009年4月16日 stone 没有评论

浅谈软件测试中集成测试的方法

  时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。综合测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。 

  某设计人员习惯于把所有模块按设计要求一次全部组装起来,然后进行整体测试,这称为非增量式集成。这种方法容易出现混乱。因为测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且在改正一个错误的同时又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。与之相反的是增量式集成方法,程序一段一段地扩展,测试的范围一步一步地增大,错误易于定位和纠正,界面的测试亦可做到完全彻底。

  下面讨论两种增量式集成方法。

  一、自顶向下集成  

  自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。深度优先策略首先是把主控制路径上的模块集成在一起,至于选择哪一条路径作为主控制路径,这多少带有随意性,一般根据问题的特性确定。以下图为例,若选择了最左一条路径,首先将模块M1,M2,M5和M8集成在一起,再将M6集成起来,然后考虑中间和右边的路径。广度优先策略则不然,它沿控制层次结构水平地向下移动。仍以下图为例,它首先把M2、M3和M4与主控模块集成在一起,再将M5和M6 和其他模块集资集成起来。  

  自顶向下综合测试的具体步骤为:  

  1 以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代;

  2 依据所选的集成策略(深度优先或广度优先),每次只替代一个桩模块;

  3 每集成一个模块立即测试一遍;

  4 只有每组测试完成后,才着手替换下一个桩模块;

  5 为避免引入新错误,须不断地进行回归测试(即全部或部分地重复已做过的测试)。

  从第二步开始,循环执行上述步骤,直至整个程序结构构造完毕。下图中,实线表示已部分完成的结构,若采用深度优先策略,下一步将用模块M7替换桩模块S7,当然M7本身可能又带有桩模块,随后将被对应的实际模块一一替代。 

  自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。解决这个问题有几种办法,第一种是把某些测试推迟到用真实模块替代桩模块之后进行,第二种是开发能模拟真实模块的桩模块;第三种是自底向上集成模块。第一种方法又回退为非增量式的集成方法,使错误难于定位和纠正,并且失去了在组装模块时进行一些特定测试的可能性;第二种方法无疑要大大增加开销;第三种方法比较切实可行,下面专门讨论。

  二、自底向上集成  

  自底向上测试是从原子模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。  

  自底向上综合测试的步骤分为:  

  1 把低层模块组织成实现某个子功能的模块群(cluster);

  2 开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;

3 对每个模块群进行测试;

  4 删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。

  从第一步开始循环执行上述各步骤,直至整个程序构造完毕。

  下图说明了上述过程。首先原子模块被分为三个模块群,每个模块群引入一个驱动模块进行测试。因模块群1、模块群2中的模块均隶属于模块Ma,因此在驱动模块D1、D2去掉后,模块群1与模块群2直接与Ma接口,这时可对MaD3被去掉后,M3与模块群3直接接口,可对Mb进行集成测试,最后Ma、Mb和 Mc全部集成在一起进行测试。

  自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。它与自顶向综合测试方法优缺点正好相反。因此,在测试软件系统时,应根据软件的特点和工程的进度,选用适当的测试策略,有时混和使用两种策略更为有效,上层模块用自顶向下的方法,下层模块用自底向上的方法。

  此外,在综合测试中尤其要注意关键模块,所谓关键模块一般都具有下述一或多个特征:①对应几条需求;②具有高层控制功能;③复杂、易出错;④有特殊的性能要求。关键模块应尽早测试,并反复进行回归测试。

原文:【聚杰网测试技术】

分类: Article 标签: ,

[XML] XML问题记录

2009年4月15日 stone 没有评论

Question 1:
以前建了一个XML文件,验证格式为DTD,在JAVASCRIPT中调中就一直没调用出来,这个问题后来一直放在那也没去解决,直到这段时间重新学习了一个XML,才将该问题解决:

以下为那个DTD文件内容:
<!ELEMENT myfile (title,author)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author(#PCDATA)>

在XML SPY中验证出错,错误提示如下:

File C:\Documents and Settings\Administrator\桌面\3\myfile.dtd is not valid.
Character '(' is grammatically unexpected
Reason: one of the following is expected (see below)
S
Details
XML production: Production 'elementdecl' not satisfied

最终发现问题出在了最后一行:
<!ELEMENT author(#PCDATA)> 的author和(#PCDATA)之间没有空格,所以才造成以上的错误。

Question 2:
在XML SPY中新建一XML文件(没注意到DTD文件类型),将格式正确完整的DTD内容输入,验证通不过,保存为DTD文件,验证通不过,将该文件关闭重新打开,验证通过。
在XML SPY中新建一DTD文件,将DTD内容输入,验证通过。
(在XMLSPY中新建文件时注意文件类型)

分类: Note 标签:

[MySQL] Could not start the service MySQL 解决方法

2009年4月15日 stone 没有评论

安装mysql 5.1.33,在运行Server Instance Configuration wizard时的Execute configurattion步骤中的第三项Start Service进出错,错误提示为Could not start the service MySQL (出现这种情况一般是因为装过mysql,卸载不干净造成的。卸载后重启后再重装。注意看下服务,如果未能卸载,可以用mysqld-nt -remove卸载)。

具体方法如下:
查看服务中有没有mysql,如果有将该服务停掉;
在控制面板中运行添加删除程序,将mysql卸载;
卸载后打开注册表,查看HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下的键值,如果有相关mysql键值(mysql、mysqladmin)则删掉,即可;
重启,将mysql的安装残余目录删掉 (查看服务,此时服务中已没有mysql);
重新安装mysql.安装后先不要运行Server Instance Configuration wizard,重启后在开始菜单中运行该向导,即可。

PS:一种值得参考的方法
(
Remember, windows machines love being rebooted.
For less headaches, do the following:

Uninstall mysql. Reboot the computer. Reinstall mysql, but don't configure yet! Reboot the computer again. Then run Mysql Instance Config Wizard (found in START menu).

Good Luck! :)
)

分类: Note 标签:

哈佛图书馆墙上的训言

2009年4月15日 stone 没有评论

 

哈佛图书馆墙上的训言 (中英文对照)

 

1.此刻打盹,你将做梦;而此刻学习,你将圆梦。
You'll have a dream if you have a nap now, but your dream will never come true unless you study now.

2.我荒废的今日,正是昨日殒身之人祈求的明日。
Today I get through with nothing done is just the tomorrow the men who dead yesterday eager for.

3.觉得为时已晚的时候,恰恰是最早的时候。
The second you think it's so late is the fastest moment.

4.勿将今日之事拖到明日。
Never put things you can deal just now to tomorrow.

5.学习时的苦痛是暂时的,未学到的痛苦是终生的。
Studying a difficult task rather makes you suffering just this minute, but you'll be full of agony all your life if you never study.
 
6.学习这件事,不是缺乏时间,而是缺乏努力。
When it comes to study, what you lack isn't time but effort.

7.幸福或许不排名次,但成功必排名次。
Happiness may not be ranked, but success will at the top.

8.学习并不是人生的全部。但,既然连人生的一部分——学习也无法征服,还能做什么呢?
Study is only a part of life, but what else can you do if you even connot conquer it?

9.请享受无法回避的痛苦。
Enjoy the avoidless pain.

10.只有比别人更早、更勤奋地努力,才能尝到成功的滋味。
Worms nearly eaten by birds get up early.

11.谁也不能随随便便成功,它来自彻底的自我管理和毅力。
People's successes are't accidentally at all, it comes from the thorough self-control and the will.

12.时间在流逝。
Time is passing.

13.现在流的口水,将成为明天的眼泪。
The saliva you dribble today becomes your tears tomorrow.

14.狗一样地学,绅士一样地玩
Study hard as a dog and you'll be the next luckydog.

15.今天不走,明天要跑。
You must run fast if you even don't take a pace.

16.投资未来,忠于现实。
Invest for future and be loyal to reality.

17.受教育程度代表收入
Academic certificate is dollar.

18.一天过完,不会再来。
The past today will never be found tomorrow.

19.即使现在,对手也不停地翻动书页。
Your competitor's desk is full of books now.

20.没有艰辛,便无所获
No pains no gains.

分类: Collection 标签: ,