1、1Linux 操作系统可测试性研究和实践摘要Linux 作为一个多任务、多用户的操作系统,以其良好的稳定性、高效性和灵活性赢得了广大用户,并迅速发展成为操作系统的主流,因此,国内外多数高等学校,尤其高职院校计算机及相关专业已将Linux 操作系统作为专业课程列入教学计划中。如何测试学生掌握 Linux操作系统的基本操作、系统管理、服务器配置的水平,已成为 Linux 操作系统课程考试改革的关键。文章利用 Linux 操作系统的可测试性,研究开发 Shell 程序,实践完成 Linux 操作可测试脚本,即科学高效的Linux 评分系统。 关键词Linux 操作系统;可测试性;Shell 脚本;评
2、分系统 DOI1013939/jcnkizgsc201623255 1 前言 软件的可测试性原指软件在一定的时间和成本前提下,进行测试设计、测试执行的能力。Linux 操作系统作为一个系统软件,具有优良的可测试性,本文扩展 Linux 操作系统可测试特性,泛指 Linux 操作系统用户的操作是可测试的,这样可以检测用户对 Linux 的操作是否正确,从而可以应用于考察 Linux 操作技能的评分系统中。 该课程旨在考察学生掌握 Linux 操作系统的应用能力,具体包括Linux 操作系统的基本操作、系统管理、服务器配置三个方面,该课程考核方式为上机操作更合理,而上机操作的评分除了人工之外,就急
3、需一2套科学、规范的评分系统。 Shell 是 Linux 操作系统人机交互的原生界面,Shell 命令能够控制整个 Linux 操作系统的动作,Shell 脚本就是将 Shell 命令按照某种逻辑关系组合在一个程序中,用于结合现有的程序完成小型的、特定的工作,常用于批处理的系统管理中,Shell 脚本也可以和许多外部命令行工具结合起来完成信息查询、简化文本处理、调度任务运行时间、生成报表以及发送邮件之类的工作。因此,如果 Shell 脚本程序有价值,我们就可以用作黑盒测试。 2Linux 操作可测试脚本研究 高校“Linux 操作系统”课程旨在掌握 Linux 的功能、应用、架构等内容,具体
4、包括 Linux 操作系统的基本操作、系统管理、服务器配置三个方面,下面分别对三部分知识点及使用的测试脚本进行介绍。 2.1 基本操作 这部分主要测试学生的基本命令,文件、目录的操作命令,VIM 编辑器的使用和设置,文件的输入输出重定向、管道等复杂应用以及文件的压缩、备份等。 对文件操作命令测试主要使用的测试脚本是 if 语句以及 -f*/*txt。首先来进行判断文件的存在,从而使用 grep 命令来查找对文件的编辑内容;对目录的操作会首先使用 if cd */* /dev/null 2&1 来进行判断目录的存在,再使用字符串判断=或 cmp 命令来验证目录中符合要求的文件;在 VIM 编辑器
5、设置时需在配置文件中查找其配置内容是否与要求相符,这部分还可以根据需要建立符合要求的文件来与学生生成文件进行3比较判断,会频繁用到 1,2,&正确、错误、全部输出重定向的处理。2.2 系统管理 这部分主要测试学生对系统的管理,创建用户、组;文件、目录的权限、拥有者设置;系统分区、磁盘空间信息;管理员定期自动调度任务设置以及 Shell 脚本管理。 对用户和组的管理主要通过读取配置文件/etc/passwd 和/etc/groupgrep 来进行考察判断,其中会涉及正则表达式的特殊字符或$,来准确定位记录;文件或目录的权限可通过 find *-name *-perm * /temp 2/dev/
6、null 以及输入重定向 read string /temp 2/dev/null 来提取出磁盘或分区的信息;管理员所设置的定期自动调度任务需要在/var/spool/cron/root 目录中查找并测试;对 Shell 脚本的测试使用墨盒测试,使用特征数据验证结果。 2.3 服务器配置 这部分测试学生对典型的SSH、NFS、YUM、FTP、Samba、Apache、DNS 等服务的应用和配置能力。 这些服务的开机自启动设置须通过 if -e /etc/rc5d/S*来判断,而服务的架构正是通过服务的应用脚来达到反测试的效果,例如 NFS 服务,将通过 umount /mnt 2/dev/nu
7、ll;mount ?Ct nfs 1921680$*:emb mnt 2/dev/null 来验证 emb 目录的共享;FTP 服务,将通过 lftp 1921680$*|cd put|put file 2/dev/null 来将 file 文件上传到服务器的 put 目录来验证匿名用户可上传;Apache 服务可通过 fixfox 41921680$*来查看服务器的主页等。 3Linux 操作可测试脚本的实践 Linux 操作可测试脚本即评分系统,需要组建局域网络环境,将在一台 RHEL65 做服务器,简称 Server(1921680254,域名serverexamplecom) ,我们要
8、做的主要配置也是在 Server 上完成的。 Server 上需要做的服务有: (1)使用 FTP 共享光盘中的 rpm 包作为 YUM 源。 (2)DNS 服务,用于解析考试机,即工作站,简称 station 机(1921680*,域名 station*examplecom)以及 Apache。 (3)NIS 服务器+NFS,共享特定用户家目录。 下面我们分别介绍这些服务的实现。 3.1 使用 FTP 搭建 YUM 源 首先要将共享光盘挂载到 Server 服务器上:mount /dev/cdrom /media,安装 FTP 服务到 Server 中 rpm-ivh /media/Serv
9、er/vsftpdrpm,并开启 vsftpd 服务 service vsftpd start以及 chkconfig vsftpd on 设置开机自启动;然后将光盘资料复制到Server 上的 FTP 默认目录/var/ftp 中 cp-a /media/* /var/ftp/pub/中;最后定位 yum 源 rpm-ivh /var/ftp/pub/Server/createrepo-044-2fc6noarchrpm|createrepo。至此,Server 上的工作暂时告一段落,可以去 station 机上测试:首先配置网络环境 1921680*,网关 DNS 设为1921680254
10、,与服务器同属 examplecom 域,网络测试 ping 通过后,建立 yum 配置文件 vim /etc/yumreposd/Serverrepo,内容如下: Server 5name=Server baseurl=file:/mnt/Server enabled=1 gpgcheck=0 保存退出后 yum clean all|yum list 进行测试,至此,Server 上的 yum 服务端配置完毕。 32 搭建 DNS 服务 首先在服务器上安装 bind 软件包 rpm-ivh bind,并配置 vim /etc/namedconf 建立正向和反向解析域和文件 zone “exa
11、mplecom“ type master;file “examplecomzone“;zone “192168in-addrarpa“ type master; file “192168zone“;保存退出。然后分别设置正向和反向解析文件,格式如下: station*INA1921680* 0*INPTRstation*examplecom 保存退出,启动 DNS 服务。同时可以去 station 机上测试 nslookup,显示出主机名、IP、域名之间的对应,则设置成功。 3.3NIS 服务器+NFS 首先在 Server 上安装 NIS 服务器软件包 rpm-ivh ypserv-219-
12、3i386rpm,并检查服务器是否已安装 portmap、ypbind、yp-tools 服务rpm-qa|grep portmap;rpm-qa|grep yp;建立 NIS 域名 vim /etc/sysconfig/network,在该配置文件中增加一条NISDOMAIN=Centcom,启动 ypserv 服务 service ypserv 6start;nisdomainname 命令查看是否生效;然后编辑配置文件 vim /etc/ypservconf,增加记录如下: 127001/255000:*:*:none 19216800/25525500:*:*:none 此记录允许本地
13、主机对 NIS 服务访问。接下来创建 NIS 登录用户useradd niSUSEr3(家目录设置为/rhome/nisuser1)|passwd RedHat,并创建 NIS 数据库通过/usr/lib/yp/ypinit-m 来建立主数据库-s:建立辅助数据库,按 ctrl+D,Y 确认后就可建立数据库文件。/usr/lib/yp/ypinit ?Cm,然后重启 ypserver 服务。其次配置 NFS 共享nis 用户的家目录 vim /etc/exports,增加记录/rhome/niSUSEr319216800/16(rw)重启 NFS 服务。最后,通过配置客户端来验证 setup
14、进入配置界面,选择“认证配置” ,勾选上 NIS,下一步,输入 nis 账号所在域,设置 centcom,还有服务器地址1921680254。退出后 yptest 测试,成功后会显示 nis 用户信息;之后配置客户端 autofs,以便挂载 nis 用户家目录 vim /etc/automaster,增加/rhome /etc/automisc;vim /etc/automisc 增加如下记录: niSUSEr3-fstype=nfs,rw1921680254:/rhome/nisuser3 保存后 service autofs restart 启动服务,验证通过,至此,NIS服务器配置成功。 这样,我们的服务器基本配置完毕,Linux 可测试的评分系统环境就搭建起来了。 Shell 脚本语言是解释型的,这类程序的执行,是由解释器读入程序7代码,并将其转换成内部的形式,再执行。而解释器本身就是一般的编译型程序。使用脚本语言的好处在于它们多数运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象。而 Shell 就是一个典型的脚本编译语言。Shell 是各 UNIX 系统之间通用的功能,并且经过了POSIX 的标准化,可以应用到很多系统上。因此,使用 Shell 脚本完成Linux 操作测试评分系统是科学有效的方法。