求告诉正常高系统的概念和意义是什么?

作者&投稿:帅心 (若有异议请与网页底部的电邮联系)
什么是计算机操作系统?其作用主要有哪些~

系统知识:从八个方面来探讨计算机操作系统

内容简介:本文主要从硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这八个方面来说明针对操作系统的优化。

不管您使用的是Windows也好,Linux也好,或者是Freebsd(为避免语言烦琐,以下如同时指代Linux和FreeBSD的地方,一律以UNIX进行替代)也好,肯定都想寻求尽可能快的速度,那么,在有些特定环境下就只有对系统进行优化。在前面的几期网管笔记中,我们已经介绍了好几篇网管系列的文章,这次我们推出了操作系统的保护系列中的系统优化篇。

任何技术,只要掌握了方法则都能举一反三,“师傅领进门,修行在个人”。天极网上关于系统优化的文章相当多,但这次讲的内容和其它优化文章比起来,还是有较大的不同。各位如果在阅读下面的内容时,遇到技术疑难,都可以在天极网的操作系统栏目的相关文章中寻找到答案——学会查询资料,也是提高的必要技巧之一呢。

一个操作系统,必定是建立在硬件基础上的。而硬件,则可大致分为CPU、主板、内存、外存几个部分。关于CPU超频、内存在BIOS中的设置,开启硬盘的DMA66支持等等的介绍已经相当多,在此我就不赘述了。

一个操作系统的使用,依次会涉及到硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这几个步骤,这是不管Windows、Linux还是Freebsd等操作系统都是如此。也就是说,我们如果能尽量优化上面每个步骤,则就能把系统的性能提升起来。接下来,就让我们一起把每个步骤做到最优。

主要
内容 硬盘引导
操作系统引导
载入基本操作系统
定义临时目录

定义虚拟内存盘
载入系统服务
载入自定义服务
定义GUI



1、硬盘引导

从硬盘的0磁道开始的第一个扇区处读取信息,以载入操作系统引导程序,在这一步上,由于系统能读取的只是一个扇区的数据资料,只有512Kb,因此不能直接将操作系统的引导程序放入其中,而只能读入一个很小巧的程序,再由那个程序来引导操作系统,以Windows为例,在这一步被读入的是IO.SYS和MSDOS.SYS(安装了Win98后有这个)。由于一般来说这个程序都是由各个基础操作系统所默认的,因此一般没有办法进行自定义优化。不过值得一提的是如果使用的是Windows98系统,那么通过定制MSDOS.SYS文件,可以在速度上达到一定的提高,让我们打开瞧瞧:


WinDir=C:\Windows ;Windows所在的目录
WinBootDir=C:\Windows ; 引导目录
HostWinBootDrv=C ;引导盘(建议这三个别改动)


BootMulti=1 ;是否按f8出菜单,以及是否f4/f2快捷功能菜单有效,值得注意,美萍等管理软件之所以能屏蔽启机时候按f8/f4/f2无效果就是在这里动的手脚
BootGUI=1 ;是否图形引导
DoubleBuffer=1 ;双倍缓冲,建议设置为1
AutoScan=1 ;是否每次启机检查硬盘,这对非法关机后修复磁盘很有帮助,不过如果对自己的Win98很有信心,不妨设置成0
WinVer=4.10.2222 ;Windows的版本号

BootWin=1 ;以Windows方式引导
DrvSpace=1 ;(这个选项功能不明)
DblSpace=1;这个选项功能不明)
LOGO=1 ; 是否显示开机画面,事实上Windows的启机画面载入大概会花费1秒左右的时间,既然我们想优化,那么就设置成0吧
BootDelay=0;引导延迟,设置成0最快
DisableLog=0;不记录引导时候的log,如果追求速度,可以设置成1

2、操作系统引导

