《关于openEuler软件包加固测试的经验.docx》由会员分享,可在线阅读,更多相关《关于openEuler软件包加固测试的经验.docx(6页珍藏版)》请在第一文库网上搜索。
1、关于OPenEUIer软件包加固测试的经验本文作者在开源实习中参与了。PenEU1er社区QAS1G的工作,以下分享关于OpenEu1er软件包加固测试的经验。关于SIG-QA作为一个热门的操作系统,OPCnEUIer发布了众多的软件,但是这些发布的软件不一定是完备的,可能存在质量、安全等问题,为了降低软件开发成本和使用风险,我们需要对软件包进行加固测试。OpenEu1er社区按照不同的SIG(Specia1InterestGroup)来组织,以便于更好管理和改善工作流程。软件包加固测试后美工作则由SIG-QA团队负责,SIG-QA团队的目标是测试构成OPenEU1er发行版的软件,提高OPe
2、nEUIer社区的质量和测试能力。团队会在src-openeu1er组织仓库(https:/任务地址如下图迸入企虹作台ASrc-OpenEuIer0tt匕仓库枷7G)任务PuRequestsm动态月成员W全那剑B刑曲:工行中0日腿二SMIB$rcOpenEu1er/fwpdMupdtX件包MsB耐0mem、0t440fAwco*S100。除才青三条件intmQA-.nSe*n-U23V卜S3719ft学会mugen框架工欲善其事必先利其器,IIIUgen框架就是我们完成任务的武器,只有熟悉mugen框架才能完成好任务。mugen框架规定了我们编写的用例如何执行,Shen脚本格式如何编写,同时还
3、规定了各种公共函数可以直接调用。学会了II1Ugen框架,才知道如何写一个测试用例、如何运行测试用例,这些都可以在mugen仓库的README,md文档中学习。mugen框架有两个重要的包,一个是suite2cases,一个是testcases的c1i-testo在suite2cases里面我们只需要写一个json文件,里面存放测试用例名(脚本文件名)。当json文件里面有多个测试用例时,我们便可以用指令控制一次执行一个用例还是多条用例。c1i-test存放用于执行的脚本文件。详细知识可以通过阅读mugen仓库提供的文档以及B站的视频进行学习。mugen重要文件夹IibsUCenSeSUite
4、2ca号testcasesIdepJnstaI1shmugen.sh-README.en.READMEmd存放jSOI文件runoetsh存放脚本支件对具体软件进行测试准备好环境之后,我们需要对具体的软件进行测试。首先我们需要熟悉软件的功能(以下图片以CrontabS软件包为例),它的各种指令。我们测试的目标就是覆盖该软件包命令行基本功能即所有指令。所谓磨刀不误砍柴工,只有充分了解软件的作用之后再测试,才能达到事半功倍的效果,我们可以寻找关于该指令的文档进行阅读,若该软件的维比较少,我们还可以阅读其源码。crontabs需要测试的指令Iroot(31oca1host#crontab-hcron
5、tab:inva1idoption-,h,crontab:usageerror:urrecognizedoptionUsage:crontaboptionsfi1ecrontaboptionscrontab-nhostnameOptions:-udefineuser-eedituserscrontab-11istuserscrontab-rde1eteuser*scrontab-ipromptbeforede1eting-nsethostinc1ustertorunuserscrontabs-Cgethostinc1ustertorunusers*crontabs-Sse1inuxcontex
6、t-Vprintversionandexit-xenab1edebuggingDefau1toperationisrep1ace,per1003.2root(31oca1host#对于软件包的测试,要测试的点包括但不限于软件能否正常谴、正常开启或关闭、软件的各个指令能正常执行并达到预期的效果,软件能够正常卸载。测试完之后,要保证“无痕”,即保证软件所有相关的文件都被清除掉,做到完美复原,这样就算一个软件包测试完成了。其中任何一个环节经过测试后,若确定有问题,需要向相应的软件包仓库提issue,供开发工程师进行解决。功能测试方法实例functionrun_test()1OGINFO,Startt
7、oruntestcase:oetestcrontabs.,Systeract1startcrondCHECK_RESU1T$?Fai1ed:systect1restartcrondCHEcK.RESU1T!?BFd11ed:systemct1stopcrondCHECK_RESU1T$?-FdIIed:SySteffiCt1statuscrondgrepstart*restartCHECK.RESU1T$?Systemct1startecho*CHECKRESU1T$?crontab-UrootCHECK_RESU1T!?Fai1ed:crondstop.dead-statusbin1s,va
8、rspoo1cronrootmFai1edoption:-ew-12XdIgrepbin1s-Fai1edoption:-1Mrun-parts-test.2&igrepMtest.shMCHECK-RESU1T$?0ia1odoption:run-parts-test*run-parts-1ist.2&1grepcrontabs.shCHECK_RESU1T$?crontab-xprocCHECK_RESU1T!?crontab-urootCHECK_RESU1T!?crontab-urootCHECKRESU1T$?Iax1edoption:run-parts-1ist1,varspoo1
9、cronroot261grep”enab1ed”tai1ed-I-s2&1“Fai1edI.31Pdechoycrontab-UrootCHEeK_RESU1T$?i.:.1edcrontab-n$NODE1_IPV42&1CHECK.RESU1T$?crontab-c2&1CHECK_RESU1T$?crontab-V21CHECK_RESU1T$?Fai1edoption:-xoption:-6option:r-i2r1Igrepnooption:-i,option:-n*grepH$NODE1_IPV4M,Faedoption:-cgrepdigit:*,“Fai1edoption:-V
10、1OGINFOEndtoruntestcase:oetestcrontabs.w提交测试成果在所有指令测试完毕,代码编写完毕后,可以提交代码。需要注意的是mugen仓库配置后,会产生冗余文件,这些是不需要上传的,必须清除掉再提交,具体哪些文件可以对比mugen仓库的文件。提交Pr时,要绑定自己的任务单号,并且要附上测试用例成功运行的截图。pr说明rootiodosaugenbashugen.sh-fcrontab!254测试CrOntabS软件包MonFeb710:21:38MonFeb710:21:41Moa710:21:42MoaFeb719:21:42INfO-strttoruntetc
11、aezoetestcrontab.INFO-Thecaseexitbycode.!NfO-Endtoruntestiae:oe_test_crontabs.INFO-Atota1of1usecaseswereexecuted,with1successesandfai1ures.在测试过程中,有任何不明白的地方都可以向负责该任务的导师进行提问,导师都会很负责的告诉你如何解决,但应该经过自己的慎重思考后再提问。提交Pr后老师会针对存在的问题进行留言,要及时回复并且作出修改。收获与建议参加OPenEUIer社区的开源实习活动对于我个人的成长有着重要的意义。通过完成软件包加固测试任务,我对于IinUX指令的运用更加得心应手,对于she11脚本的编写也更加熟练。对软件包测试的过程,其实也是对软件进行学习的过程,在今后的学习或工作中,遇到某一场景可能就可能恰巧可以用到我们测试过的软件去解决问题。就比如crontabs软件就可以用来完成定时任务相关的场景,而在接触到该任务之前我是完全不清楚的。希望有兴趣的同学可以积极参与到SIG-QA的任务中来,不要因为对某一领域的知识不牢靠而感到胆怯,这恰恰是提升自我的最好时机,大胆地去尝试,静下心来根据所遇到的问题去学习,去探索,最终一定可以找到解决方案!审核编辑:李倩