一个小小小小工具的总结

经常会因为重新做系统忘记备份Favorites目录中的链接,新做完系统后链接就丢失了,昨天晚上闲来就写了个很小小小的工具用于记录Favorites目录中的链接,保存在Xml文件中,并显示在TreeView中,并可打开TreeView中的链接节点。

1、当前用户的Favorites目录搜索获取链接信息

采用递归搜索,使用几个API函数就能完成,主要涉及的API函数为FindFirst、FindNext、GetPrivateProfilestring、ShGetSpecialFolderLocation、ShGetPathfromIDList等,具体使用可参照MSDN。

2、将链接信息保存在xml文件,可以将链接的信息保存在字符串中,直接保存成xml文件,注意保存的时候字符编码采用UTF8格式,否则TXMLDocument处理时会出错,默认的为Ansi,将String转换为UTF8保存即可。

<urls>
 <urlCategory Name="Category Name">
 <urlCategory Name="Category Name">
 <url Name="Url Title">urlPath(e.g. http://www.google.com)</url>
 …
 </urlCategory>
 <url Name="Url Title">urlPath(e.g. http://www.google.com)</url>
 …
 </urlCategory>
 …
 </urls>

3、读取xml文件显示在TreeView中,节点urlCategory为TreeView目录节点,只需获取其Name属性,url为TreeView超链接节点,需要获取Name属性及其节点的value,这里在TreeView显示的是Name属性。需要针对TTreeView进行小小的改造,针对TTreeNode定义TTreeHintNode如下。

TTreeHintNode=class(TTreeNode)
 public:
 constructor Create(AOwner: TTreeNodes);
 procedure Assign(Source: TPersistent); override;
 function GetNodeHint(Node:TTreeNode):string;
 procedure SetNodeHint(Node:TTreeNode;value:string);
 ……

华为面试亲身的经历

此面试亲身经历文章的出现源于早上接的一个电话“询问我是否愿意到华为工作,让我感到有些意外跟有些困惑,这让我想起一个月前的华为面试经历。”

一个月前接到同样的电话,拿着简历,按照约定的时间来到上地(在北京几年了,第一次去上地),找到华为公司,联系给我打电话的人,进入了华为,开始了面试。在华为食堂拿到笔试题(C++相关)后找个桌子开始答题,为时一小时的时间后见到第一个面试官,主要侧重技术工程方面,结合我以前从事的项目询问一些问题,大约40分钟时间后,见到第二个面试官,同样侧重技术方面,主要是编程方面的知识,基础、设计、数据库等等很多方面以具体问题的方式进行询问,同样40分钟的时间后填写了一份表后结束了当天的面试。负责HR的工作人员告诉说今天的面试到此结束,让回去等下次面试时间。

大约2天后接到再次面试的通知,第二天早上跑到上地,这次的面试地点是上地大厦多功能厅,来到这里发现好多人已经到达,看来这次招聘的人挺多的,完成类似会议签到后,拿了份报纸找了个座位等待第二论的面试,大约10点左右,被叫到面试,加上前两个面试官,这是第三面试,这个就与技术无关了,主要问一些个人情况同时也是检查学历的地方(需要学历原件跟复印件,留下复印件,检查原件的真假),很快完成面试后继续等待,这之间跟来应聘的进行了交流,发现好多都是华为子公司(慧通)在招人。

大约11点来到第四个面试官这里,也是最后一个面试官,主要针对所应聘部门介绍情况,同时也是个人待遇福利洽谈跟部门说明这方面的,并根据个人经历询问一些问题,很快最后一个面试结束了。

结束最后一个面试后会将简历加每个面试官的评定的一份文档交给HR工作人员,到HR工作人员处询问会知道结果,HR会告诉你是否通过面试,当时HR告诉我“通过了面试,会交由总部审批,如果不出意外大概三周后通知办理入职手续”。至此,整个面试就基本结束了,剩下的也就是等待一个结果,按照最后HR说的一般很少出意外,三周后的结果却出了意外,通知说总部审批没通过,究其原因无从所知。

我的整个华为面试经过就是这样了,不知道去华为应聘的没通过总部审批的是否很多,感到最后的结果有些意外。

一天半的时间折腾VSTS团队协作环境

Visual Studio Team System出来以后只是大概了解了它的组成,一直以来没有实际的安装试试,这两天抽出时间进行了安装试用,一下就进去了一天半的时间,所幸的是还是安装成功了,事前的准备工作多少有些不足,多少中间重复了几次,也算是得个教训吧。

安装这个东西事前准备工作一定要作足,这样可以大大加快速度,总结一下基本事前需要准备工作如下:

1、Windows 2003 安装光盘;
2、Windows 2003 Service Pack1 (提前下载,我因为没有下载,在安装完Windows 2003后足足下载等了40分钟)
3、SQL Server 2005
4、Windows SharePoint Service SP2
5、TFS(Team Foundation Server)安装盘

基本就需要准备上面的东西就行了,还要看看自己电脑的配置,我就是因为没有考虑网卡(比较陈旧)驱动,结果安装好了2003后找不到驱动,结果重新安装了XP后下载了驱动,又装了一遍Windows 2003,类似的可以参照自己的电脑,不过主要是网卡了,只要能上网,其他的都能下载。

安装的windows 2003的时候别忘记安装IIS,但是不要安装FrontPage Server Extension,要不就像我一眼,再卸了它,安装SQL Server 2005的时候需要安装SQL Server的所有服务,安装Windows SharePoint Service 的时候选择下面选项,经过上面的安装后需要安装ASP.NET的一个补丁跟一个SQL Server的补丁,在TFS安装包里面有,最后安装TFS,安装TFS的时候会针对系统进行检测,如果安装环境不满足会给出缺什么的提示,按照提示安装完成,然后安装个团队资源管理器,基本就完成了服务器端的安装。

安装完服务器后,安装客户端,我就是在一台电脑上了,需要安装Excel 跟 Project ,需要打Office Service Packe1,安装的时候需要定制选择“.NET编程支持”,然后根据所需安装Visual Studio的自己所用的版本,安装完成后打开Visual Stuido就会发现多了几个菜单,其中工具菜单有“连接到Team Foundation Server”选项,另外多了个“团队”菜单,另外还有团队资源管理器。除此之外还有针对项目的站点。

具体使用微软网站上Webcast中有关于TFS的系列讲座,下载下来继续研究几天。总体感觉在我的电脑上跑的非常吃力,不过还能跑起来,我的电脑基本配置为P4,512M内存,跟安装推荐的配置少了点。而且整个开发过程使用的是MSF,当然还有CMM的一个过程模版,这些都不熟的情况下应用应该还是比较困难的。第一感觉整合的比较好,对于使用VS.NET集成环境开发的公司来说使用这个管理项目生命周期应该是很不错的,就是投资成本有些大,不过如果一旦建立起来,随着逐步的应用,应该会取得良好的效果。

关于软件测试

最近在读软件测试方面的书籍,属于软件测试基础理论知识,大概了解下软件测试方面的知识还是不错的,最起码能了解测试的理论,方法及应用范围,以及那些可以采用工具辅助自动化测试,各种测试方法的特点、测试用例如何设等计,理论的基础让我发现原来测试也是一门学科,其中也存在不少模型,怪不得近年来测试工程师在整个行业走俏,相对整个行业也越来越正规。

近期阅读总结如下

从软件业界来说,可以将软件测试方法分为静态测试与动态测试(静态测试主要针对软件的编程格式、结构等方面进行评估,而动态测试则主要针对功能确认与接口测试、覆盖率分析、性能分析、内存分析等);如果按照规划测试的不同点出发,软件测试方法又可以分为黑盒测试与白盒测试(黑盒测试[Black-box Testing]又称功能测试、数据驱动测试和基于软件需求规格说明的测试,黑盒测试是一种从用户出观点出发的测试,白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,主要基于内部结构来进行测试)。

从软件测试过程的先后次序可以将整个过程分为单元测试、集成测试、确认测试、系统测试、验收测试。

单元测试主要完成模块接口、局部数据结构、路径测试、边界条件、出错处理任务。

集成测试又分为非增量式测试,以一步到位的方法,对各单元测试完毕后连接程序各模块,形成完整的整体来进行测试,另外一种集成测试为增量式测试[自顶向下增量、自底向上增量],不同的测试方法各有优缺点,主要集中在错误暴露点与时间的不同,另外就是针对测试模拟输入(数据)获取的难易度不同;另外在进行集成测试过程中可针对测试修改后进行回归测试,最终达到测试计划预定的标准。

确认测试主要完成确认测试的准则及配置审查的内容,经过确认测试后需要给软件一个结论性的评价(该软件功能、性能及其他要求满足需求规格说明中的规定,认为合格或者是不满足需求规格说明中的规定,如果不满足需要列出不满足的缺陷清单,对于确认测试时出线这样的情况一般很难在交付时间完成问题纠正,这时候需要跟客户进行协商,获取一个解决办法)。

系统测试主要完成恢复测试、安全测试、强度测试、性能测试、正确性测试、可靠性测试、兼容性测试。

验收测试是测试中最后一个环节,主要为完成软件产品验收所做的一些测试,涉及内容有明确项目并规定测试通过的标准、确定测试方法、决定验收测试的组织和资源、指定验收测试计划并进行评审、设计验收测试用例、审查准备工作、执行验收测试、分析结果,给出验收结论。验收测试还包括软件配置及文档资料测试,这部分可以在软件开发过程中并行进行。

黑盒测试技术方法

黑盒测试技术方法主要包括边界值分析法、等价类划分法、因果图分析法、决策表分析法等。

白盒测试技术方法

白盒测试技术方法主要包括结构分析、逻辑覆盖、路径测试等。

 

软件的可靠性评估的定义

摘自http://www.168518.net/edu/rjpc/200607/20060729000000.html,完整文章请进入该链接查阅。

软件可靠性评估的定义

可靠性(Reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,他的概率度量称为可靠度.

软件可靠性(Software Reliability)是软件系统固有特性之一,它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的正确程度。软件可靠性与软件缺陷有关,也与系统输入和系统使用有关。理论上说,可靠的软件系统应该是正确、完整、一致和健壮的。但是实际上任何软件都不可能达到百分之百的正确,而且也无法精确度量。一般情况下,只能通过对软件系统进行测试来度量其可靠性。

这样,给出如下定义:“软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力”。根据这个定义,软件可靠性包含了以下三个要素:

1.规定的时间

软件可靠性只是体现在其运行阶段,所以将“运行时间”作为“规定的时间”的度量。“运行时间”包括软件系统运行后工作与挂起(开启但空闲)的累计时间。由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量。

2.规定的环境条件

环境条件指软件的运行环境。它涉及软件系统运行时所需的各种支持要素,如支持硬件、操作系统、其它支持软件、输入数据格式和范围以及操作规程等。不同的环境条件下软件的可靠性是不同的。具体地说,规定的环境条件主要是描述软件系统运行时计算机的配置情况以及对输入数据的要求,并假定其它一切因素都是理想的。有了明确规定的环境条件,还可以有效判断软件失效的责任在用户方还是研制方。

3.规定的功能

软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行剖面会有所区别,则调用的子模块就不同(即程序路径选择不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。

在讲到软件可靠性评估的时候,我们不得不提到软件可靠性模型。软件可靠性模型(Software reliability model)是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。