Windows2000/XP的Boot、Linux和Freebsd的LILO、Grub都是非常出色的操作系统引导程序。如果想优化,就把自己最常使用的操作系统设置为默认项目,并将默认的启动时间修改为1秒。以Windows2k/xp 为例,可以用记事本等文字编辑工具打开系统盘根目录下的boot.ini文件(注意,这个文件本身是系统+隐藏属性),其中有一行为timeout=xx,其中这里的xx,就是系统在引导系统时候的等待时间。为了达到减少时间的目的,我们可以写成timeout=1,注意别写timeout=0,这表示无限等待,直到用户手工选定了为止。同样的,在grub中有一个menu.lst文件,其中的timeout参数的值与上面提到的Windows系统中boot.ini的timeout参数作用、设置方法上完全一样(这也是天缘提倡地学好一个操作系统贵在了解其原理和工作流程,自然就会一通百通的道理。)

3、载入基本操作系统

这一部分中,操作系统将自身的程序、连接文件载入,由于载入的是基本文件,在Windows中就是Windows的内核,而在UNIX中,则可以把这步理解为内核的载入。由于Windows的内核是保密的,因此没有办法擅自修改,而在UNIX中,则可以利用重新生成内核的命令,尝试去掉自己不需要的驱动、设备支持和功能来缩减内核的功能并减少启动时间。这也就是为什么人们很看好Linux在嵌入式行业发展的原因——由于内核完全可以定制,所以可以只保留需要的功能,整个内核可以做得非常小巧。Ok,回过来,因为内核程序速度非常快,所需要的时间本身就很少,而关于定制Linux的内核,可以参考天极网的相关文章。各位朋友切记一点:“由于操作系统所在的分区本身就时常进行读写操作,因此最好为操作系统单独划分一个分区,而把临时目录、暂存盘、文件、游戏、备份等放到其他分区去。”这一点是我们进行下面的优化步骤的大前提,以下我们的几步操作,都是以此为大前提来进行的。

4、定义临时目录

由于操作系统在执行一些烦琐的运算、解压缩文件的时候,都是先将文件临时放在某个目录下,在任务执行完后再删除。Windows下默认是放在操作系统下的temp目录中,UNIX下默认是放在/tmp中。如果我们能想办法提高其读写速度,则就能在这步中达到优化的效果。由于硬盘的物理形态因素,导致硬盘在内区读写速度会比外区更快一些,因此考虑将临时目录放在靠近磁盘内区物理位置的地方。在Windows、UNIX等大多数操作系统情况下,都是越分在前面的分区越靠近内区,越分在后面的分区越靠近外区。UNIX下可在划分了/boot后,马上划分/tmp分区;在Windows下由于根据第3条中提到的尽量减少操作系统所在分区的读写操作,因此我们将临时目录建在D盘, 针对Win9x和2000的方法略有出入:

Win9x:

1.在D盘下新建立一个目录temp;
2.用记事本打开c:\autoexec.bat(如没有,可自行建立一个),输入以下两行;
@set temp=d:emp
@ set tmp=d:emp

Win2000/XP:

1.在D盘下新建立一个目录temp;
2.打开“控制面板”——“属性”——“高级”;
3.在“系统变量”这里,将temp和tmp的值,都改为d:emp;

好了,重新启机之后,就生效了。不过由于Windows仍然有某些程序的默认临时目录不是我们所指定的temp目录,所以还需要手工指定一下。以IE为例:“工具”——“Internet选项”——“Internet临时文件”这里的“设置”——“移动文件夹”,将临时目录指定成我们的d:emp就行了。

值得一提的是,不管是Windows也好,UNIX也好,相当一部分用了临时文件后没有清除它,因此可以定期每周把d:emp清空。在UNIX下对于这样的定期命令可以通过cron来完成。

5、定义虚拟内存盘

