Performance Test

发布新日志

  • [论坛] 关于B/S和C/S架构的探析

    2008-01-10 22:15:10

    当今世界科学技术飞速发展,尤其以通信、计算机、网络为代表的互联网技术更是日新月异,令人眼花燎乱,目不睱接。 由于计算机互联网在政治、经济、生活等各个领域的发展、运用以及网络的迅速普及和全社会对网络的依赖程度,计算机网络已经成为国家的经济基础和命脉,成为社会和经济发展强大动力、,其地位越来越重要。但是,由于主流技术研发企业和用户对“B/S”和“C/S”技术谁优谁劣、谁代表技术潮流发展等等问题的争论不休,已经给检察机关使用“OA(办公)”和“案件管理”软件工作开展带来困惑,本文就此两项技术发展变化和应用前景做些探讨,供同行叁考。

    一、     什么是C/S和B/S

    要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

    第一、什么是C/S结构。C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

    传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。如我院使用的上海超兰公司“案件统计”管理软件就是典型的C/S体系结构管理软件。

    第二、什么是B/S结构。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。目前我院内网(Intranet)、外网(Internet)和北京东方清大公司“案件、办公管理软件”就是B/S 结构管理软件,干警在局域网各工作站通过WWW浏览器就能实现工作业务。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

    第三、管理软件主流技术。管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

    二、C/S和B/S 之比较

    C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国 Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。

       1、C/S架构软件的优势与劣势

    (1)、应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

    (2)、数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

    (3)、C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

    其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

    2、B/S架构软件的优势与劣势

    (1)、维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

    (2)、成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

    比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

    (3)、应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
  • [论坛] 解决CHM文件无法显示的问题

    2008-01-10 21:59:59

    有很多人下载了CHM文件之后,双击打开却发现只能显示左侧的标题,而右侧的内容则显示出“该页无法显示”,本人搜了一下,找出如下解决办法:
    1.在CHM文件上单击右键,选择“属性”
    2.出现如下图:

    点击“解除锁定”
    3.再打开试试,是不是可以正常显示了。
    呵呵~
    o(∩_∩)o...哈哈
  • [论坛] 解决ORA-12560: TNS: 协议适配器错误

    2007-12-20 23:26:54

    造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
    1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

    启动oraclehome92TNSlistener服务。
    2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

    面板,启动oracleserviceXXXX,XXXX就是你的database SID.
    3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI

    D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

    ,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

    输set oracle_sid=XXXX,XXXX就是你的database SID.
    经过以上步骤,就可以解决问题了。呵呵
  • [论坛] 看《越狱》体会项目管理

    2007-11-28 00:07:08

    因为越狱具备了项目所需要的独特性,临时性和明确目标的所有特征,完全可以将Michael策划的越狱作为一个项目来看待,而要想成功越狱则必须关注项目管理中所需要关注的所有要素。沉着,冷静,机智和敏锐的Michael使他具备了领导这个项目的最重要的资质,但每一个项目要素同样至关重要:

    1.计划
    一次重大的行动必须要有周密的计划,在计划中要考虑导所有应该考虑的要素,以保证项目的成功。911恐怖分子为了当天的几小时行动往往要花上几年的时间来计划和策划。而为了这次越狱,Michael同样花上半年多时间进行计划,让我们来看下需要计划的内容

    项目目标:第一目标是Brother死刑前越狱成功,第二是逃避掉追捕并消声匿迹。
    项目假设:假设能够关到同Brother一样的Fox River监狱;假设狱友能够协助;假设能够说服Abruzzi和Westmoreland入伙;假设过程中的每个子步骤都能够成功
    项目约束:最重要的约束就是刑期的约束,过了刑期一切将毫无意义;其次是受到的资源,环境的约束;能够协助自己开展行动工具约束

    经过了三次改造的Fox Revier监狱的地下水道真跟迷宫一样,因此Michael身上的纹身是最重要的一个准备,甚至细化到了狱室洗手台螺钉的型号。然后是打听到Sara的背景资料和座右铭以获取Sara的好感和帮助;越狱成功后需要快速的出境因此需要Abruzzi黑帮老大飞机帮助;越狱后需要大量的资金因此需要说服Westmoreland入伙。到第二季还可以看到为越狱成功后准备的衣服,装备和车辆;为模拟坠车山崖实现准备的各种道具。可以说是事先能够想到的全部想到和做到了。但计划仍然无法保证万无一失,假设中的任何一项都可能给项目带来风险,同时还存在更多的事先根本无法预料到的未知因素,任何一个环节出现都将导致失败和功亏一篑。

    没有完美和万无一失的计划,最重要的是要懂得随时根据环境的变化来调整我们的计划,在出现问题和不利因素时候要保持清醒的头脑。

    里程碑1:进入Fox River和Brother汇合上,拉狱友Suore入伙,探清道路。
    里程碑2:拉Abruzzi和Westmoreland入伙,打通仓库到储物室再到医务室的道路。
    里程碑3:在合适的时间准备越狱,逃出Fox River监狱
    里程碑4:找到Westmoreland留下的500万,并消声匿迹

    2.资源
    日益负责的社会环境和严密的监狱监控,像肖申克那种只靠个人力量越狱成功已经成为历史。你必须依靠一组人,形成一个团队来共同达到目标,每个人在这个团队中都会有明确的作用或任务。所有可以看到的必不可少的人力资源只有Abruzzi,Westmoreland,Suore。但根据剧情的发展或需要加入了其他的人员,每个人员加入都合情合理,并且可以为越狱行动贡献力量。

    人力资源外的就是硬件资源如各种工具,精确计时的手表,逃跑需要预先准备好的飞机,从草坪长椅上搞到的螺钉,为了假装糖尿病需要获得的药丸,探路需要的狱警服,还有藏在自己胳膊里面的致病药丸等,每一种工具或资源都将发挥重要的作用。
    整个Fox River的地图是最重要的资源,放在哪里都不可靠。因此Michael选择了旁人难以看懂的纹身放在了自己的身上。任何你觉得万无一失的都可能出现变故,就像背上的纹身会因为探路被烫掉而引起了根据曲折的故事情节。

    3.风险
    任何假设都可能成为风险,只有分析清楚了所有了风险并对关键风险进行应对才可以保证更大的胜算。从了解Sara的背景资料,了解Westmoreland和Abruzzi的性格特征,藏药丸我胳膊里面无一不是在为了降低风险概率,减小风险的影响。

    但我们看到整个第一季中对风险的分析仍然显得不充分,最明显的就是出现了很多应急的场面或者说根本没有预料到的问题。如果说Brother为了拖延时间而冒犯预警被关入静闭室还算突发事件的话,那没有实现预计到储物室到医务室的天窗可能被加固则是风险分析的重要遗留,类似的还有地道被发现,地下室到储物室事先灌满的水流失掉,医务室到围墙的电缆出现问题等,这些都是必须要考虑到的风险并要考虑针对风险进行因对。

    4.时间
    从整个剧情中,Michael的一次次的看秒表,我们可以看到时间在整个越狱过程中的重要性,有时需要精确到的秒的地步。狱警要定时的巡查,所以每次去探路用的时间必须精确计算,同样给地下管道放水一幕事先需要计算管道的尺寸,大小和水流量,保证水能够在精确时间放满到合适的位置。越狱过程中每一个环节也要精确计算,保证没有延迟。第一次越狱虽然没有成功,但为了和Brother在医务室碰头,也需要精确计算出各自采取行动的时间。

    5.解决问题
    没有一成不变的事物,我们也没有以不变应万变的境界。因此当出现突发事件后最需要的还是面对问题并解决问题,而不是去相互争吵,扯皮或去探讨是谁的责任。而沉着,冷静,睿智和高智商的Michael就具备了解决问题的所有条件,虽然我们看到的是他一次次的遇到各种问题,但通过自己的冷静的思考和分析,最终都得到了解决,而解决问题依赖的不是灵感或神助,而是自己的知识积累和联想分析能力。

    Sara怀疑Michael无病->需要阻止胰岛素吸收->联系CNotes买药

    Brother越狱前意外被关禁闭->医务室汇合->Brother需要得病->装病药丸->带药丸给Brother的人->神父
  • [论坛] Google公司的面试试题

    2007-11-09 15:08:10

    最大的互联网公司Google的一份面试题集,看看你是否能够回答出来。其中很多面试问题都是开放式的,正确的解答有许多种,所以在这里就不提供答案了。

    一辆学校班车里面能装多少个高尔夫球?
    你被缩小到只有硬币厚度那么点高(不是压扁,是按比例缩小),然后被扔到一个空的玻璃搅拌器中,搅拌刀片一分钟后就开始转动。你怎么办?
    要是让你清洗整个西雅图的所有窗子,你会收取多少费用?
    怎么才能识别出电脑的内存堆栈是向上溢出还是向下溢出?
    你要向你8岁的侄子解释什么是数据库,请用三句话完成。
    时钟的指针一天内会重合几次?
    你需要从A地去B地,但你不知道能不能到,这时该怎么办?
    好比你有一个衣橱,里面塞满了各种衬衫,你会怎么整理这些衬衫,好让你以后找衬衫的时候容易些?
    有个小镇有100对夫妇,每个丈夫都在欺骗他的妻子。妻子们都无法识破自己丈夫的谎言,但是她们却能知道其他任何一个男人是否在撒谎。镇上的法律规定不准通奸,妻子一旦证明丈夫不忠就应该立刻杀死他,镇上所有妇女都必须严格遵守这项法律。有一天,镇上的女王宣布,至少有一个丈夫是不忠的。这是怎么发生的呢?
    在一个重男轻女的国家里,每个家庭都想生男孩,如果他们生的孩子是女孩,就再生一个,直到生下的是男孩为止。这样的国家,男女比例会是多少?
    如果在高速公路上30分钟内到一辆车开过的几率是0.95,那么在10分钟内看到一辆车开过的几率是多少 (假设为常概率条件下)
    如果你看到钟的时间是3:15,那一刻时针和分针的夹角是多少?(肯定不是0度!)
    4 个人晚上要穿过一座索桥回到他们的营地。可惜他们手上只有一支只能再坚持17分钟的手电筒。通过索桥必须要拿着手电,而且索桥每次只能撑得起两个人的份量。这四个人过索桥的速度都不一样,第一个走过索桥需要1分钟,第二个2分钟,第三个5分钟,最慢的那个要10分钟。他们怎样才能在17分钟内全部走过索桥?
    你和朋友参加聚会,包括你们两人在内一共有10个人在场。你朋友想跟你打赌,说这里每有一个人生日和你相同,你就给他1元,每有一个人生日和你不同,他给你2元。你会接受么?
    全世界有多少个钢琴调音师?
    你有8个一样大小的球,其中7个的重量是一样的,另一个比较重。怎样能够用天平仅称两次将那个重一些的球找出来。
    有5个海盗,按照等级从5到1排列。最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?(提示:有一个海盗能拿到98%的金币)
  • [论坛] 软件测试常见术语-英文缩写

    2007-11-02 11:43:31

    ADO,ActiveX Data Object,ActiveX 数据对象。是ASP语言访问数据库的中间件。
    BAT,Build Acceptance Testing,工作版本可接受测试。新工作版本正式测试前进行的一项快速测试过程,目的是保证软件的基本功能和内容正确完整,具有可测试性,经过BAT测试后,就进入了正轨测试阶段。
    BRC,Bug Review Council,缺陷复查委员会。负责Adobe 软件缺陷的成员,负责复查报告的新缺陷是否正确,并且修正处理。
    CCJK,Chinese Simplified,Chinese Traditional, Japanese,Korean,简体中文,繁体中文,日文和朝鲜语。本地化测试中的四种典型东亚语言。
    CMM,Capability Maturity Model,能力成熟度模型。美国卡内基·梅隆大学的软件工程研究院(SEI)开发的用于软件开发过程的管理及工程能力的提高与评估的方法,共五个级别。
    C/S,Client/Server,客户机/服务器。局域网软件的一种模式。
    DBCS,Double Bytes Character Set,双字节字符集。用两个字节长度表示一个字符的字符编码系统。中文,日文和朝鲜文都用双字节字符集表示。
    DLL,Dynamic Link Library,动态链接库。大型软件常用的一种软件开发方法,按照功能模块将不同功能分别集成在不同的动态链接库中。国际化软件开发中通常将可以本地化的软件界面资源文件放在单独的动态链接库中,便于本地化处理。
    DTS,Defect Tracking System,缺陷跟踪系统。软件测试中集中管理软件缺陷(bug)的数据库,完成缺陷报告、修改、查询、统计等功能。
    EOF,End Of File,文件结尾。某些文件在存储时在结尾处写入代表结尾的特殊信息。
    ERP,Enterprise Resource Planning,企业资源规划。它是从MRP(物料资源计划)发展而来的新一代集成化管理信息系统,它扩展了MRP的功能,其核心思想是供应链管理,它跳出了传统企业边界,从供应链范围去优化企业的资源,是基于网络经济时代的新一代信息系统。
    EULA,End User License Agreement,终端用户许可协议。软件中关于终端用户安装和使用授权和其他许可的内容,通常是一个单独的文档。
    FIGS,French,Italian,Germany,Spanish)。法语,意大利语,德语,西班牙语。是软件本地化的欧洲代表语言。
    FTP, File Transform Protocol,文件传输协议。用于向网络登入显示文件及目录清单的传输文件的协议。FTP支持多种文件类型和文件格式,包括ASCII文件和二进制文件。在软件测试项目中,对于大型文件(例如,Build和测试计划文档等),经常放在客户指定的采用FTP机制上传和下载的文件服务器上。
    GM,Golden Master,金版工作版本。是通过全部测试准备大量刻盘,正式对外发布的软件版本。
    GPM,Global Project Manager,全球项目经理。负责多种语言测试的项目经理,与本地项目经理以及客户方的项目经理协调,完成测试项目。
    HTTP,Hypertext Transfer Protocol,超级文本传输协议。用于管理超级文本与其他超级文本文档之间的连接。
    IE,Internet Explorer。微软(Microsoft)开发的一种因特网(Internet)浏览器。
    IIS,Internet Information Server,因特网信息服务器。一种因特网Web服务器。配置网站管理信息和服务。
    ISO,International Organization for Standardization,国际标准化组织。ISO是世界上最大的国际标准化组织。它成立于1947年2月23日,它的前身是1928年成立的“国际标准化协会国际联合会”(简称ISA)。ISO的最高权力机构是每年一次的“全体大会”,其日常办事机构是中央秘书处,设在瑞士的日内瓦。
    IT,Information Technology,信息技术。包含现代计算机、网络、通讯等信息领域的技术。IT的普遍应用,是进入信息社会的标志。
    LPM,Local Project Manager,本地项目经理。负责一种或多种特定区域语言测试的项目经理,与全球项目经理以及本地测试团队协调完成特定区域语言的测试项目。
    MIS,Management Information System,管理信息系统。进行日常事物操作的系统。
    NLS,National Language Support,国家语言支持。允许用户设置区域等软件功能。识别用户使用的语言、日期和时间格式等信息。也包括支持键盘布局和特定语言的字体。
    ODBC,Open Database Connectivity,开放式数据库互连。是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
    OS,Operation System,操作系统。管理和控制计算机系统中的所有硬,软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的基础软件。测试中常用的OS包括Windows,Mac,Linux等。
    PDF,Portable Document Format,便携式文档格式。由Adobe公司开发的基于Postscrīpt标准的文件格式。PDF文件可以由其他软件创建,主要用于电子文档的发布。
    PO,Project Order,项目工作单。测试项目经理为每个测试工程师发送的包含测试内容、测试要求、测试提交时间、测试工具说明等的人物单。
    PPR,Post Project Review,项目后期审查。测试项目结束后的总结和审阅报告,包括成功的方面,失败的方面和今后的准备措施等。
    MS,Microsoft,微软,世界著名软件开发商。
    RC,Release Candidate,候补发布版本。软件测试中进行最后一次测试的软件工作版本。
    QA,Quality Assurance,质量保证。在ISO8402:1994中的定义是“为了提供足够的信任表明实体能够满足品质要求,而在品质管理体系中实施并根据需要进行证实的全部有计划和有系统的活动”。有些推行ISO9000的组织会设置这样的部门或岗位,负责ISO9000标准所要求的有关品质保证的职能,担任这类工作的人员就叫做QA人员。
    SGML,Standard Generalized Markup Language,标准通用标记语言。一种通用的文档结构描述置标语言,主要用来定义文献模型的逻辑和物理类结构。SGML是ISO组织于1986年发布的ISO 8879国际标准。
    SSR,Software Specification Review,软件规格审查。在实施测试之前,要审阅测试过程中用到的各种文档,包括完整性和正确性等。
    SQL,Structured Query Language,结构化查询语言。它是目前使用最广泛的数据库语言,SQL是由IBM发展起来的,后来被许多数据库软件公司接受而成为了业内的一个标准。
    TL,Team Leader,团队主管。负责测试组的测试工作,包括资源分配,测试过程管理和提交测试结果,与测试经理和本地项目经理以及测试团队成员协调。
    TBD,To Be Decided,To Be Determined,待定的。常出现在测试文档中,表示还没有正式确定的内容。
    TOC,Table Of Content,内容目录表。常出现在书籍或长文章中正文前面,列出章节标题和对应页码。
    UI,User Interface,用户界面。软件的人机交互的借口,常见的UI包括菜单、对话框、窗口等。
    URL,Uniform Resource Locator,统一资源定位器。网站完整路径名的一种表示方法,例如“中国本地化网”的URL是http://www.globalization.com.cn
    UML,Unified Modeling Language,统一建模语言。一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
    VPN,Virtual Private Network,虚拟专用网络。在公众网络上所建立的企业网络,并且此企业网络拥有与专用网络相同的安全、管理及功能等特点,它替代了传统的拨号访问,利用因特网公网资源作为企业专网的延续,节省昂贵的长途费用。
    VSS,Visual Source Safe。可视化资源配置管理,微软Windows平台下的一个小型软件配置管理工具。
    WWW,World Wide Web。是Internet最新的一种信息服务。它是一种基于超文本文件的交互式浏览检索工具。用户可用WWW在Internet网上浏览、传递、编辑超文本格式的文件。
    XML,Extensible Markup Language,可扩展标记语言。W3C发布的数据文件存储格式。可以以容易而一致的方式格式格式化和传送数据。



  • [论坛] 使用TestDirect中遇到的问题~

    2007-10-28 19:33:45

    操作系统:本机 WinXP家庭版 虚拟机WinXP专业版
    数据库:均为SQLserver个人版
    我在虚拟机上装好了TD8.0 打了SP1和SP2补丁 从本机的IE浏览器中进入虚拟机的TD 打开示例项目一切正常
    但是在新建项目的时候出现了如图的错误提示

    1.与虚拟机的数据库连接,sa密码已经置空,并且SQL服务已经启动


    2.与本机的数据库连接,sa密码已经置空,并且SQL服务已经启动

    请哪位高人指点一下,十分感谢!
  • [论坛] CVS中文使用手册

    2007-10-22 13:06:07

    CVS使用手册 让你的程序更高效

    cvs.pdf
    (2007-10-22 13:05:07, Size: 559 kB, Downloads: 0)

  • [论坛] 如何从测试员转型为测试管理人员

    2007-10-21 10:06:52

    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下内容,至少要做到几点:

        1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)

        2. 要熟悉BUG跟踪工具及软件测试流程。(如: TD, Bugzilla, CQ等)

        3. 要熟悉配置管理工具。 (如: CVS, VSS等)

        4. 要熟悉自动化工具。(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代

        码)

        5. 要熟悉压力及性能测试工具。(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分

        析出性能瓶颈)

        6. 要熟悉或精通一门语言。 (例如: Java, C++)

        7. 要熟悉数据库。(例如: Oracle, DB2, SQLServer, MySQL)

        8. 要熟悉主流操作系统。 (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux,

        Windows)

        9. 能用英文流利的和老外交流以及往来Email.

        10. 语言表达能力强,表达问题清晰明了。

        11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜。

        12. 学习技术的能力要强,能快速上手一个新的技术。

        13. 乐于与人交流。
  • [论坛] 软件测试工程师薪资调查

    2007-10-21 10:04:55

    因修正错误而存在——软件测试工程师    所属门派:IT业
        “假如存在没有任何错误的程序,那么世界也会不复存在。”
        因错误而存在,因修正错误而存在,这就是软件测试工程师的存在之道。虽然测试不是解决错误的根本举措,但却是必须的手段。
        软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。
        简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。据有关调查数据表明,目前国内许多软件企业内部的测试人员和开发人员之比在1:5,与国外软件业1:1的比例还相去甚远。
        门派技能:
        软件测试工程师主要职责为:1、负责项目/产品的测试工作,分析产品需求,建立测试环境和计划,保证产品质量以及测试工作的顺利进行;2、按照软件工程规范和项目管理流程,实施、管理和知道软件开发不同阶段的各种测试,并提交测试报告。测试的计划安排包括人员安排、进度、使用的软硬件环境、测试的流程等;3、提交测试报告,并撰写用户说明书;4、参与软件测试技术和规范的改进和制定。
        入门资质:
        一般需要至少专科学历,一到两年测试工作经验。要熟悉软件的测试技术、方法、流程、测试文档,若想进一步提升,还要熟悉自动化测试的流程、管理及深层开发(包括测试框架等);了解若干主流测试工具,如功能测试工具winrunner、quicktestpro,性能测试工具LoadRunner,配置管理工具TestDirecter, Visiual Source Safe等;熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP;了解软件工程,软件生命周期模型基础,了解软件配置管理;能够根据不同企业的产品特点,要求了解相应的开发测试方法。对于资深的软件测试人员,有些企业还要求其本身有自主开发测试工具的能力。
        由于需要与开发人员及时沟通,因此作为一个出色的软件测试工程师,还需要有良好的沟通技巧以及优秀的言语表达能力,具备良好的团队合作精神。
        入门经:
        缜密的逻辑思维能力为了应对软件使用者千差万别的使用习惯和软件在使用过程中出现的各种现象,软件测试工程师应该具有逆向思维能力,能够以用户的角度出发,捕获一切可能性,对细节有不同寻常的关注能力。此外,软件测试工程师还要有穷追到底的精神,并且要善于沟通和撰写各类专业报告。
        出色的沟通能力要成为优秀的软件测试工程师,要具备出色的沟通能力和表达能力,既能够和技术开发人员沟通无碍,又能用简洁明了的话语向客户、管理者等这些非技术人员阐述系统在哪些方面还有缺失有待改进。在同开发人员的沟通过程中,要注意沟通技巧,提高沟通效率,和开发人员保持良好的人际关系。当测试人员发现软件有问题时,不仅需要跟开发人员沟通,找到问题出在哪儿,阐述自己挑错的理由,有时候甚至要提出解决方案,直接参与前期需求和代码的修改。一个优秀的软件测试工程师能够适时地站在各自的立场上考虑、解释并解决问题,从而尽量避免冲突和对抗。
        全面的技术能力作为软件测试工程师,虽然无须精通各种语言各类技术,但必须全面理解被测软件系统,明白该使用何种工具进行测试。要做到这一点一般需要有一定的编程经验,这些经验可以加深对软件开发过程的理解。
        耐得住性子 软件测试工作是枯燥的,甚至重复性的,有时需要花费惊人的时间去分离、识别和分派一个错误,因此需要测试人员能静得下心耐得住性子。这个工作不容许有丝毫的心浮气躁。同时,逻辑严密但不乏重复成分的测试工作也容易使人倦怠,因此需要一定的自我督促能力。
        规范测试流程公司不正规的测试流程,不标准的测试方法,将使软件测试人员终日陷入碌碌无为的点击按钮的不良状态中。
        晋阶易筋经:
        初级测试工程师
        入门级,具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;
        测试工程师
        能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;
        高级测试工程师
        帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;
        Team Leader
        一般具有5年左右工作经验,负责管理一个小团队。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示;
        测试经理
        能够担当测试领域内的整个开发生存周期业务,能够为用户提供交互和大量演示,负责项目成本、进度安排、计划和人员分工;
        计划经理
        具有多年纯熟的开发与支持(测试/质量保证)活动方面的经验,管理从事若干项目的人员以及整个开发生存周期,负责把握项目方向与盈亏责任。
        秘传“薪”经:
        薪资黄金点
        软件测试工程师在IT行业中越来越受到重视,其薪资也节节高升。
        测试工程师的起薪从2000~5000元/月不等,若有四年工作经验的话,薪资在8000元/月左右,具体视不同地域、不同性质企业、测试工程师的不同能力而定。一般工作5~8年的软件测试工程师的薪资是刚出道时的新手的一倍,而10年以上工作经验的软件测试工程师薪资却走了下坡路,和5~8年的从业者持平甚至有些企业开出了略低的薪资,看来这行的折旧率较高。
        软件测试行业的从业者7成左右都拥有本科学历,本科学历的从业者的薪资约为大专学历从业者的1.33倍左右,而硕士学历的从业者薪资起点明显高于本科学历从业者,约为后者的1.49倍。一般外语能力精通者的薪资为平均薪资的1.29倍左右,熟练者为平均薪资的1.09倍,值得注意的是,深圳、杭州和大连的外语能力精通者的薪资均超出平均薪资不少,其中杭州的外语能力精通者的薪资是平均薪资的1.79倍。
        以3.5年左右从业工作经验的软件测试工程师的各地薪资情况来看:深圳地区的平均年薪是全国各城市最高的,超出7万元,其中外商独资欧美企业的年薪为7.8万元,国营企业的年薪紧随其后,超过了7.3万元,合资/合作非欧美企业的年薪较低,约为6万。
        北京地区该职位的平均年薪逾5.8万元;其中外商独资企业的年薪为全国之最,将近8.5万元,而其余各类型企业的年薪都在5~6万元左右。
        广州地区该职位的平均年薪约为4.5万元;其中外商独资欧美企业的年薪最高,达到了7万元;合资/合作欧美企业也能拿到6.2万元的平均年薪,合资/合作非欧美企业就较逊色,年薪不到4万元。
        上海地区软件测试工程师的平均年薪为6.3万元,欧美独资和欧美合资的薪资不相上下,分别为7.9万和7.7万元。国营企业略高于平均线,达到6.5万元,其余各类企业则都表现平平。
        杭州地区该职位的平均年薪达到了5.5万元;其中外商独资欧美企业和合资/合资欧美企业的年薪相当,均为6.9万元,国营企业的薪资也颇吸引人,超过了5.9万元,民营/私企和合资/合作非欧美企业的年薪均不到5万元。
        大连地区该职位的平均年薪为3.8万元;其中外商独资企业和合资/合作欧美企业的年薪均超过了4.7万元;国营企业的软件测试工程师的年薪也近4万元左右,而民营/私企和合资/合作非欧美企业的年薪则相对较低。
        福利
        上海地区的软件测试工程师享有的带薪年假是全国各地最多的,一年中平均有10天,北京、广州、大连均为8天,杭州和深圳相对较少,为6天。
        以上这些地区在软件测试的培训方面都做得不错,基本上均有6成以上的从业者可享受到公司提供的培训计划,但上海的软件工程师的培训比例不到5成。杭州和深圳两地的培训是全国各地区最出色的,逼近8成。
        深圳、上海均有2成的从业者可享受房贴或者补充住房公积金,大连和北京则有3成以上的从业者可享受公司的房贴或者补充住房公积金,广州更是达到了4成以上,而杭州此项福利的比例较低,仅为1成。
  • [论坛] 软件测试工程师薪资调查

    2007-10-21 10:03:01

    因修正错误而存在——软件测试工程师    所属门派:IT业
        “假如存在没有任何错误的程序,那么世界也会不复存在。”
        因错误而存在,因修正错误而存在,这就是软件测试工程师的存在之道。虽然测试不是解决错误的根本举措,但却是必须的手段。
        软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。
        简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。据有关调查数据表明,目前国内许多软件企业内部的测试人员和开发人员之比在1:5,与国外软件业1:1的比例还相去甚远。
        门派技能:
        软件测试工程师主要职责为:1、负责项目/产品的测试工作,分析产品需求,建立测试环境和计划,保证产品质量以及测试工作的顺利进行;2、按照软件工程规范和项目管理流程,实施、管理和知道软件开发不同阶段的各种测试,并提交测试报告。测试的计划安排包括人员安排、进度、使用的软硬件环境、测试的流程等;3、提交测试报告,并撰写用户说明书;4、参与软件测试技术和规范的改进和制定。
        入门资质:
        一般需要至少专科学历,一到两年测试工作经验。要熟悉软件的测试技术、方法、流程、测试文档,若想进一步提升,还要熟悉自动化测试的流程、管理及深层开发(包括测试框架等);了解若干主流测试工具,如功能测试工具winrunner、quicktestpro,性能测试工具LoadRunner,配置管理工具TestDirecter, Visiual Source Safe等;熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP;了解软件工程,软件生命周期模型基础,了解软件配置管理;能够根据不同企业的产品特点,要求了解相应的开发测试方法。对于资深的软件测试人员,有些企业还要求其本身有自主开发测试工具的能力。
        由于需要与开发人员及时沟通,因此作为一个出色的软件测试工程师,还需要有良好的沟通技巧以及优秀的言语表达能力,具备良好的团队合作精神。
        入门经:
        缜密的逻辑思维能力为了应对软件使用者千差万别的使用习惯和软件在使用过程中出现的各种现象,软件测试工程师应该具有逆向思维能力,能够以用户的角度出发,捕获一切可能性,对细节有不同寻常的关注能力。此外,软件测试工程师还要有穷追到底的精神,并且要善于沟通和撰写各类专业报告。
        出色的沟通能力要成为优秀的软件测试工程师,要具备出色的沟通能力和表达能力,既能够和技术开发人员沟通无碍,又能用简洁明了的话语向客户、管理者等这些非技术人员阐述系统在哪些方面还有缺失有待改进。在同开发人员的沟通过程中,要注意沟通技巧,提高沟通效率,和开发人员保持良好的人际关系。当测试人员发现软件有问题时,不仅需要跟开发人员沟通,找到问题出在哪儿,阐述自己挑错的理由,有时候甚至要提出解决方案,直接参与前期需求和代码的修改。一个优秀的软件测试工程师能够适时地站在各自的立场上考虑、解释并解决问题,从而尽量避免冲突和对抗。
        全面的技术能力作为软件测试工程师,虽然无须精通各种语言各类技术,但必须全面理解被测软件系统,明白该使用何种工具进行测试。要做到这一点一般需要有一定的编程经验,这些经验可以加深对软件开发过程的理解。
        耐得住性子 软件测试工作是枯燥的,甚至重复性的,有时需要花费惊人的时间去分离、识别和分派一个错误,因此需要测试人员能静得下心耐得住性子。这个工作不容许有丝毫的心浮气躁。同时,逻辑严密但不乏重复成分的测试工作也容易使人倦怠,因此需要一定的自我督促能力。
        规范测试流程公司不正规的测试流程,不标准的测试方法,将使软件测试人员终日陷入碌碌无为的点击按钮的不良状态中。
        晋阶易筋经:
        初级测试工程师
        入门级,具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;
        测试工程师
        能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;
        高级测试工程师
        帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;
        Team Leader
        一般具有5年左右工作经验,负责管理一个小团队。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示;
        测试经理
        能够担当测试领域内的整个开发生存周期业务,能够为用户提供交互和大量演示,负责项目成本、进度安排、计划和人员分工;
        计划经理
        具有多年纯熟的开发与支持(测试/质量保证)活动方面的经验,管理从事若干项目的人员以及整个开发生存周期,负责把握项目方向与盈亏责任。
        秘传“薪”经:
        薪资黄金点
        软件测试工程师在IT行业中越来越受到重视,其薪资也节节高升。
        测试工程师的起薪从2000~5000元/月不等,若有四年工作经验的话,薪资在8000元/月左右,具体视不同地域、不同性质企业、测试工程师的不同能力而定。一般工作5~8年的软件测试工程师的薪资是刚出道时的新手的一倍,而10年以上工作经验的软件测试工程师薪资却走了下坡路,和5~8年的从业者持平甚至有些企业开出了略低的薪资,看来这行的折旧率较高。
        软件测试行业的从业者7成左右都拥有本科学历,本科学历的从业者的薪资约为大专学历从业者的1.33倍左右,而硕士学历的从业者薪资起点明显高于本科学历从业者,约为后者的1.49倍。一般外语能力精通者的薪资为平均薪资的1.29倍左右,熟练者为平均薪资的1.09倍,值得注意的是,深圳、杭州和大连的外语能力精通者的薪资均超出平均薪资不少,其中杭州的外语能力精通者的薪资是平均薪资的1.79倍。
        以3.5年左右从业工作经验的软件测试工程师的各地薪资情况来看:深圳地区的平均年薪是全国各城市最高的,超出7万元,其中外商独资欧美企业的年薪为7.8万元,国营企业的年薪紧随其后,超过了7.3万元,合资/合作非欧美企业的年薪较低,约为6万。
        北京地区该职位的平均年薪逾5.8万元;其中外商独资企业的年薪为全国之最,将近8.5万元,而其余各类型企业的年薪都在5~6万元左右。
        广州地区该职位的平均年薪约为4.5万元;其中外商独资欧美企业的年薪最高,达到了7万元;合资/合作欧美企业也能拿到6.2万元的平均年薪,合资/合作非欧美企业就较逊色,年薪不到4万元。
        上海地区软件测试工程师的平均年薪为6.3万元,欧美独资和欧美合资的薪资不相上下,分别为7.9万和7.7万元。国营企业略高于平均线,达到6.5万元,其余各类企业则都表现平平。
        杭州地区该职位的平均年薪达到了5.5万元;其中外商独资欧美企业和合资/合资欧美企业的年薪相当,均为6.9万元,国营企业的薪资也颇吸引人,超过了5.9万元,民营/私企和合资/合作非欧美企业的年薪均不到5万元。
        大连地区该职位的平均年薪为3.8万元;其中外商独资企业和合资/合作欧美企业的年薪均超过了4.7万元;国营企业的软件测试工程师的年薪也近4万元左右,而民营/私企和合资/合作非欧美企业的年薪则相对较低。
        福利
        上海地区的软件测试工程师享有的带薪年假是全国各地最多的,一年中平均有10天,北京、广州、大连均为8天,杭州和深圳相对较少,为6天。
        以上这些地区在软件测试的培训方面都做得不错,基本上均有6成以上的从业者可享受到公司提供的培训计划,但上海的软件工程师的培训比例不到5成。杭州和深圳两地的培训是全国各地区最出色的,逼近8成。
        深圳、上海均有2成的从业者可享受房贴或者补充住房公积金,大连和北京则有3成以上的从业者可享受公司的房贴或者补充住房公积金,广州更是达到了4成以上,而杭州此项福利的比例较低,仅为1成。
  • vss使用手册

    2007-10-18 23:15:30

    软件测试的相关文档,测试代码、自动化测试程序代码均需要作为配置项,纳入到配置管理库中。vss是一个简单实用的工具,希望大家测试工作中,合理的使用vss.

    1 VSS概述
        版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。
    Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。你还会发现,用VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。
    VSS可以同 Visual Basic、Visual C++、Visual J++、Visual InterDev、Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。Visual SourceSafe 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。Visual SourceSafe 面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。

    1.1    VSS中的文件
    当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他,该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。
    当你完成修改之后,需要将文档 签入(check in)VSS。这个操作从你的工作文件夹(working folder)中复制被你修改的文档,并将它放回VSS数据库,以便其他用户能够及时看到文档的改动。VSS能够保存文档的所有改动,并显示最新版本,同时早期版本也会被跟踪记录下来。VSS对反增量技术的运用,仅需要用很少的磁盘空间就能使得用户获取文档的所有版本。
    如果你没有修改文档,你可以执行撤消签出(undo check out)命令,文档将被保存为被签出(check out)之前的状态。
    如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再选择查看文档(view),来查看你的文档的最新版本。

    1.2    VSS中的项目
    项目(project)是指用户存储在VSS数据库中的所有文件(file)的集合。用户可以在项目之间或项目内部实现文件的添加(add)、删除(delete)、编辑(edit)、共享(share)。一个“项目(project)”在很大程度上类似于一个普通系统的的文件夹,不同的是它能更好地支持文件合并(merge)、跟踪(archive)和版本控制(version control)功能。
    文件保存在VSS数据库中的项目(project)里。你无须管理存储在VSS 中的文件正本,除非你要检查或与其它拷贝进行比较。
    VSS为每一位用户提供了一份备份文件放入工作文件夹(working folder),供用户对文件进行查看与编辑。尽管没有工作文件夹也可以查看文件,但要想真正实现对文档的处理,必须建立工作文件夹。

    1.3    VSS的版本控制功能
    VSS能够保存文件的多个版本,包括文件版本之间每一处微小的变动。版本控制有以下几方面的内容:
    l    组内合作——在缺省的情况下,一般一个文件在某一时间只允许一个用户对其进行修改,这样可以防止文件意外地被其他用户改动或者覆盖。但管理员可以改动这种缺省的设置,允许文件多层签出。这种设置也能防止过多的、不必要的改动。
    l    版本追踪——VSS能够对源代码和其他文件进行存储和早期版本的追踪,从而实现重建文件早期版本等有关功能。
    l    跨平台开发——在多平台开发的情况下,版本追踪用于维护核心代码。
    l    代码的再使用—— 追踪程序基准使得代码可重用。

    1.4    文件的拆分和共享
    在VSS中可以实现一个文件被多个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去。这正提倡了代码重用。在file菜单中的properties中,点击link,可以查看某一文件的共享情况。
    拆分(branch)是将文件从原来共享的项目中分离出来的过程。它使得VSS可以实现从不同的路径追踪文件。
    注:在其他版本控制系统中,分支是通过跟踪版本号来实现的。例如:版本“2.3.9.2”是版本2.3的第二个修订版本的第九个分支。而VSS通过明显不同的项目名称实现对文件分支的跟踪。
    拆分文件就断开了共享连接,使得本项目中的文件与其他原来共享的项目无关。对此文件的修改将不会再反映到其他项目上。拆分是这样被建立的:两个文件以前有着共同的历史记录,从实现拆分开始,他们的历史记录将被VSS分别追踪。
    拆分文件之后,link按纽将不再显示已断开的连接,但你可以用path(file菜单中的properties项)按纽浏览拆分的历史记录。
    共享(share)文件就是在多个项目间建立文件的连接。拆分(branch)文件就是在项目之间建立了不同的文件路径。

    1.5    工作文件夹(working folder)
    VSS是存储和管理文件的工具,但是编辑和编译文件必须在VSS指定文件夹中进行。这个文件夹叫工作文件夹,它可以是现存的文件夹,也可以是VSS新建的文件夹。VSS浏览器在文件列表上方显示了文件的工作文件夹的路径。
    在VSS系统中,工作文件夹才是你真正用于处理文档的地方。当你要编辑或修改某个文档时,必须对文档实施check out 操作(详见3.3.5修改和编辑文件),VSS将该文档从项目中拷贝出来,放入你的工作文件夹。当你修改完毕并check in 文件之后,VSS又将文件重新拷贝到数据库中以记录你的修改。

    一旦你将文件签出,VSS就开始在你的本地机上创建并管理你的工作文件夹。
    每一个用户、每一个项目或每一台微机都可以有自己的工作文件夹。如果Joe在项目$/SpreadSheet和$/WordProcessor上工作,他就有相应的2个不同的工作文件夹。如果Hanna在同样的项目上工作,对于每一个项目她又有自己的工作文件夹。
    当你为某个项目设置了工作文件夹,你可以用它来放置你该项目中包括子项目再内的所

    2    VSS的客户端安装

    2.1 安装VSS的系统条件
    l    计算机/处理器: 处理器为486DX/66MHz或以上PC机推荐Pentium或更高级的处理器。
    l    内存:Windows 95或以后的版本要求16 MB RAM (推荐32 MB);Windows NT 4.0要求24 MB (推荐32 MB)。
    l    硬盘:客户机:典型安装:59MB; 72 MB;安装过程:66 MB;
    l    服务器:典型安装:128 MB;最大安装:141 MB;
    l    附加硬盘要求:Internet Explorer:典型为43 MB,最大59 MB;MSDN:典型57MB,最大59 MB
    l    驱动器:CD ROM
    l    显示:VGA或更高级显示器,推荐Super VGA。
    l    操作系统:Microsoft Windows 95或以后版本或者Microsoft Windows NT 4.0,NT要求Service Pack 3或更高版本(包括Service Pack 3〕
    l    外围设备/其它: Microsoft Internet Explorer 4.01 Service Pack 1 (包含).

    2.2 从网络安装VSS客户端
    1)    打开本地计算机的“网上邻居”属性对话框;
    2)    点击“配置”按纽;
    3)    将“MICROSOFT网络用户”的属性设置为:登录到WINDOWS NT 域,域名为PLANNING;
    4)    添加TCP/IP、NETBEUI、IPX/SPX协议;
    5)    重新启动计算机,登录“planning”域;
    注:管理员为每位NT用户设置的登录密码为“111”,用户在第一次登录时,计算机会提示用户修改密码。
    6)    从“网上邻居”的“planning”域中查找服务器“VSSDATA”;
    7)    打开共享的“VSS”文件夹并双击“NETSETUP”;
    8)    按照安装程序的提示开始安装。

    3    VSS的基本使用操作

    3.1 登录VSS
        点击VSS图标或从程序菜单中运行Visual SourceSafe 6.0,即可打开VSS浏览器。
    如果用户登录的VSS密码和登录PLANNING域的密码是一致的,系统将不再提示输入进入VSS数据库的密码;如果用户为VSS设置的密码与登录PLANNING域的密码不同,系统将提示用户输入VSS的登录密码。关于如何修改VSS用户密码,详见“3.2.14修改用户密码”。

    3.2 VSS浏览器

    当你一打开VSS,如果你设定了密码的话,它会提示你输入密码。如果你没有设定密码,你可以直接看到浏览器。在浏览器上,你可以浏览你的数据库、查看项目列表、显示文件统计信息、执行命令对文件和项目进行操作等。浏览器的最上方的标题栏是你当前连接的数据库。VSS使用符号来提供有关文件和项目信息。
    菜单栏的下面是常用工具栏,这里有许多常用命令的按纽,它可以帮你快速地执行对文件的操作。
    在项目栏中,显示有项目列表,包括特殊项目的有关信息。文件栏显示了当前项目的所有文件的列表。结果栏显示当前你所执行的操作的结果。

    3.3 VSS基本操作

    3.3.1创建新的文件夹
    1)    选中要创建新文件夹的项目(上级文件夹);
    2)    在file菜单中选中creat project;
    3)    写入要添加的文件夹的名称,同时也可以在comment栏中为新建的文件夹添加备注;
    4)    点击OK。

    3.3.2添加文件夹
    1)    选中你要添加文件夹的项目(上级文件夹);
    2)    在file菜单中选中add files;
    3)在文件夹列表中选中要添加的文件夹;
    4)点击add,同时可以在comment栏为你添加的文件夹做一个简单备注;
    5)如果你要连同子文件夹一起添加,选择Recursive;
    5)    点击OK,成功添加了一个带有备注的文件夹。或者点击close,退出操作,返回add  files对话框,点击close。

    3.3.3添加文件
    3.3.2.1使用add命令添加文件
    1)选中你要添加文件的文件夹;
    2)    在fil菜单中选中add files;
    3)    在文件列表中选中要添加的文件;如果要添加多个文件,可以使用CTRL键或SHIFT键,同时选中多个文件;
    4)点击add,同时可以在comment栏为你添加的文件夹做一个简单备注;
    5)点击OK。
    3.3.2.2用拖动的方法添加文件/文件夹
    1)打开VSS浏览器,调整其大小,使得Windows资源管理器能够显示出来;
    2)打开Windows资源管理器,调整大小,使得两个浏览器可以同时显示;
    3)从Windows资源管理器中选择你要添加的文件或文件夹;
    4)    拖动你所选的文件或文件夹,放入VSS浏览器,文件被添加进项目,而添加的文件夹将作为项目的子项目。

    3.3.3查看文件
    1)    在文件列表中选中要查看的文件;
    2)    在EDIT菜单中选中view,打开对话框;
    3)选中view SourceSafe’s copy of this file;
    4)点击OK。

    3.3.4创建工作文件夹
    在执行签入(check in)、签出(check out)、撤消签出(undo check out)、取出最新版本(get latest version)和文件合并(merge branches)等命令时都必须使用工作文件夹。工作文件夹可以随时设定或修改,VSS系统中可以通过两种方式设置工作文件夹。
    3.3.4.1专门创建工作文件夹
    1)    在VSS浏览器的文件或项目列表中选中要设置工作文件夹的文件/文件夹;
    2)    在file菜单中选择set working folder,打开对话框;
    3)    在资源管理列表中选择或新建文件夹;
    4)    点击OK。
    3.3.4.2利用check out操作设置工作文件夹
    在对文件执行check out操作时,如果该文件还没有设置工作文件夹,系统会提示用户为文件创建或指定工作文件夹,用户可以根据系统的提示对文件进行工作文件夹的设置。

    3.3.5修改和编辑文件
    1)    在edit菜单中选中edit file,打开对话框;
    2)    选择check out this file and edit it in your working folder;
    3)    点击OK。
    注:如果用户已经为文件设置了工作文件夹,VSS会将该文件的一个COPY放入你的工作文件夹并打开文件,让用户进行修改和编辑;如果用户还没有为文件设置工作文件夹,VSS系统会提醒用户设置工作文件夹,用户可根据系统提示,先设置工作文件夹,才可以对文件进行编辑。

    3.3.6移动文件/文件夹
    3.3.6.1移动文件
    你只有一种方法移动文件:将文件共享(share)到项目中,再将其从原来的项目中delete或是destroy。移动文件后,历史信息仍然有效。但是你不能用move命令来移动单个的文件。
    3.3.6.2移动文件夹(project)
    注:要使用移动(move)命令,必须先请管理员为你设置对移动目的项目的添加(add)权限和对源项目中文件的破坏(destroy)权限。
    使用移动命令你可以重新定位子文件夹,将其从一个文件夹移动到另一个文件夹中。这个命令重新定义了被移动文件夹的路径。
    这个命令不可以重命名文件;你只能通过执行重命名命令来实现它。这个移动命令不会改变文件夹的内容或其中子文件夹的历史信息,它只会影响到新的和旧的上级文件夹的历史信息。
    警告:当你移动一个文件夹之后,就不能再如实地重建其上级文件夹的早期版本。
    移动文件夹的具体操作步骤如下:
    1)    选中要移动的文件夹;
    2)    在file菜单中选中move,打开对话框;
    3)    在列表中选择目标文件夹;
    4)    点击OK。

    3.3.7共享文件/文件夹(share)
    1)    在VSS浏览器中选择你要共享的目标项目。
    2)    在SourceSafe菜单中选择share,打开共享对话框。
    3)    在file to share列表中选择你要共享的文件,如果文件没有显示,可以旁边的项目列表中查找。
    4)    点击share。
    5)    点击close。

    3.3.8拆分文件(branch)
    3.3.8.1拆分被共享的文件
    1)    在浏览器中选中你想要拆分的文件;
    2)    在SourceSafe菜单中选择branch,打开拆分对话框;
    3)    在comment中填写备注;
    4)    点击OK。
    3.3.8.2用一步操作完成文件的拆分与共享
    1)    在VSS浏览器中选择你要branch/share的项目;
    2)    在SourceSafe菜单中打开share对话框;
    3)    在file to share列表中选择要共享的文件,如果你要的文件没有显示,在项目列表中

    3.3.9删除/恢复文件或文件夹
    如果想从VSS中移走某个文件,你必须首先确定是仅仅从项目中移走,还是从VSS数据库中移走。你还必须确定是要删除文件,但使其能够恢复,还是永久性地破坏它。
    VSS中有以下三种途径可以实现从数据库中移走文件。
    3.3.3.9.1删除(delete)
    将文件从项目中移走。该文件仍然存在于你的VSS数据库和其它共享该文件的项目中,你可以恢复它。此命令同样适用于项目。
    1)    选择文件或项目;
    2)    选择file菜单中的delete命令;
    3)    点击OK。
    3.3.3.9.2破坏(destroy)
    删除(delete)对话框中有永久性破坏(the Destroy Permanently)选项,你一旦选中它,文件或项目将从VSS数据库中被移走,你不能再恢复它。此外,当Destroy 和Destroy Permanently命令用于共享文件时,它只作用于当前文件夹,其它共享的文件夹仍然保留该文件,该文件依然保存在VSS数据库中。
    1)    选择文件或项目;
    2)    选择file菜单中的delete命令;
    3)    选中 Destroy Permanently 选项;
    4)    点击OK。
    3.3.3.9.3清除(Purge)
    这个命令将永久性地移走你已经删除的文件或项目,但没有破坏它。你可以使用这一命令清空你的文件或项目中的所有内容,但不能恢复它们。
    1)    在VSS浏览器中选中项目;
    2)    打开file菜单的properties对话框,按delete按纽;
    3)    在列表中选择要清除的文件名;
    4)    点击purge;
    5)    如果要继续,在VSS给你的提示栏中点击yes。

    3.3.10查看文件/文件夹的历史信息或早期版本
    在历史信息中保存有每一个文件的详细信息。在history对话框中,你不仅可以浏览到文件的版本信息、备注、以及文件的相关历史记录,也能够获取文件的某个旧版本。
    注:只有文件(file)可以从历史信息中check out,文件夹(project)不能从中check out。
    你还可以从历史信息对话框中执行get、check out、diff、pin、unpin、roll back和reprot等操作。
    要查看历史信息:
    1)    在tool菜单选中show history,打开history options对话框;
    2)    点击OK。

    3.3.11获取文件的最新版本
    1)    选择你要操作的文件,也可以是多个文件或某个项目;
    2)    在SourceSafe菜单中选择get latest version;
    3)    如果你事先没有设定工作文件夹,VSS会提示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹;
    4)    如果你已经确定了选项,VSS就会显示get latest version对话框,你就可以从当前的项目中获取文件的最新版本的备份,它放在你的工作文件夹中。

    3.3.12获取文件的早期版本
    1)    选中你要查看的文件;
    2)    在tool菜单中选中show history,打开history option对话框;
    3)    点击OK,打开history对话框;
    4)    选中你要看的版本;
    5)    点击get,打开get对话框;
    6)    如果你事先没有设定工作文件夹,VSS会提示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹;
    7)    在取出对话框中点击OK,文件版本的备份就会从当前项目调入你的工作文件夹。

    3.3.13修改用户密码
    使用更改密码命令来设置或更改你的密码。要更改密码,必须首先知道当前的密码,如果你忘记了自己的密码,请与管理员联系。
    登录的时候,VSS会提示你输入密码以确认你的身份。如果管理员为你设置的用户名与你的网络名是相同的,VSS将不会再提示你输入密码。
    注:你的VSS的密码可以与你使用的操作系统的密码相同,也可以不同,它并不会替换你操作系统的密码。
        如何更改密码:
    1)    从tool菜单打开change password对话框;
    2)    在旧密码框里键入你当前的密码;
    3)    在新密码框里键入你的新密码;
    注:密码可以设1到15个字符,它以*的形式显示;
    4)    在确认框里再次键入新密码;
    5)    点OK。

    3.3.15打开/关闭数据库
    如果你使用了VSS,你的文件和项目就会被存储在一个数据库中。它安全地保存你的信息并为你提供重要的历史信息和版本跟踪。要创建新的数据库,要与VSS管理员联系。
    3.3.15.1打开现有的数据库
    要运行你的VSS,你必须与存储你的文件的数据库连接。这一步通常由VSS自动完成,除非你要选择其他的数据库。如果数据库还没有安装,请与管理员联系。
    1)    从file菜单,选择open SourceSafe database,打开对话框;
    2)    从数据库列表中选择一个数据库;
    3)    点击open,打开数据库。
    3.3.15.2关闭数据库
    你只能在一个数据库中进行工作。因此,如果要关闭一个数据库,只需打开另一个数据库即可。
  • [论坛] C/C++头文件一览

    2007-10-15 17:25:09

    #include <assert.h>    //设定插入点
    #include <ctype.h>     //字符处理
    #include <errno.h>     //定义错误码
    #include <float.h>     //浮点数处理
    #include <fstream.h>    //文件输入/输出
    #include <iomanip.h>    //参数化输入/输出
    #include <iostream.h>   //数据流输入/输出
    #include <limits.h>    //定义各种数据类型最值常量
    #include <locale.h>    //定义本地化函数
    #include <math.h>     //定义数学函数
    #include <stdio.h>     //定义输入/输出函数
    #include <stdlib.h>    //定义杂项函数及内存分配函数
    #include <string.h>    //字符串处理
    #include <strstrea.h>   //基于数组的输入/输出
    #include <time.h>     //定义关于时间的函数
    #include <wchar.h>     //宽字符处理及输入/输出
    #include <wctype.h>    //宽字符分类

    //////////////////////////////////////////////////////////////////////////

    标准 C++ (同上的不再注释)

    #include <algorithm>    //STL 通用算法
    #include <bitset>     //STL 位集容器
    #include <cctype>
    #include <cerrno>
    #include <clocale>
    #include <cmath>
    #include <complex>     //复数类
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <ctime>
    #include <deque>      //STL 双端队列容器
    #include <exception>    //异常处理类
    #include <fstream>
    #include <functional>   //STL 定义运算函数(代替运算符)
    #include <limits>
    #include <list>      //STL 线性列表容器
    #include <map>       //STL 映射容器
    #include <iomanip>
    #include <ios>       //基本输入/输出支持
    #include <iosfwd>     //输入/输出系统使用的前置声明
    #include <iostream>
    #include <istream>     //基本输入流
    #include <ostream>     //基本输出流
    #include <queue>      //STL 队列容器
    #include <set>       //STL 集合容器
    #include <sstream>     //基于字符串的流
    #include <stack>      //STL 堆栈容器    
    #include <stdexcept>    //标准异常类
    #include <streambuf>    //底层输入/输出支持
    #include <string>     //字符串类
    #include <utility>     //STL 通用模板类
    #include <vector>     //STL 动态数组容器
    #include <cwchar>
    #include <cwctype>

    using namespace std;

    //////////////////////////////////////////////////////////////////////////

    C99 增加

    #include <complex.h>   //复数处理
    #include <fenv.h>    //浮点环境
    #include <inttypes.h>  //整数格式转换
    #include <stdbool.h>   //布尔环境
    #include <stdint.h>   //整型环境
    #include <tgmath.h>   //通用类型数学宏
  • [论坛] 什么是数据库事务

    2007-10-10 22:07:02

    什么是数据库事务
      数据库事务是指作为单个逻辑工作单元执行的一系列操作。
    设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:
      · 更新客户所购商品的库存信息
      · 保存客户付款信息--可能包括与银行系统的交互
      · 生成订单并且保存到数据库中
      · 更新用户相关信息,例如购物数量等等
    正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
    数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
      数据库事务的ACID属性
    事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性:
      · 原子性
    事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。
      · 一致性
    事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。
      · 隔离性
    由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。
      · 持久性
     事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
    DBMS的责任和我们的任务
    企业级的数据库管理系统(DBMS)都有责任提供一种保证事务的物理完整性的机制。就常用的SQL Server2000系统而言,它具备锁定设备隔离事务、记录设备保证事务持久性等机制。因此,我们不必关心数据库事务的物理完整性,而应该关注在什么情况下使用数据库事务、事务对性能的影响,如何使用事务等等。
  • [论坛] 在网上发简历要小心被骗~

    2007-10-10 14:41:46

    前几天在智联招聘上面发了一份简历,想找份实习的工作,今天上午收到了一条短信,内容如下:

      这里是广电集团,面试为10月11下午二点,北京东路668号(福建中路)科技京城东5楼,找唐经理。地铁一、二号线、14、19、801、21
    手机号码:13641996574

    当时看到这条短信小激动了一下,然后想想一个公司招聘怎么会连电话也不打,就发一条短信呢。于是把这个手机号码在网上查了一下,果然收到这条短信的还不止我一个人,根本没有这个公司,幸好查了一下,不然被骗了就迟了。希望大家以后要提高警惕,首先要查查电话号码和公司资料,有骗子的信息发到网上提醒大家!
  • [论坛] 线程与进程的区别

    2007-10-05 19:18:17

    今天周峰老师提了一个进程与线程区别的问题,在下特地在网上搜了一下,现将结果分享如下:

    简单的说,你每启动一个程序,就启动了一个进程。在Windows 3.x下,进程是最小运行单位。
    在Windows 95/NT下,每个进程还可以启动几个线程,比如每下载一个文件可以单独开一个线程。
    在Windows 95/NT下,线程是最小单位。WINDOWS的多任务特性使得线程之间独立运行,但是它们彼此共享虚拟空间,
    也就是共用变量,线程有可能会同时操作一片内存。

    线程与进程的区别

    多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。用过UNIX操作系统的读者知道进程,在UNIX操作系统中,
    每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,
    但进程和线程有什么区别呢?

    进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

    线程的划分尺度小于进程,使得多线程程序的并发性搞。

    另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

    线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,
    必须依存在应用程序中,由应用程序提供多个线程执行控制。

    从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,
    来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

    进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。
    以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有
    用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。

    C、C++、Java等语言编写的源程序经相应的编译器编译成可执行文件后,提交给计算机处理器运行。这时,处在可执行状态中的应用程序称为进程。
    从用户角度来看,进程是应用程序的一个执行过程。从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU 时间片等资源的基本单位,
    是为正在运行的程序提供的运行环境。进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,
    而进程则是处于动态条件下由操作系统维护的系统资源管理实体。多任务环境下应用程序进程的主要特点包括:


    ●进程在执行过程中有内存单元的初始入口点,并且进程存活过程中始终拥有独立的内存地址空间;

    ●进程的生存期状态包括创建、就绪、运行、阻塞和死亡等类型;

    ●从应用程序进程在执行过程中向CPU发出的运行指令形式不同,可以将进程的状态分为用户态和核心态。
    处于用户态下的进程执行的是应用程序指令、处于核心态下的应用程序进程执行的是操作系统指令。

    在Unix操作系统启动过程中,系统自动创建swapper、init等系统进程,用于管理内存资源以及对用户进程进行调度等。
    在Unix环境下无论是由操作系统创建的进程还要由应用程序执行创建的进程,均拥有唯一的进程标识(PID)。

    线程与进程
    相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
    在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。

    线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
  • [论坛] MySql,Mssql,Oracle的优缺点和异同(欢迎补充)

    2007-10-05 19:17:11

    MySql:
    优点: 1.支持5000万条记录的数据仓库
    2.适应于所有的平台
    3.是开源软件,版本更新较快
    4.性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。
    5.价格便宜
    缺点: 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能


    MsSqlserver:
    优点: 1.真正的客户机/服务器体系结构
    2.图形化的用户界面,使系统管理和数据库管理更加直观、简单
    3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
    4.与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft  BackOffice产品集成。
    5.有很好的伸缩性,可以跨平台使用。
    6.提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。


    Oracle:
    优点: 1.Oracle的稳定性要比Sql server好。
    2.Oracle在导数据工具sqlload.exe功能比Sqlserver的Bcp功能强大,Oracle可以按照条件把文本文件数据导入.
    3.Oracle的安全机制比Sql server好。
    4.Sql server的易用性和友好性方面要比Oracle好。
    5.在处理大数据方面Oracle会更稳定一些。
    6.Sql Server在数据导出方面功能更强一些。
    7.处理速度方面比Oracle快一些,和两者的协议有关.
    缺点: 价格昂贵

    在下搜集总结了这些,希望大家补充~!
  • [论坛] sql server2000忘记sa密码的解决方法

    2007-10-04 14:29:19

    第一步,以“windows身份验证”方式登录SQL查询分析器
    第二步,执行
                 EXEC sp_password NULL,'hello','sa'
    就可以将sa的密码改为hello了
  • [论坛] SQLServer和Oracle的常用函数对比

    2007-10-04 14:18:15

    1.绝对值     
        S:select   abs(-1)   value   
        O:select   abs(-1)   value   from   dual   
       
        2.取整(大)     
        S:select   ceiling(-1.001)   value     
        O:select   ceil(-1.001)   value   from   dual   
       
        3.取整(小)     
        S:select   floor(-1.001)   value     
        O:select   floor(-1.001)   value   from   dual   
       
        4.取整(截取)   
        S:select   cast(-1.002   as   int)   value     
        O:select   trunc(-1.002)   value   from   dual     
       
        5.四舍五入   
        S:select   round(1.23456,4)   value   1.23460   
        O:select   round(1.23456,4)   value   from   dual   1.2346   
       
        6.e为底的幂     
        S:select   Exp(1)   value   2.7182818284590451     
        O:select   Exp(1)   value   from   dual   2.71828182   
       
        7.取e为底的对数   
        S:select   log(2.7182818284590451)   value   1   
        O:select   ln(2.7182818284590451)   value   from   dual;   1   
       
        8.取10为底对数   
        S:select   log10(10)   value   1   
        O:select   log(10,10)   value   from   dual;   1   
       
        9.取平方   
        S:select   SQUARE(4)   value   16   
        O:select   power(4,2)   value   from   dual   16   
       
        10.取平方根   
        S:select   SQRT(4)   value   2   
        O:select   SQRT(4)   value   from   dual   2   
       
        11.求任意数为底的幂   
        S:select   power(3,4)   value   81   
        O:select   power(3,4)   value   from   dual   81   
       
        12.取随机数   
        S:select   rand()   value     
        O:select   sys.dbms_random.value(0,1)   value   from   dual;   
       
        13.取符号   
        S:select   sign(-8)   value   -1   
        O:select   sign(-8)   value   from   dual   -1   
        ----------数学函数   
       
        14.圆周率   
        S:SELECT   PI()   value   3.1415926535897931   
        O:不知道   
       
        15.sin,cos,tan   参数都以弧度为单位   
        例如:select   sin(PI()/2)   value   得到1(SQLServer)   
       
        16.Asin,Acos,Atan,Atan2   返回弧度   
       
        17.弧度角度互换(SQLServer,Oracle不知道)   
        DEGREES:弧度-〉角度   
        RADIANS:角度-〉弧度   
       
        ---------数值间比较   
       
        18.   求集合最大值   
        S:select   max(value)   value   from     
        (select   1   value   
        union   
        select   -2   value   
        union   
        select   4   value   
        union   
        select   3   value)a   
       
        O:select   greatest(1,-2,4,3)   value   from   dual   
       
        19.   求集合最小值   
        S:select   min(value)   value   from     
        (select   1   value   
        union   
        select   -2   value   
        union   
        select   4   value   
        union   
        select   3   value)a   
       
        O:select   least(1,-2,4,3)   value   from   dual   
       
        20.如何处理null值(F2中的null以10代替)   
        S:select   F1,IsNull(F2,10)   value   from   Tbl   
        O:select   F1,nvl(F2,10)   value   from   Tbl   
    --------数值间比较   
       
        21.求字符序号   
        S:select   ascii('a')   value   
        O:select   ascii('a')   value   from   dual   
       
        22.从序号求字符   
        S:select   char(97)   value   
        O:select   chr(97)   value   from   dual   
       
        23.连接   
        S:select   '11'+'22'+'33'   value   
        O:select   CONCAT('11','22')||33   value   from   dual   
       
        23.子串位置   --返回3   
        S:select   CHARINDEX('s','sdsq',2)   value     
        O:select   INSTR('sdsq','s',2)   value   from   dual   
       
        23.模糊子串的位置   --返回2,参数去掉中间%则返回7   
        S:select   patindex('%d%q%','sdsfasdqe')   value     
        Oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR>  select   INSTR('sdsfasdqe','sd',1,2)   value   from   dual   返回6   
       
        24.求子串   
        S:select   substring('abcd',2,2)   value     
        O:select   substr('abcd',2,2)   value   from   dual   
       
        25.子串代替   返回aijklmnef   
        S:SELECT   STUFF('abcdef',   2,   3,   'ijklmn')   value   
        O:SELECT   Replace('abcdef',   'bcd',   'ijklmn')   value   from   dual   
       
        26.子串全部替换   
        S:没发现   
        O:select   Translate('fasdbfasegas','fa','我'   )   value   from   dual   
       
        27.长度   
        S:len,datalength   
        O:length   
       
        28.大小写转换   lower,upper   
       
        29.单词首字母大写   
        S:没发现   
        O:select   INITCAP('abcd   dsaf   df')   value   from   dual   
       
        30.左补空格(LPAD的第一个参数为空格则同space函数)   
        S:select   space(10)+'abcd'   value   
        O:select   LPAD('abcd',14)   value   from   dual   
       
        31.右补空格(RPAD的第一个参数为空格则同space函数)   
        S:select   'abcd'+space(10)   value   
        O:select   RPAD('abcd',14)   value   from   dual   
       
        32.删除空格   
        S:ltrim,rtrim   
        O:ltrim,rtrim,trim   
       
        33.   重复字符串   
        S:select   REPLICATE('abcd',2)   value     
        O:没发现   
       
        34.发音相似性比较(这两个单词返回值一样,发音相同)   
        S:SELECT   SOUNDEX   ('Smith'),   SOUNDEX   ('Smythe')   
        O:SELECT   SOUNDEX   ('Smith'),   SOUNDEX   ('Smythe')   from   dual   
        SQLServer中用SELECT   DIFFERENCE('Smithers',   'Smythers')   比较soundex的差   
        返回0-4,4为同音,1最高   
       
        --------------日期函数   
       
        35.系统时间   
        S:select   getdate()   value   
        O:select   sysdate   value   from   dual   
       
        36.前后几日   
        直接与整数相加减   
       
        37.求日期   
        S:select   convert(char(10),getdate(),20)   value   
        O:select   trunc(sysdate)   value   from   dual   
        select   to_char(sysdate,'yyyy-mm-dd')   value   from   dual   
       
        38.求时间   
        S:select   convert(char(8),getdate(),108)   value   
        O:select   to_char(sysdate,'hh24:mm:ss')   value   from   dual   
       
        39.取日期时间的其他部分   
        S:DATEPART   和   DATENAME   函数   (第一个参数决定)     
        O:to_char函数   第二个参数决定   
      参数---------------------------------下表需要补充   
        year   yy,   yyyy     
        quarter   qq,   q   (季度)   
        month   mm,   m   (m   O无效)   
        dayofyear   dy,   y   (O表星期)   
        day   dd,   d   (d   O无效)   
        week   wk,   ww   (wk   O无效)   
        weekday   dw   (O不清楚)   
        Hour   hh,hh12,hh24   (hh12,hh24   S无效)   
        minute   mi,   n   (n   O无效)   
        second   ss,   s   (s   O无效)   
        millisecond   ms   (O无效)   
        ----------------------------------------------   
       
        40.当月最后一天   
        S:不知道   
        O:select   LAST_DAY(sysdate)   value   from   dual   
       
        41.本星期的某一天(比如星期日)   
        S:不知道   
        O:SELECT   Next_day(sysdate,7)   vaule   FROM   DUAL;   
       
        42.字符串转时间   
        S:可以直接转或者select   cast('2004-09-08'as   datetime)   value   
        O:SELECT   To_date('2004-01-05   22:09:38','yyyy-mm-dd   hh24-mi-ss')   vaule   FROM   DUAL;   
       
        43.求两日期某一部分的差(比如秒)   
        S:select   datediff(ss,getdate(),getdate()+12.3)   value   
        O:直接用两个日期相减(比如d1-d2=12.3)   
        SELECT   (d1-d2)*24*60*60   vaule   FROM   DUAL;   
       
        44.根据差值求新的日期(比如分钟)   
        S:select   dateadd(mi,8,getdate())   value   
        O:SELECT   sysdate+8/60/24   vaule   FROM   DUAL;   
       
        45.求不同时区时间   
        S:不知道   
        O:SELECT   New_time(sysdate,'ydt','gmt'   )   vaule   FROM   DUAL;   
       
        -----时区参数,北京在东8区应该是Ydt-------   
        AST   ADT   大西洋标准时间   
        BST   BDT   白令海标准时间   
        CST   CDT   中部标准时间   
        EST   EDT   东部标准时间   
        GMT   格林尼治标准时间   
        HST   HDT   阿拉斯加—夏威夷标准时间   
        MST   MDT   山区标准时间   
        NST   纽芬兰标准时间   
        PST   PDT   太平洋标准时间   
        YST   YDT   YUKON标准时间
  • 中秋节

    2007-09-26 00:19:05

    月到中秋分外明,今天又到了中秋节了,想想已经好几年没有在家里过中秋了,心中不免有些惆怅。

    我们今天上课,因为产品质量就剩下最后一点没讲完,于是今天周峰老师给我们把剩下的全部讲完了,这样我们下次课就可以开始正式讲测试技术了。虽然是中秋节,周峰老师也毅然放弃了和家人团圆的机会,执行着他作为一个老师的天职,仔仔细细认认真真地讲着课,非常的一丝不苟,我们非常感到。晚上我亲戚等我吃饭,虽然过了6点,我已渐渐有点心不在焉了,但是看到老师和我们一样,我还是耐下性子详细地做了笔记。周峰老师简直是我们心目中的偶像,这也许是我过的最不同寻常的一个中秋节了。呵呵~~

    从楼里走出来,圆圆的月亮早已高高挂在天上,天气很好。秋高气爽,上海的天空在霓虹灯的照耀下依然是那么美丽。

221/212>

数据统计

  • 访问量: 19543
  • 日志数: 22
  • 图片数: 1
  • 建立时间: 2007-09-01
  • 更新时间: 2008-01-10

RSS订阅

Open Toolbar