第1页共9页基本知识培训试题一、版本管理1.版本管理的好处是什么?答:统一版本,历史回溯,变更比较,文件存放安全。2.公司目前的版本管理采用的是什么软件?市面上还有哪些常用的版本管理软件?答:SourceSafe。常用的还有:CVS,ClearCase,PVCS等3.什么是基线?答:基线是指阶段末尾的特定点,也称为里程碑。作用是确定阶段的开发成果。4.版本管理最常用的操作是哪些?答:增加、CheckIn、CheckOut、Delete。5.在CheckOut前应进行哪些检查?答:在CheckOut时,如果版本库中的版本比本地版本不同时,SourceSafe通过对话框来提示是否覆盖本地文件。多数情况下,应选择LeaveThisFile。只有在确认无误的情况下,才选择Replace选项。[提示]:公司的员工曾经出现由于误选择了Replace,造成写了1天的测试用例文件被覆盖,不得不重新再写测试用例的情况。6.SourceSafe中个人的工作区在什么地方?个人工作区的作用是什么?答:在$WorkSpace/UserName目录下。当需对受控区的文件/文档进行修改时,先由配置管理员将文件放在个人工作区,个人CheckOut取出,进行修改后CheckIn至个人工作区,再由配置管理员收回。7.SourceSafe中个人的临时工作区在什么地方?个人临时工作区的作用是什么?答:在$Temp/UserName目录下。作用:存放个人的阶段任务成果(工作指示单要求的成果物);第2页共9页8.公司软件开发的配置项有哪些?存放在SourceSafe下什么地方?答:配置项有:项目开发中的各种文档,$Document下项目开发的源程序,$SourceCode下项目管理中的过程文件,包括质问票、Bug票、作业单、会议记录等,$Management下9.请描述修改受控区文件的操作流程答:1.经项目经理同意,向配置管理员申请文件的修改权限(口头或正式填票)2.配置管理员将文件放在个人的工作区下3.在个人工作区内对文件进行修改后,CheckIn。4.通知项目经理确认,配置管理员收回工作区的文件。10.SourceSafe文件删除后能否再恢复?答:SourceSafe文件的删除有两种,Delete和Destroy。Delete删除的文件可以恢复。Destroy后的文件不能恢复。11.SourceSafe的回退操作如何进行?答:SourceSafe的回退操作可以直接进行,但这样当前文件的信息就丢失了。正确有作法如下:1.CheckOut要回退的文件;2.将要回退版本的文件保存在本地;3.将本地回退版本CheckIn。为了查阅的方便,要加上注释说明第3页共9页二、测试1.什么是Bug?答:简单的说,Bug就是程序(模块)的处理结果与预期的结果不一致。预期的结果是指在一定条件下的处理输出。2.常见的日文编码方式有哪些?如何简单判断日文编码?答:常见的日文编码有SJIS编码和EUC编码。Windows平台采用SJIS编码。Unix平台下一般采用EUC编码。南极星、EmEditor等软件可以识别当前的日文编码。[说明]:由于对日文编码理解不清,造成程序与要求式样不符的现象已经有二次了。因此在日文应用程序中,要明确显示何种编码的概念。3.最严重的Bug是什么?答:最严重的Bug是程序的崩溃。在Unix下程序崩溃时,会出现“coredump”的提示(内核转贮)。一般简称“Core”了。在Windows下会弹出一个程序异常的对话框,然后程序关闭。4.程序coredump的原因有哪些?答:最常见的coredump是由于程序访问了非法地址造成的。NULL指针、内存越界都会造成Core。另外在Solaris的机器上,也有BusError产生的core。BusError产生的原因是由于访问的地址字节未对齐造成的。5.如何使用core文件?答:core文件中保存着程序在崩溃时的内存映像。通过下面的命令可以查看core$gdb程序名core用bt命令可以查看程序在何处发生问题。6.如何用ftp上传和下传文件?答:对于文本文件(程序/测试脚本)用ASCII方式进行上传和下传。对于二进制文件(tar文件/程序文件/gz文件)用二进制格式。不管在什么情况下,建议不使用ftp工具默认的格式,ftp并不是完全智能。7.用ftp工具,以用户名rulej登录服务器,如果将本地文件上传到mm21s目录下,将会有什么情况发生?答:无法将本地文件上传到mm21s的目录下,由于使用rulej用户登录服务器,不具有对rulej的同级目录和父级目录的操作权限。第4页共9页8.如何在测试服务器上压缩或解压tar文件?a)如何将当前目录下的test目录,压缩成test.tarb)如何将当前目录下的test.tar压缩文件解压答:a)$tarcvftest.tartestb)$tarxvftest.tartest9.请写出unix下操作的常用命令。答:ls,more,cd,mkdir,rm,pwd,cat,...10.如何设置环境变量。答:a)$NAME=TOMexportNAMEb)$NAME=TOM$exportNAME11.如何编译程序?答:调用make[参数]12.如何使用vi编辑器?答:$vi[文件名]i命令、a命令、o命令-进入编辑状态按ESC键退出编辑状态w-保存q-退出wq保存退出q!不保存退出13.分别说出下列命令行的作用:a)$find.–name“so.txt”-printb)$find.–name“so.txt”–execrm{}“;”b)$find.–name“so.txt”–okrm{}“;”答:a)在当前目录以及子目录下查找文件so.txt,将查找结果输出到标准输出。b)在当前目录以及子目录下查找文件so.txt,将找到的文件删除,无提示信息。c)在当前目录以及子目录下查找文件so.txt,在删除找到的文件前出是否删除文件的确认信息。在使用find命令删除文件或目录时,如果无法确认是否删除所有匹配的文件或目录,最好使用c),删除之前出确认信息,键入y将删除,键入n将忽略。14.什么命令可以查看cpu的占有率答:top命令第5页共9页15.什么命令可以修改文件的属性?答:chmod命令16.在运行测试脚本前最应该做和想的事是什么?答:如果时间允许的话,一定要对测试脚本进行备份,任何意外情况都不是预知的,备份脚本最好下载到本机上。17.如何将SJIS编码的测试脚本拷贝到excel中,使其不变成乱码?答:将测试脚本下载到本机上,打开控制面板将区域设置成日文,重新启动就可以了。18.如何保证式样书上的测试用例能够正确的生成测试脚本,如何将式样书上的测试用例生成测试脚本。答:a)式样书的书写必须依据固定的格式,因为宏是按着固定的格式读取式样书的内容来创建对应的目录和文件。b)打开测试式样书,点击工具栏-宏-录制新宏,打开工具栏-宏-VB编辑器。打开VB编辑器左边模块目录下的模块1,将生成脚本的宏拷贝到模块1,执行宏就可以了。19.在打包前和打包后要做哪些必要的工作?答:1)检查当前要打包的成果物更新时间。2)查看是否存在垃圾文件。3)对成果物进行打包。4)将打包后的成果物以二进制下载到本机上,测试是否能正确解压。5)将打包后的成果物以二进制上传到服务器上,在新的测试环境下,解压测试。所有测试解压成功后,说明打包成功。20.画图说明公司mm21s项目自动测试的方法。答:测试脚本(包含命令行)要处理的文件标准输出错误输出比较程序预想标准输出预想错误输出路径替换的环境变量NG/OK测试用例条件=命令行条件+处理文件条件第6页共9页21.如何终止测试脚本的运行?答:按键ctrl+c22.什么叫回归测试?答:对以前已经通过的测试用例重新进行测试,以保证系统在变更后,应能正常运行。第7页共9页三、软件工程1.软件开发分为哪几个阶段?答:中国的分类:可行性分析与计划、需求分析、设计、实现、集成测试、确认测试、运行维护。日本SEDM分类为:+-----------+--------------+----------+--------------+--------------+|计划(PN)|设计(DN)|编码(PG)|测试(TG)|运行评价(OE)|+-----+-----+----+----+----+----------+----+----+----+-------+------+|SP|SA|UI|SS|PS|PG/MT|PT|IT|ST|OT|ME|+-----+-----+----+----+----+----------+----+----+----+-------+------+SP-SystemPlanningSA-SystemAnalysisUI–UserInterfaceDesignSS–SystemStructureDesignPS–ProgramStructureDesignPG-ProgrammingPT–ProgramTestIT–IntegrationTestST–SystemTestOT–OperationalTestME–MaintenanceandSystemEvaluation2.什么是基线?答:基线是指阶段末尾的特定点,也称为里程碑。作用是确定阶段的开发成果。3.在基线时应进行什么工作?由哪个部门负责?答:在基线时,应对阶段的开发成果进行评审。由质量部负责。计划、设计阶段的成果必须经过评审后,才能进入下一阶段。4.在PG阶段进行哪些工作?答:PG阶段的工作如下:1.根据PS文档编写模块设计书;2.编写PG文档编写程序,程序完成后应消除所有编译警告;3.对代码按照项目的规范进行检查并修正不合格的地方;4.根据PG文档及程序,编写MT测试用例;5.进行MT测试。发现Bug要在MT式样书上作记录,并提取Bug描述,修正Bug;6.MT完成后,整理MT测试成绩书及总结。第8页共9页5.编码中常见的Bug有哪些?如何避免?答:1.书写马虎,产生Bug。如下面例子:voidfoo(unsignedchar*in){signedchar*out;out=(signedchar*)malloc(strlen((char*)in+1));strcpy(out,in);}由于将malloc(strlen((char*)in)+1)误写为malloc(strlen((char*)in+1))而产生内存越界的Bug。2.内存泄漏/资源泄漏如下例:Object*o1=newObject();Object*o2=newObject();o2=o1;//o2原来的指针悬浮,无法回收......3.逻辑错误,产生Bug。逻辑错误的各类很多,如死循环、情况考虑不周全,逻辑表达式错误等。如下例函数去除字串左边的空格时,由于未考虑到空串的情况,因此产生了Bug。externchar*strtrimR(char*str){SCHR*ch=NULL;size_ttmp=0;tmp=strlen((char*)str);ch=&(str[tmp-1]);while(0!=isspace((int)*ch)){/*-向前查找时未检查边界,可能造成越界*/ch--;}*(++ch)='\0';returnstr;}4.内存释放错误。内存释放错误的原因是指针接口约定不清造成的。一般的原则是谁申请谁释放,在释放后,将内存指针置零。5.内存越界。6.在IT/ST测试时发现测试用例以外的Bug时应如何处理?答:IT/ST测试用例中有一个大项目为随机测试。当发现测试用例以外的Bug时,应将Bug的再现用例追加到随机测试大项目中。并生成相应的测试脚本。第9页共9页7.公用模块/函数的设计在哪一个阶段进行?答:公用模块的设计在SS阶段进行设计。在SS设计文档中专门有一章详细说明系统使用的公用模块的名称、功能、参数。此外,被多个系统调用的数据结构也在SS设计中规定下来。8.设计文档中只能看到系统的实现描述,但不能看