我们的操作系统在调用程序,相关的资源文件的时候,都需要将程序由速度较慢的外存,调用到速度较快的内存中之后再进行操作。由于外存的价格相对内存为低,因此大多数用户在内存不够充裕的条件下,一般会选择用外存硬盘来虚拟内存使用。需要说明的是,这只是在技术上的虚拟内存,并不能真正使这部分硬盘的读写速度有任何提升。因此在资金允许的情况下,建议用户能够升级到512M内存为比较适合。天缘常常见到很多用户盲目追求高速cpu,而忽略了对内存的需求。事实上只有类似Photoshop、3D MAX、WinAMP等需要即时演算、解码操作(图形类的渲染大多可以通过显卡来完成来减轻cpu负担),大多数常用的办公软件、第三方工具其实对CPU并没有很大的消耗,而是需要大量高速内存的支持。按照我们上一步中的知识,自然虚拟内存盘的读写速度也应该是越快越好了?所以很多书上在介绍unux安装的时候,会建议swap分区靠前;而Windows下,我们则可以指定把虚拟目录放到d盘下去。同样,针对Win9x和Win2k/xp有两种方式来完成。

Win 9x:

1. 打开“控制面板”——“属性”——“性能”——“虚拟内存”;
2.将虚拟内存指定为自定义,选择d盘;
3. 重新启动计算机;

Win 2k:

1. 打开“控制面板”——“属性”——“高级”——“性能选项”;
2. 在这里,如果您的机器是自己用,就选“应用程序”,如果是提供Ftp或者Web服务,就选择“后台服务”。(由此可见,微软是为了节约开发成本,将Win2k的pro/server/advance server三种版本用同样的构架搭建出来的)
3. 选中“虚拟内存”这里的“更改”
4. 将c盘的虚拟内存去掉,将d盘的虚拟内存根据需要进行适当设置;
5. 重新启动计算机;

恩,经过这么一来。当计算机发现内存不够的时候,就会在d盘下建立虚拟磁盘来模拟内存使用了。虚拟出来的内存是一个在Win9x下名为Win386.swp,Win2k下名为pagefile.sys的文件。别忘记将原来的c盘下的同名文件删除,以增加c盘的可用空间哟。当然,硬盘的读写速度是远远不及内存的,因此这只是权宜之计,添置更多的物理内存才是正解。

6、载入系统服务

在这一步中,系统将会载入基本的服务。例如Win2k下的“控制面版”——“控制工具”——“服务”中的项目;UNIX下也类似。在这里,一般来说我们不能对服务的内部进行改造以增加效率,但是我们只选择需要的服务,而关闭不必要的服务。在这里,个人用户和服务器管理员都要记住的一条定律会起作用“可开可不开的一定不开,可用可不用的一定不用”,这样不但会减少系统的启动时间、增加系统的可用内存、并且也尽量地避免了安全漏洞。记得前辈曾经指点过我:“服务器提供的服务越多,则可能存在的漏洞也越多,越容易被攻击”。但是不管在w2k还是在UNIX中,默认打开的一些服务是我们所不需要的,甚至是危险的。以Win2k为例,“远程控制注册表”、“dhcp服务器”等等这些功能居然都是默认开着的,而UNIX下的不少操作系统默认时候“sendmail”、“smaba”也是开着的。

所以,根据自己的选择,恰当的选择必要的服务。这一步会相当消耗时间,而且也会遇到对某些服务的疑问,但性能的提升也具有最大潜力。值得一提的是,一些后台运行的程序也将自己添加到其中,常见的例如杀毒软件,以及令人讨厌的冲击波病毒。关于详细的介绍,天极网上介绍操作系统的一些文章中都有详细描述,我在这里一一写出,就有骗稿费的嫌疑了。


7、载入自定义服务

之所以要把这一步与上面的一步分开,一来是因为他们存放的启动文件位置有差异,二来有的系统服务是必须启动的,如果不启动则连操作系统也无法按照常规方式运行起来。例如Win2k服务中的“Logical Disk Manager(逻辑磁盘管理器监视狗服务)”就是专门对硬盘进行管理的。自定义的服务项目,在Windows中,存在注册表的run系列键中(Software\Microsoft\Windows\CurrentVersion\Run、Software\Microsoft\Windows\CurrentVersion\Runonce、SOFTWARE\Microsoft\Windows\CurrentVersion\Run、SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce、SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx、SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices);而在UNIX则是用特定位置的文本文件来保存,例如redhat下是/etc/rc.local文件,一行一条shell命令,非常简单明了。一般来说,这一部分的服务即使全部去掉,也不会影响系统的启动,但有的操作系统“原装”服务可以令我们使用的时候更得心应手。同时在这里,也是很多Windows木马藏身的地方。

