如何进行shell脚本正确性测试


  在实际工作中,需要对shell脚本进行正确性测试。如何用最快最有效的方式进行测试?

  很多开发的习惯是,二话不说,写完/拿到,就跑一把,看看输入,输出,想要的操作是否完成,也就过了。其实这是十分不严谨的,若是未经过QA,风险还是相当大的。

  以下即shell脚本测试流程,仅供参考
1.代码走读
  写完,或者拿到一个shell脚本,不必急于运行,虽然实践是检验整理的唯一标准,但是,在读代码这个过程中,可以规避很多低级的bug.
  读什么?
  A.代码逻辑,这个脚本用来做什么,主要分为多少步,分别做了什么事情?
    用于检查是否有遗漏逻辑,或有悖于需求。
  B.具体语法,变量,判断语句
    语法方面的东西,变量是否定义,判断语句逻辑是否正确,是否考虑各种异常,错误是否退出,返回正确状态值等。

 

2.语法检测
  shell的语法还是相当让人无语的,很多很容易疏忽遗漏的地方
  命令格式: sh -n ***.sh

  若是没有异常输出,证明脚本没有明显的语法问题。

 

3.运行跟踪
  实践是检验整理的唯一标准,跑一把。不过,可不是直接运行然后去看最终结果,这样会遗漏掉很多中间过程。
  命令格式: sh -vx ***.sh
  得到效果如下:

  我们可以看到,每行代码原始命令(无+的):[这是-v的效果]
  代码执行时的情况(带+),包括运算结果,逻辑判断结果,变量赋值等等[-x的效果]
  而我们所要关注的就是这些信息,主要是变量值和逻辑判断结果。

 

4.覆盖分支
  直接跑,只能覆盖到主体流程,对于其他控制流分支的代码是无法覆盖到的。
  对于关键性的,重点的逻辑,我们需要制造条件,使运行脚本可以进入对应分支。

 

5.其他
  A.关于bashdb
    可以尝试下,但是感觉投入产出比不高
  B.关于单元测试
    实际工作中,由于项目压力比较大,单元测试的成本还是相当高的,所以目前为止没有。

 

文章来源:http://blog.csdn.net/wklken/article/details/7983054

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM