以人为主的测试,到以测试用例为主的测试用例

我的最新日志

  • XPE学习

    2008-2-21

     

     

    XPE应用程序组件开发指南

    Windows XP embedded Compoent Designer

     

     

     

     

     

     

     

     

     

     

     

     

     

    雷志刚

    2007321


      

    第一章.      描述... 1

    第二章.      组件开发实现... 2

    第三章.      总结... 10

     

    第一章.        描述

    下图中显示了Windows XP Embedded操作系统开发的工作流程:

        从图中可以看出,组件设计是作为嵌入式开发人员开发自定义组件的重要过程,以下篇幅将对如何使用组件设计器设计自定义组件作出详细描述。

         Windows XP Embedded 中包含目标设计器、组件设计器、组件数据库管理器 目标分析器几大开发工具,其中组件设计器使开发人员可以设计自定义操作系统组件,并将它们添加到运行时配置中。它还使开发人员可以将自定义应用程序添加到运行时配置中,以实现生成嵌入式系统所需要的灵活性。

        本文以MCGS组态软件为例,描述了将该组态软件制作成一个应用程序组件的详细过程。

    第二章.        组件开发实现

    初期开发的XPE操作系统,不包含MCGS的环境和关联文件,理所当然,拷贝MCGS的组态和运行环境后也不能正常运行MCGS。为了今后能够在XPE上实现拷贝MCGS的组态和运行环境后的正常运行,需要自行开发一个组件,加入到XPE系统的组件库中。

    按照以下步骤来实现该组件的开发:

    1、  打开Microsoft Windows Embedded Studio 中的 Component Designer,弹出组件设计工具画面。

    2、  新建一个组件工程,并且在 Save as 时将该组件工程命名为MCGS 5.5.sld

    3、  选中该工程下的Components子树项,右键单击,选择Add Component,新建了一个Component,可以在右边的属性页中设置名字,版本等信息。如图所示:

     

    4、  该项下包含6个子树项:

    Group Memberships:将制作好的组件发布到组件数据库中。

    Files:制作组件所需要添加的相关文件。

    Registry Data:制作组件所需要注册的文件。

    Component or Group Dependency:设置组件需要关联的其它组件和组件组。

    Build Order Dependency:制作组件关联命令。

    Resources:用于相关文件的FBA注册。

    MCGS 5.5组件的制作过程中,只涉及到前三个子项的使用。

    1选择Files项,右键选择Add Multiple Files,增加MCGS所需的关联文件,如下图(注意:增加的MCGS关联文件都是经过工具筛选好的,并不是现成的。详细的筛选过程这里就不在说明):

     

     

    这样就会将所需的关联文件添加到右侧的列表中。

    2为每个文件设置存放路径,具体路径是双击文件,弹出属性框,在Destination中选择,添加的文件中除了TDMD.sys添加到C:\WINNT\SYSTEM32\DRIVERS外,其余文件添加路径都是C:\WINNT\SYSTEM32目录下。设置完毕后注意保存。

     

                   3设置完文件路径后,就完成了Files文件的添加。下面进行注册文件的添加。

    在添加注册文件之前,首先要明确需要注册哪些注册表项,这些工作和筛选MCGS关联文件一样,都是之前选择好的,将需要注册的文件整理在一个REG文件中。为了简单起见,我们可以通过File中的Import将该注册文件导入,如下图:

     

     

     

    选择Start开始将DogDriver中的注册项导入到新组件的Registry Data中,如图所示:

    将列表中的注册文件全选后拷贝到MCGS 5.5.sld下的Registry Data中,操作过后就可以把DogDriver.sld组件项Close掉。

    4此后还需要做一个工作,因为之前添加的许多Files中有些是DllOcx的,需要进行注册操作,因而添加的Files中有一个名为MCGSFileReg.bat的批处理文件,里面完成的是用Regsvr32命令对需要注册的DllOcx进行注册,该文件我们希望它在系统启动的第一次执行一次即可,所以我们需要手动编辑一条注册表信息,放在Registry Data中。首先在当前机器注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce的键值下新建一个字符串键值,名为McgsReg,速据为E:\WYJ temp files\Project\MCGS 5.5\MCGSFileReg.bat。然后在Registry Data中右键Add一个Registry Branch,将 

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce下的键值添加到右边的里表中,如图深色部分:

     

      5完成了注册文件的添加后,对于制作MCGS 5.5组件的文件添加就完成了,下面新增一个仓库(Repository),仓库作用是用来指明刚才所要添加文件所在的文件,以后该组件就会按照这个文件路径来添加所有的文件。右键RepositoriesAdd一个新的Repository,同样,在右边的属性设置框中可以填写其属性值。

    填写完属性值后,选择Source Path项,选择好刚才添加文件所在的文件夹。

    6完成后,回到MCGS 5.5 Component项,在右边的Repositories中选择刚才创建的仓库MCGS 5.5 Repository,这样就把组件和来源文件仓库关联起来了。

     

    7MCGS 5.5 Component下的Group Memberships中选择Add  Group Memberships,用来制定组件的存放目录,我们将其放在图中显示目录下:

    8最后将制作好的组件导入数据库。选择Tools中的Microsoft Component Database Manager,选中Import

    在弹出的设置框中选择组件文件,也就是MCGS 5.5.sld后开始导入。

     

    如果导入成功,会提示如下信息:

    这样我们就完成了组件的设计并添加到了数据库中。

    如何查看自己制作的组件呢?我们可以在Target Designer中来查看。

    10打开Target Designer,新建一个工程,在刚才选择的Software\Application\OEM目录下就能看见我们制作的MCGS 5.5 Component

    这样,我们在开发Windows XP Embedded的过程中,就可以引用该自定义组件了。

    第三章.        总结

    以上以制作MCGS关联组件为例,详细描述了一个自制组件的制作过程,当然这个组件的制作算不上复杂,文件筛选等许多基础工作在此之前就已准备好,实际的组件开发要复杂的多。以上文档的叙述主要是让开发人员读者树立起组件制作的概念,熟悉组件设计器的操作用法,对于实际的操作,还需要开发人员在今后的开发过程中不断积累和完善。

  • 11.30

    2007-11-30

    开头感言:毕业两年多了,发现长的是年纪,钱袋子不见长。没招咯只要再充充电。。。。

     

  • 实现Installshield对Php+mysql+apache做的程序在WINDOWS下打包

    2007-9-30

     实现Installshield对Php+mysql+apache做的程序在WINDOWS下打包 (转贴)
    undefinedundefined用Installshield对Php+mysql+apache做的程序在WINDOWS下打包;
    在电脑上安装Php+mysql+apache,并配置,可以正常使用;
    我的安装目录:C:\php ; C:\mysql ; C:\Program Files\Apache Group
    打包思路:将安装好的Php,mysql,apache,和程序文件通过安装软件复制到电脑里,注意安装时的安装路径是我规定的,不能由用户来自定义路径;然后启动apache和mysql服务;即可使用了;问题是apache的配置文件中的servername是否需要根据不同机器主机名和端口来改变;服务如何安装和启动;
    我使用的方法:
    1,首先准备好一切有关的文件(PHP源码文件;php全部文件;mysql安装后的全部文件;apache安装后的全部文件),将这些文件放到一个文件夹里(只是方便,没有特殊用处);
    2,apache的httpd.conf配置文件要如何在安装后能自动配置好;就对该文件进行研究;开始的时候想获得主机名,然后替换掉文件中servername +主机名+端口号这一行;端口号我用了一个不常用的60066;后经过实验证明servername +主机名+端口号这一行 可以注释或删除掉;也可以正常使用,但“listen 端口号”必须存在并正确,否则服务是无法启动的;但还有个事情就是我可以写很多个listen 端口号;比如;listen 8080,listen 8088;listen 60066;这样我用哪个端口号都可以正常运行;但推荐一个就好;最后你配置好的httpd.conf文件只要把servername +主机名+端口号这一行注释掉或删除,不需要其他的配置了;
    3,如何安装相关的服务到windows服务里,并自行启动;对apache和mysql都有相应的命令来安装,启动,停止和卸载服务;我的方法(有更简单的)是用文本写出这几个命令;
    如:
    在文本里写入:
    "C:\Program Files\Apache Group\Apache2\bin\Apache.exe" -k install
    注释:安装apache服务到window服务里;
    保存文本文件扩展名为BAT;这样你打开该文件就会将apache服务安装到windows服务里;
    有关命令:
    apache命令
    "C:\Program Files\Apache Group\Apache2\bin\Apache.exe" -k install 安装apache服务到window服务里
    "C:\Program Files\Apache Group\Apache2\bin\Apache.exe" -k start 启动apache服务
    "C:\Program Files\Apache Group\Apache2\bin\Apache.exe" -k stop 停止apache服务
    "C:\Program Files\Apache Group\Apache2\bin\Apache.exe" -k uninstall 卸载apache服务从window服务里
    mysql命令:
    c:\mysql\bin\mysqld-nt -install 安装MYSQL服务到WINDOW服务中
    c:\mysql\bin\mysqld-nt -remove 从WINDOW服务中删除MYSQL服务
    net start mysql 启动MYSQL服务
    net stop mysql 停止MYSQL服务
    这样我做了8个BAT文件;在复制完所有的文件后调用安装和启动的4个文件。卸载的时候调用停止和卸载文件;
    这样问题就解决了。剩下的就是用Installshield来做安装盘了;详细就不多说了;在脚本里写了一个函数,该函数的作用就是复制完所有文件,结束安装后运行,安装和启动服务;如下:
    function OnEnd()
    STRING szTitle, szMsg1, szMsg2;
    NUMBER nOption, nReserved;
    STRING strTempFile;
    STRING strStopFile;
    STRING strUninstFile;
    STRING strStopMyFile;
    STRING strUninsMytFile;
    begin

    strStopFile = "C:\\Program Files\\Apache Group\\Apache2\\bin\\install.BAT";
    LaunchAppAndWait (strStopFile,"",WAIT);
    strUninstFile = "C:\\Program Files\\Apache Group\\Apache2\\bin\\start.BAT";
    LaunchAppAndWait (strUninstFile,"",WAIT);
    strStopMyFile = "C:\\mysql\\installS.bat";
    LaunchAppAndWait (strStopMyFile,"",WAIT);
    strUninsMytFile = "C:\\mysql\\start.BAT";
    LaunchAppAndWait (strUninsMytFile,"",WAIT);
    end;
    注意:我的安装路径是根据刚安装配置好的;
    C:\php ; C:\mysql ; C:\Program Files\Apache Group
    也就是要与配置文件里的路径一致;

    最后的一个问题就是我们辛辛苦苦写的程序都是明码的是可以见到的;那么我们就需要对PHP源码进行加密;
    我的加密是使用了一个软件Zend Encoder;很贵的;我下了个试用的;可以到网上去找;
    通过Zend Encoder 的IDE程序编译,实现对PHP文件的加密,并适度扩展其功能应用。( 注:加密后的PHP文件需要客户端的Zend Optimizer支持才能正常运行)
    具有以下特点:完全保护知识产权,支持多项目配置;自定义参数(ZEU的功能性参数);支持扩展名过滤。
    其中提到的Zend Optimizer是免费的;相关内容网上很多;
    这两个软件的使用可以在网上查到;很简单;
    将这两个软件安装到机器里;刚刚我们配置好的机器;
    然后运行Zend Encoder将我们写好的PHP源码文件进行编译。保存;
    而Zend Optimizer。我们仅仅需要的是一个ZendOptimizer.dll文件;(我的安装路径C:\Program Files\Zend)不同的PHP版本在安装后的目录里都可以得到;找到你的PHP版本的该DLL文件;打包时需要注意的是路径;我设置的是:C:\Program Files\Zend\lib;
    这样就可以用Installshield打包;
    完成;
    写的是有点罗嗦;不过我想大家应该看的明白吧!呵呵!还有更简单的方法;希望有人可以提供出来;第一次写;不好;多谢PHP中问网的monkeye给我的帮助
    E_Mail : fjshmily@263.net :QQ: 4856748 ; 可以互相探讨;
  • 懒惰了许多,好久都没有来空间看看了。。。

    2007-9-26

  • 漫谈软件测试工程师的角色定位

    2007-9-03

      文章出处:本地化测试网 作者:崔启亮 发布时间:2006-01-16  

        软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。

        戏剧舞台上的生、旦、丑是不同的角色,其表演方式具有明显的特征,这是由于角色决定的。同样,软件测试工程师的角色,在软件项目开发中也存在如何定位和表现自身的行为和责任的问题。

        此处讨论测试工程师的角色并非毫无意义。须知,角色不明,责任不清,行为就失去了参照目标,结果就可能很不理想了。轻则降低了工作质量和效率,重则被视为工作能力低下,可能要退出软将项目组的舞台了。

        软件测试工程师承担的任务

        角色决定工作内容和承担的任务。测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。而且,测试工程师也有普通和高级之分。

        笼统的答案列举如下:

    设置软件测试环境,安装必要的软件工具。 运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。 对软件整体质量提出评估 确认软件达到某种具体标准 以最低的成本,最短的时间,完成高质量的测试任务 ......

        在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。

        提高测试质量的要诀

        另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会是您失望。

    首先测试程序的核心功能,然后测试辅助功能。 首先测试功能,然后测试性能。 首先测试常见情况,然后测试异常情况。 首先测试经过变更的部分,然后测试没有变更的部分。 首先测试影响大的问题,然后测试影响小的问题。 首先测试必须测试的部分,然后测试可选或没有要求测试的部分

        软件测试工程师是项目团队中的服务员

        需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。任何服务都有被服务对象—客户,软件测试工程师的服务对象有哪些呢?

    最重要的客户是软件的用户。测试工程师需要站在客户的使用和需求角度测试软件,报告问题。 项目经理也是客户。测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。 程序员是最经常打交道的客户。为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。 技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。

        软件测试工程师避免犯的几个错误

        前文已经指出测试工程师应该明确角色,明确任务和责任。知道哪些是自己份内的事,哪些是不属于自己的事。一定要尽最大努力完成份内的事,不要做不属于自己的事情,以免弄巧成拙。

        为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:

    承诺完成测试的软件没有质量问题

        软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。  

    承担软件的发布权利

        不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。也不要认为已经完成了测试计划,自己决定可以发布软件。因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。  

    扮演过程改进成员的角色

        软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。

  • Alpha和Beta测试简介

    2007-9-01

      文章出处:51testing论坛 作者:songfun 发布时间:2006-03-02

    大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。

    Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。

    Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。

    由于Alpha和Beta测试的组织难度大,测试费用高,测试的随机性强、测试周期跨度较长,测试质量和测试效率难于保证,所以,很多专业软件可能不再进行Beta测试。随着测试技术的提高,以及专业测试服务机构的大量涌现,很多软件的Beta测试外包给这些专业测试机构进行测试。

  • 巧设开机密码 让别人打不开您的电脑

    2007-8-29

    巧设开机密码 让别人打不开您的电脑

    CNET中国·PChome.net   类型:投稿   作者: dgrzh   责编:吴昕桦   时间:2007-06-08

    巧设开机密码

    背景:不想让人打开或进入自己的电脑,方法有很多,但用得多了,破解也变得容易了。本例也有破解方法,但旨在提供思路,可能会有出奇制胜的效果。

    原理:“障眼法”--利用Choice命令(等待输入一个字符)、Echo命令(显示错误信息)达到加密目的。

    编程:用记事本打开或新建Autoexec.bat,输入以下内容:

    @echo off

    echo non-system disk or disk error

    choice /c:#/n

    使用:开机时显示“non-system disk or disk error”,造成“死机”,别人看了会吓一跳。如果是自己开机,可以从容地输入“#”(相当于开机密码,引号不要输入,下同)即可让电脑继续运行,直至进入桌面。

    吓退非法来客

    背景:如果认为上面例子的威力不够,可以用这个程序试试。

    原理:用Echo命令显示每行80个“_”(80个下划线)再用Goto命令设置一个死循环程序,以达到“屏幕花屏”的效果。

    编程:打开记事本新建C:\windows\winstart.bat,输入以下内容 

    @echo off

    :abc

    echo_ //“_”是英文下划线,请输入80个“_”才能达到效果。

    goto abc

    使用:当别人打开电脑时,会以为显示器“坏了”或有病毒了,以达到吓退非法来客的目的。暂时跟上的方法:按Ctrl+Break组合键,再按Y键。彻底解除跟上的方法:开机按F8进入DOS,把C:\WINDOWS\winstart.bat文件删除即可恢复。

  • bugzilla3.0汉化包

    2007-8-02

  • 电脑中毒.....tel.xls.exe

    2007-7-25

  • 另类方法修复程序异常问题

    2007-7-20

    作者:IT168 网络 佚名 更新时间:2006-04-30 收藏此页

        【IT168 实用技巧】由于工作关系,笔者时常需要重装操作系统。平时每次重装时,都能较顺利地装好,但是今天在重装时遇到了一个不是很常见的小麻烦。现在把解决过程写出来,供大家参考。 

        在说问题前,请大家先看图1。这张图是我在安装千千静听后,双击运行时出现的系统提示。按常理,出现这样的提示信息一般是由于系统文件缺失,或者受到损坏,利用“REGSVR32”命令就可以修复被损坏的文件。

        于是我在运行中输入“REGSVR32 msvcp71.dll”,但是在“回车”后,还是提示了一个“失败”信息(如图2)。看来这不是简单的文件被损坏,而是文件丢失了。

    图1 系统提示找不到MSVCP71.dll

    图2 找不到模块

        既然是文件丢失,能否从其它机器中拷贝一个文件过来呢?于是我从同事的机器中复制了一个同名文件。运行千千静听,问题依然存在。无奈中忽然想到,如果“MSVCP71.DLL”文件出现问题,“msvcr71.dll”文件有时会与它同时出现问题。于是再拷贝一个“msvcr71.dll”过来,然后在运行对话框中利用“REGSVR32”命令分别运行了“MSVCP71.dll”和“msvcr71.dll”,此后再次运行千千静听,问题解决了。

        最后提醒大家注意:“MSVCP71.DLL”和“msvcr71.dll”文件是VC7的运行库文件,位于“C:\WINDOWS\system32”目录内。当你在拷贝和运行那两个文件时,不要随意改动文件名的大小写。 

我的最新图片

Open Toolbar