在自定义服务中,可以将自己不需要,或者很少用到的一些服务去掉(例如天缘就把音量调节的服务去掉了,因为我从来都喜欢直接摆弄音响);也可以把自己每次启动系统都要运行的一些程序加入进去(例如天缘在Linux下的fvwm启动就加在/etc/rc.local中)。合理的使用它,选择恰当的程序去掉无用的程序,也可以达到相当好的性能优化目的。顺便为Windows的朋友们推荐一个我很喜欢的注册表编辑工具,名字是RegHance,非常简单方便。

8、定义GUI

在这里,为什么特别提到GUI呢?Windows的用户可能比较有疑惑,因为Windows的图形界面是嵌入内核的,不过在UNIX下则是独立的。在这一部分上,由于操作系统的独立性,因此要详细地讲解不大可能。我只给出一个思路:“尽量缩减无用的资源消耗”。例如:控制GUI的加载字体数量。事实的确如此,任何载入的资源都会消耗掉系统的内存,由于中文的特殊性(文字众多,非字母组合),导致一个中文字库比一个英文字库大上很多,自然消耗的内存也大了很多(现在明白了为什么传呼机、手机、嵌入系统等等rom/ram受限的场合一般采用英语了吧?因为它总共就26个字母,在这点上,的确比汉字具有优越性。同样的道理从我们所用的键盘也能体现出来)。

天缘认识几个从事艺术行业的朋友,经常习惯将用到的字体都放在Font目录中,其实这样在每次启动的时候都会载入到内存中(顺便一提,我们曾经试过,Win98下Font目录Copy字体到400m左右就无法再增加了)会严重地影响到启动速度。值得采纳的做法是将一些不常用的字体Copy到其他目录中备用,在需要的时候再调入到Font目录中,然后重新计算机就可以了。虽然的确是烦琐了一点,不过在有钱购买1G的内存前,节约几百M的内存也是很有必要的。类似的道理,UNIX管理员都知道在服务器上不需要跑xWindows就不要跑的道理。以上的小例子希望可以帮助大家开动自己的脑筋,好好想想其他值得优化的地方。

当文章写到这里,已是接近尾声。油然想起当我告诉原野编辑我要写操作系统优化的时候他对我说的:“介绍系统优化的文章已经很多了呀。”这句略带警醒的话。是的,Windows平台下、UNIX平台下介绍系统优化的文章数不胜数;“超级兔子”、“优化大师”、“webmin”这些优秀的系统设置/优化工具不断更新。但正如“鞋子只有自己买的才最合脚”这个道理一样,天缘尝试将自己优化系统的心得总结与大家分享。IT行业日新月异,新的操作系统层出不穷,掌握了一个优化软件,或许在新的操作系统面前依然束手无策。学习学习,不在于学其形,贵在学其神。明白了操作系统优化的原理,依照着以上的8个环节,针对自己的机器情况进行思考分析,那么即使面对的是一个全新的操作系统,也能很快地将其优化,提高自己工作、学习、娱乐的效率。中国人的习俗,春节吃鱼代表“年年有余”。而授人予鱼不如授人以渔,希望这篇小文能帮助大家把自己爱机的潜力充分发挥到极致。

