[学习PowerShell可以做什么][2][统计源代码行数]

任何工作都是伟大, 自力更生即是伟大. 至少我是这样认为的, 作为一个软件开发人员来说, 工作不只是简单的coding, 然而国内很多时候确实将开发人员与coding画上了等号.

作为一个开发人员, 特别是应用开发人员, 除了能够按照要求开发出相应的功能或模块, 还必须具有良好的文档编写能力和构造单元测试能力.

作为测试工程师, 你能够想象一直按照测试流程, 一遍一遍重复进行同样的劳动么.

我们需要什么来帮助我们完成测试这一重要软件开发环境中的任务? 某些企业测试工程师与研发工程师比例为1:1, 我们就能够看出测试的重要性. 所以自动化进行测试, 自动化进行数据生成等工作就成为了软件过程质量管理重要的组成部分.

我们首先要纠正对测试工程师的偏见, 特别是某些开发人员看不起测试工程师. 看不起测试工程师, 只证明了目光短浅. 俗话说三个臭皮匠顶个诸葛亮. 大部分人的智慧水平是相似的, 每个人都只能看到问题的一部分, 而团队合作就是为了能够让每个人的优点都被发觉出来, 将大家看待同一问题的不同想法相互分享和讨论. 如果可以做好这些工作, 团队的力量就会非常强大.

为什么要测试? 开发人员在实现一个功能模块之前, 一定会有一些假设, 譬如输入参数的取值范围等. 某些特性是可以在编写代码之前确定的, 譬如数据结构的设计, 变量的取值范围等. 以及期待的模块输出结构. 这些内容在编写模块之前就是确定, 因此你可以在编写代码之前得到一些期待输入和期待输出. 通过大家对同一模块的讨论, 大部分特性都可以在真正实现功能之前予以确认. 有了测试用例, 接下来的编码就可以很容易进行评价. 因此开发人员需要有一定的测试能力. 测试人员可能需要构造一些自动化测试, 譬如测试页面响应, 最大负载等. 很多时候, 你都可以借助脚本来帮助你完成这些任务.

我们首先看一个简单的脚本, 它用来统计源代码的行数:

Get - ChildItem  - Recurse  |  `
Where
- Object { ! $_ . PSIsContainer}  |  `
Where
- Object {  $_ . Name  - match  ' .(c|asm|cpp|h)$ '  }  |  `
ForEach - Object { $t   =   0 } { $t   +=  (Get - Content  $_ . PSPath) . count} { $t }

首先利用Get-ChildItem取得所有文件, 你可以使用-Include, Exclude, Filter来过滤需要统计的文件行数, 我这里领用Where-Object是因为Get-ChildItem提供的过滤功能不能区分文件和目录, 为了防止误伤, 我使用正则表达式进行匹配, 选择c, asm, cpp, h文件作为统计对象.

本来应该介绍如何简单的设计测试用例, 编写测试数据的生成器进行讲解. 但是, 由于最近帮助别人进行一些数据库调优的工作, 所以个人时间严重减少, 非常抱歉关注我的blog的朋友.

你可能感兴趣的:(数据结构,工作,正则表达式,测试,单元测试,powershell)