计算机的体系结构(computerarchitecture),通常是指涉及机器语言或者汇编语言的程序设计人员所见到的计算机系统的属性,更多说的是计算机的外特性,是硬件子系统的结构概念及其功能特性。这其中最重要的问题都直接和计算机的指令系统有关,例如计算机的字长,计算机硬件能够直接识别和处理的数据类型及其表示、存储、读写方式,指令系统的组成,指令类别、格式和功能,指令中使用的寄存器数量和表示方法,支持的寻址方式,存储器、输入输出设备和CPU之间数据传送的方式和控制,也包括中断的类型和处理流程,系统中对各类信息的保护,计算机运行状态的定义和切换,对各种运行异常或者出错的检测和处理方案等等,这些都是程序设计人员编写出高质量程序并确保其正常运行必须深入了解的计算机的有关属性。计算机体系结构主要研究硬件和软件功能的划分,确定硬件和软件的界面,即哪些功能应划分给硬件子系统完成,哪些功能应划分到软件子系统中完成。

  计算机组成(computerorganization),是依据计算机体系结构确定并且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,实现机器指令级的各种功能和特性。从这一点又可以说,计算机组成是计算机体系结构的逻辑实现。为了实现相同的计算机体系结构所要求的功能,完全可以有多种不同的计算机组成设计方案。因为半导体器件性能的提高,新的技术成果的面世,或者又有新的价格/性能比的需求出现,都会带来计算机组成的变化。

  在计算机组成的领域内,需要重点解决的问题之一是合理的性能价格比,关键的技术措施在于处理好计算机内部的数据流和控制流,合理地匹配各功能部件的性能参数,也就是尽力避免因一个部件形成的“瓶颈”问题而影响计算机的整体性能。例如,对运算器部件,可以通过实现数据运算的流水线处理和设置多个运算功能部件,在运算器内安排更多的寄存器等措施以提高其处理数据的能力;对控制器部件,可以通过指令预取,指令流水线处理,多指令流水线,选用RISC(reduced instruction set computer)结构设计方案等措施以提高执行指令的速度;对存储器部件,使用由高速缓冲存储器、主存储器、虚拟存储器构成的层次结构的存储系统,使用由可以交替运行的多个存储器构成的多体结构,使用性能更高的改进型的存储器芯片等措施,以提高存储器系统的存储容量和读写速度。对输入输出设备,实现通道、外围处理机等方式,合理地设置缓冲器和排队策略,配备速度更快的设备,配备更多数量的设备,以提高单位时间内数据输入输出的流量。对计算机系统而言,关键是尽可能地使计算机各个功能部件都以自己所具有的高速度运行,避免或者减少不同功能部件彼此之间的相互制约和等待现象,例如通过支持多线程、多进程、多道程序、多任务等措施,选用最合理的资源调度算法和分配策略,以便最大限度地提高系统的资源利用率。

  计算机实现(computerimplementation),是计算机组成的物理实现。包括中央处理机、主存储器、输入输出接口和设备的物理结构,所选用的半导体器件的集成度和速度,器件、模块、插件、底板的划分,电源、冷却、装配等技术,生产工艺和系统调试等各种问题,一句话,就是把完成逻辑设计的计算机组成方案转换为真实的计算机,也就是把满足设计和运行、价格等各项要求的计算机系统真正地制作并调试出来。

  计算机体系结构,计算机组成和计算机实现是三个不同的概念,各自有不同的含义,但是又有着密切的联系,而且随着时间和技术的进步,这些含义也会有所改变。在某些情况下,有时也无需特意地去区分计算机体系结构和计算机组成的不同含义。

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。 黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。 功能不正确或遗漏; 界面错误; 数据库访问错误; 性能错误; 初始化和终止错误等。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。 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 指出了适合使用判定表设计测试用例的条件: ①规格说明以判定表形式给出,或很容易转换成判定表. ②条件的排列顺序不会也不影响执行哪些操作. ③规则的排列顺序不会也不影响执行哪些操作. ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则. ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要. 正交试验设计法,就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。 黑盒测试的流程 1.测试计划 首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。 2.测试设计 将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。 3.测试开发 建立可重复使用的自动测试过程。 4.测试执行 执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。 5.测试评估 结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。 黑盒测试的优点 1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash了 2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因 黑盒测试的缺点 1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴 2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作 3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。 黑盒测试(功能测试)工具的选择 那么,如何高效地完成功能测试?选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。尽管现阶段存在少数不采用任何功能测试工具,从事功能测试外包项目的软件服务企业。短期来看,这类企业盈利状况尚可,但长久来看,它们极有可能被自动化程度较高的软件服务企业取代。 目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新。这里重点介绍的是其中一个较为典型自动化测试工具,即Mercury公司的WinRunner。 WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。 WinRunner的特点在于: 与传统的手工测试相比,它能快速、批量地完成功能点测试; 能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差; 此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成; 它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用; 它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。 WinRunner的工作流程大致可以分为以下六个步骤: 1.识别应用程序的GUI 在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。 2.建立测试脚本 在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言)。录制脚本有两种模式: Context Sensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。 只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。 3.对测试脚本除错(debug) 在WinRunner中有专门一个Debug Toolbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。 4.在新版应用程序执行测试脚本 当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。 5.分析测试结果 分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。 6.回报缺陷(defect) 在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。 常用的功能测试方法 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下: 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。 2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。 3. 检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。 4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错. 5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错. 6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确. 7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错. 8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致 9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理. 10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理. 11. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型. 12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错. 13. 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。 14. 检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错. 15. search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确. 16. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方. 17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。 18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加* 19. 快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。 20. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错.


求告诉正常高系统的概念和意义是什么?
4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错. 5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错. 6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种...

什么是正高系统和正常高系统
正高系统是以大地水准面为高程基准面的高程系统,和大地高之间存在大地水准面差距。正常高系统是以似大地水准面为高程基准面得高程系统,和大地高之间存在高程异常。区别就是所采用的高程基准面不同,正高无法精确求定,正常高可以精确唯一确定。

我国高程系统采用正常高系统,其基准面是( )。
【答案】:C 地面点沿重力线到似大地水准面的距离称为正常高,故正常高系统的基准面是似大地水准面。

三大高程系统指的是
三大高程系统指的是正高系统、正常高系统、大地高程系统。1、正高系统是地面点沿铅垂线方向至大地水准面的距离。2、正常高系统是地面点沿铅垂线方向至似大地水准面的距离。由于岩层密度分布不均,以目前的科学水平还无法精确计算地面和大地水准面之间的距离,故科学家们提出了“正常高”的概念,用接近于...

高程系统的主要分类
中国《大地测量法式》规定采用正常高系统。 地面点的高低也可以用地球位数表示。它定义为大地水准面的位W0与通过地面点的水准面的位W之差。地球位数也是以大地水准面为基准面,但它不是以米制表示的高程,而是位差。同一水准面上所有各点的地球位数相同。地球位数之差,可由每一水准测量线段观测的高差...

高程系统分类
高程系统分类 正高系统基于大地水准面,每个地面点的正高是其垂直至大地水准面的距离,但推算需要考虑岩层密度分布,过去常采用近似值。正常高系统由苏联M.C.莫洛坚斯基提出,将分母转换为平均正常重力值,使得计算更为精确,其基准面是似大地水准面,接近但并非完全等同于大地水准面。似大地水准面由正常...

【第二章 坐标系统】高程系统
高程系统主要分为正高系统和正常高系统,分别对应海拔高和近似海拔高,统称高程。我国采取的是正常高系统,尤其在精密水准测量中,重力场的考虑至关重要,正常高系统通过平均正常重力值计算,更易于精确求得。正常高系统的选择源于大地水准面的重要性。大地水准面是重力等位面,与静止海水面相接,是海拔高程...

正常高系统的基准面是大地水准面对还是错
正常高系统的基准面是大地水准面对。在精密水准测量中,它们根据各自的惯例,有的采用正高系统,有的采用正常高系统。正高系统以大地水准面为高程基准面(零水准面),正常高系统的基准面是似大地水准面。

注册测绘007-高程系统
高程系统中的三个核心概念是:高程异常:这是正常高(似大地水准面)与大地高(参考椭球面)之间的垂直距离差异。 大地水准面差距 N:代表正高(大地水准面)与大地高之间的高度差,通常在小范围内,与正常高差异微小。 正常高与正高的差异:在海平面上两者基本一致,但在平原和山区会有显著差别...

坐标系统和高程系统转换的基本原理
GPS 观测数据经处理后,可以得到两点间基线向量及高精度大地高差,若已知一点大地高,便可求得全网任一点的大地高。大地高是以椭球面为基准的高程系统,而我国采用的是以似大地水准面为基准的正常高系统,因此,需将大地高转换为正常高。

寿宁县18478362446: 在测量上的--正高.正常高.大地高,的定义分别是什么啊? -
索垄永瑞:[答案] 1.正高系统是以大地水准面为基准面的高程系统.某点的正高是该点到通过该点的铅垂线与大地水准面的交点之间的距离,正高用符号Hg表示. 2.正常高系统是以似大地水准面为基准的高程系统.某点的正常高是该点到通过该点的铅垂线与似大地水准面...

寿宁县18478362446: 高程系统的主要分类 -
索垄永瑞: 1945年前苏联的M.C.莫洛坚斯基提出了“正常高”的概念,即将正高系统中的分母gm改用平均正常重力值γm来代替,γm是可以精确计算的,因此正常高也可以精确地计算出来.由各地面点沿正常重力线向下截取各点的正常高,所得...

寿宁县18478362446: 网络操作系统的定义是什么 -
索垄永瑞: 据我的理解,只要是可以联网,实现文件共享传输的系统,都算是网络操作系统,包括MS-DOS.------------ DOS可能还做不到,XP肯定是.

寿宁县18478362446: 人体8大系统的概念和功能等等 -
索垄永瑞: 体八大系统 人体共有8个系统,即:消化系统、神经系统、呼吸系统、循环系统、运动系统、内分泌系统、泌尿系统和生殖系统. 胃的位置和功能 胃位于上腹部,界于食道和十二指肠之间,是消化道最宽大的部分,它的形状和位置随内容物的...

寿宁县18478362446: 计算机系统的概念 -
索垄永瑞: 一、硬件系统说法 硬件系统的说法是指:计算机系统是由运算器、控制器、存储器、输入设备和输出设备这5个部件组成的.其中,运算器和控制器合称为中央处理单元(CPU);存储器又可分为内存(或...

寿宁县18478362446: 差分系统的定义是什么? -
索垄永瑞: * 差分GPS(DGPS)分类 根据差分GPS基准站发送的信息方式可将差分GPS定位分为三类,即:位置差分、伪距差分和相位差分. * 差分GPS(DGPS)原理 差分GPS (DGPS)是在正常的GPS外附加(差分)修正信号,此改正信号改善了GPS的精度...

寿宁县18478362446: 什么是文件系统哦??搞不懂 那个高手知道啊 告诉小弟我一下嘛谢谢了 -
索垄永瑞: 楼主应该说的是系统文件吧.简单地说,就是电脑正常开机和运行所需要的各种程序文件.具体地说,看哈下面吧首先需要明确一个概念,“系统文件夹”指的...

寿宁县18478362446: 系统调用的目的是 -
索垄永瑞: bios 计算机用户在使用计算机的过程中,都会接触到BIOS,它在计算机系统中起着非常重要的作用. BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入...

寿宁县18478362446: cpu的性能指标有哪些? -
索垄永瑞: cpu的性能指标有主频、外频、倍频系数和制程技术. 1、主频 也就是CPU的时钟频率,简单地说也就是CPU的工作频率. 一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了.不过由于各种CPU的内部结...

寿宁县18478362446: 数学中的ln是什么意思? -
索垄永瑞: 对数. 自然对数以常数e为底数的对数.记作lnN(N>0).在物理学,生物学等自然科学中有重要的意义.一般表示方法为lnx.数学中也常见以logx表示自然对数. 在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数,反之亦然. 这意味着...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网