说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

提高大型软件项目质量的一些实用型技术分享

HTML文档下载 WORD文档下载 PDF文档下载
提高软件产品质量一直是开发人员所追求的目标,而世上并没有什么绝招可以保证程序员开发的产品不存在质量问题。但实践出真知,一些开发者总结平时项目开发经验,通过提高测试覆盖率和使用一些质量工具提高产品质量。

金无足赤,人无完人。在软件行业里,想要开发出一件没有bug的产品简直是天方夜谭,甚至开发出一款高质量的产品也会难于上青天。但是实践出真知,一些开发者总结平时项目开发经验,通过提高测试覆盖率和使用一些质量工具来提高产品质量。

当项目经理开始着手一个大型软件项目时,就得思考产品质量问题了,并且从测试就要开始关注。然而并非所有的测试都是一样的,下面提供一些常见的测试类型:

  1. 单元测试
  2. 不变条件测试(断言等)
  3. 功能测试
  4. 压力测试
  5. 性能测试
  6. 可伸缩测试
  7. 基于用户的负载测试
  8. 场景测试

下面,本文将讨论提升测试覆盖率以及如何使用力量倍增器(force multipliers:对现有测试套件进行改进,再以新的方式测试产品)来成功测试长尾浮现的稀有bug( the long tail of rarely surfaced bugs)。

把测试计划写在纸上:测试矩阵

编写测试时,最困难的事情之一莫过于决定测试什么?当产品有很多功能的时候,大家都可以随意用,真正关键的难题是你如何将这些功能有系统的组织(串联)起来。

大家可以编写测试矩阵,最后把所有的功能大小都写下来,并且汇总到一个大的电子表格中,然后再移交到工程团队。

投资一个测试执行系统

你可能会编写许多测试,但集成测试允许开发者排除陷入瘫痪的异常来做出更深的修改。这样的集成应该做到快速、可伸缩,你需要stellar测试基础设施来自动执行添加、管理以及运行测试等操作。一个构建良好的执行系统,其执行功能测试的速度会安全快速地提升。

构建一个良好的测试基础设施类似于为开发团队编写消费类产品。一个完美的测试执行系统在每次推送后,会运行整个测试套件。

Psyduck平台可以运行任何测试子集,并且无需担心代码的版本问题。此外,如果你想运行本地不断变化的代码,Psyduck可以打补丁,所以,一般在运行Psyduck之前都会执行如下代码:

memcompute1:~/memsql/memsqltest nikita(arcpatch-D2497)$ ./psy test --filter=.nikitaCompressing patch...done.Sending 5340 bytes to S3.....done.patch id = 901be82c33ee4b07b142d102660e3206Psyduck uses a combination of in-house hardware along with hundreds of Amazon spot instances to run tests as fast as possible in parallel.

去年夏天,一个MemSQL的实习生创建了一个名为Liveduck的实时虚拟化层。下面这个界面显示了所有正在运行的和最近刚完成测试的元数据,比如相关工程师、通过/失败数:



一个优秀的测试系统所具备的一个特性是,无论在开发者电脑上还是在平台上,每次的运行情况都应该是一样的。此外,每个测试都应该是独立的,以至于它需要零安装。这也有助于测试套件的维护,并且加快故障排查。

力量倍增器(ForceMultipliers)

下面列出了一些力量倍增器清单,使用其中的任意一个技巧都可以把MemSQL带到一个新的水平。

1. Transforms

MemSQL拥有许多Transforms,这里列了几个:

  • 复制Transform
  • 子查询Transform
  • 备份恢复Transform

2. 随机生成查询

这里有一些力量倍增器用来随机生成查询:

  • 产生许多不同的查询,但结果一样。
  • 创建智能生成器,来逐步增加生成测试的复杂性。
  • 发现bug后会自动降低查询的复杂性,并且创建一个最小的可再生测试用例。

3. Functional Stress

4. 堆栈散列器

5. 生成故障

6. 通过代码审查来提高透明度和代码质量

使用一个好的代码审查工具乃是必须的,比如像Phabricator,它可以集成工作流,并且使用起来非常轻松有趣。


总结

在开发一个大型项目时,为了提高产品质量来投资测试基础设施是完全值得的,并且你会收获到许多意想不到的惊喜:

  • 使用stellar工具和力量倍增器可以减轻许多人力劳动,并且对长尾bug的测试非常有帮助。
  • 要时刻意识到当前产品所处的质量状态
  • 快速稳定的运送产品

来自:MemSQL.DEVELOPER BLOG

用VB设计一个定时闹钟程序 用VB实现拖放功能 在VB中启动控制面板 在VB中异步执行程序 在Visual Basic中终止Windows 95 在关机或Logff前信息的拦截-VB资料 VB怎样捕捉窗体的鼠标? VB怎样存取注册表信息 VB怎样改变双击鼠标的时间间隔? VB怎样关闭一个正在运行的程序 VB怎样限制鼠标移动 ANI文件格式 -VB资料 AVI文件格式-VB资料 DBF文件转为MDB文件的方法 -VB资料 FLIC动画文件的播放程序设计-VB资料 MS Office 开发工具VBA TextBox 中英文输入方法切换-VB资料 TXT文件的读取-VB资料 VB 如何将dbgrid印出来 VB5.0调用Office97技巧 VB5如何把帮助文件加到设计的程序内? VB编程步步高-打印篇(二) VB编程的好帮手资源文件 VB的OPEN对话框控件图示功能扩充 VB通用数据表格输出程序的设计 VB网格中输入数据 VB应用程序中打印条形码的两种方法 VB与Windows资源管理器互拷文件 VB中DOS文件名与长文件名的转换 VB中的Unicode 和 Ansi 格式 VB中如何实现文本查找功能 如何把asccii字符串转化为unicode形式的字符串??? 高手请帮帮我吧 打印RichTextBox 的内容时,如何设置页边距? 可变参数的函数 想找个老师帮我提高 要做一个dll需要在不同的平台调用该如何声明? 硬盘分区表是哪个文件? 我准备写篇有关软件企业的管理的文章,谁愿提供建议和材料,谢谢! 急!如何在VB中控制扫描仪,并按要求取得图象? 高手请指点 [给分]请global_boy(准备蒸发)进来领分!帮助解决Win2000启动选项的配置..原贴:http://www.csdn.net/expert/topic/592/592163.xml?temp= 请教高手!如何通过文件名获得其图标 MCSE?! 数据连接错误? 如何让datagrid绑定数据 ISAPI程序里输出的网页无法显示,大家救命! 请问如何在Jb6中使用中文字体,比如说宋体 HTTP 和 FTP 一个黑客问题? SQL 急的!谢谢大家帮忙!关于interbase与c++builder5的连接。 请教高手! 哪里有免费下载<thinking in c++>等图书的? 那位大侠懂在 VC 中用汇编??? 有会命名管道操作的高手吗 请教高手! 异步传送的问题? 如何杀死某个进程呢? 苦行僧与灌木丛来领分 如何把一个string转换成int delphi与Access ADO连接的详细设置? 请问能否用C#实现进程的完全隐藏? 创天中文VC6.0的问题????? 有谁知道类似WINDOWS98那个星空的屏保是如何实现的? 请各位大虾提供一些JAVA开发工具的下载网址 在Web Service中传递图像字段数据回客户端的问题!请教大侠! 买过深入浅出MFC的朋友请进~~~~~~ 会Java的究竟难不难找工作啊? 有什么方法可以让自己的机子有假的ip呢? root 是不是可以无限制看其他用户的文件? 高手看了吐血的问题(WinXP下无法执行.asp脚本) 这段代码错在那?? 我安装了一个winXp和win98,如何卸载win98阿,谢谢。 如何在picture控件里方便的画出坐标系,要完整的,要是一条一条画太麻烦了 在ASP中如何产生一个类似CLSID的,不会重复的值? flash5里如何制作填充渐变为任一色到透明色填充? 关于SESSION的问题 ado里怎么压缩access数据库 100分在线 谁发扬一下共享精神,借我看看背单词软件的源代码!!谢谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 急啊,有谁有读写客户端数据库的控件,希诺在吗 己经开发了一个sql server2000与ASP的系统,怎么把数据库移到别的机子上去运行! 119消防知识说全点啊! 瞬间感人的母爱【作文】300字左右 游记作文700字左右.要开学了. 还有1个月考托福,该怎么办?我前一阵把托福的单词书背了几遍,练了练听力,今天考的,感觉不是很好.听力跟不上,其他的感觉也不是很好.还有一个月,我该怎么全方面的学习一下?口语,写作和听 有没有消防知识短语?要英文的.快我要短语,不要句子,最好还能有中文! 关于省略号的含义. 消防知识征文350-400字. 帮我回答一些消防知识!1:据统计,火灾中死亡的人有80%以上属于()A:被火直接烧死 B:烟气窒息而死 C:跳搂或惊吓致死2:在相对封闭的房间内发生火灾时()A:不能随便开启门窗 B:只 写出句中省略号的作用 (1) 母亲大声问:“你来干什么?” “我……”还有:“有事快说,别耽误妈干活!”“我……要钱……” 我还有三个月考托福!求建议!水平一般~我正在上一个托福速达班 ,还有10多天结束我必须要让自己考上90分 ,,给出详细规划安排.我不要转载 ,. 谁知道消防知识? 请问省略号表示多少种意思?各有是什么? 消防知识日记,400字左右 推荐母爱的作文 还要写300字推荐理由仅限两天啊 不知道的别乱发混积分 机不可失失不再来 省略号的含义省略号的所有含义,像省略等等拉 我准备3个月后考托福,问一下现在应该怎么准备.我六级520,想在明年2月份报新东方托福强化班,还想问一下在2月份报班之前应该怎么备考,应该做些什么.我托福想考90分以上, 第一次考托福93怎么办?求分析!谢谢.我在读高二,托福目标能上110最好这次阅读26,听力23,口语20,写作24.感觉我平时口语、听力不错啊,在学校里用英语交流很自如,而一到考场就讲得很结巴.像我 省略号的意思是什么 本人准备考托福小弟在做新东方那本专项的初级阅读,请问此书的难度和考试的难度相差大吗?还有英语4级到托福大概可以考多少分? 还有十天考托福 第一次 高手给点建议 其实已经好久没去学校上学了,却也没在家里好好学托福,现在好后悔.我自认为单词还可以 ,听力还凑合,平常做tpo大概错8个以内吧,阅读原来做了,一般一 有一只小狗问她的妈妈,妈妈,妈妈,幸福是什么?她在哪里呢? 假如你是李华,你的英国笔友杰克不久前去美国留学,他给你写信说很不适应那里的生活.请你根据以下提示用英语给他写封回信,鼓励他勇敢面对.要求:1.了解当地生活习惯,尊重当地风俗2.与美 第一次考托福~提前多久进考场?我报的考位是在广州外国语,不知道环境如何,报考人似乎不多,那边一直有考位.我口语和听力都不错.但是我现在担心的就是,如果我在听力的时候别人开始考口 一只小狗问妈妈幸福是什么的作文 速度 500字哥们 500字你那 什么啊 .... 无奈了 写一篇给叫jack的英国笔友的一封信 由于他性格内向 不擅长交朋友 所以感到十分孤独 写信向我求助 然后是我的回信 第一次考托福 应该选择哪些付款选项? 一只小狗问他的妈妈幸福是什么的作文 今天考托福时,听力完后休息的时间,我的作文模板在进场前被老师发现,但是他让我继续考完,但记录了我的件号,并叫我写了事情的经过,说是交给EST判断,怎么办,我是不是出不了国了,麻烦知道 观2012年春晚《天网恢恢》有感作文600字 一篇游记的作文600字的 我还有几个月的时间就要考托福了,现在正在备考过程当中,但总觉得写作方面对我来说太难了,咋办? 2012年春晚节目《天网恢恢》的观后感500字左右 好的加分(最好先写小品的情节 然后写自己的感受) 看2010春节联欢晚会后有感作文急! 小时代读后感300字左右希望有对人物的分析,一两个就够了 观2012年春晚刘谦魔术有感作文600字 观2010春晚有感 作文 一个令人紧张的时刻的作文怎么写? 作文《2012年看春晚的感想》各位帮我整一篇呗、五百子以上哦、 看2010春节联欢晚会后有感作文400字左右急 《金银岛》读后感300字左右 观2010春晚有感作文各位大哥大姐帮忙啊!800字左右.25日前要用啊 .! 要有自己的感受! 作文 《春晚的感受》 明天就要考托福了 有点紧张 11篇作文多久写完最快多久写完.明天就开学.今天必须写完.救命啊 准备了一个月后第一次去考托福才60分,现在是初二,上90大概要多长时间如题,虽然预计也就60来分了,但还是不太满意之前是没怎么准备的,所以来问一下突击的话两个月以后上90有没有可能 安全消防知识1.任何人发现火灾时,都应当立即 ( ) .2.我国通用火警电话号是,报警时应沉着准确,言语清楚,应讲明( ) 、燃烧物质、火势大小、( )和 ( ).3.进入公共场所,一定要注意观察( ) .4 假如你是北京红星中学学生李华,你的英国笔友Jack来邮件询问北京的雾霾天气情况.请你按照以下提示给他回一封120-150字的邮件.1.自去年年底以来发生数次雾霾天气,分析其原因及其给人们生 我打算13年11月份考托福,请问什么时间报名比较合适?怎么报名?第一次考托福,不太懂,恳请会的帮帮忙,谢谢各位 消防知识“二知”___知识,___知识. 假如你是李华,你的英国笔友jack发邮件征求你对朋友的看法.提示:1要诚实、2要相互理解与支持、3能患难假如你是李华,你的英国笔友jack发邮件征求你对朋友的看法.提示:1要诚实、2要相互 这种情况第一次考托福大概多少分?现大三.大一上学期四级623,下学期六级592,都是背了一点单词直接考的.后来就没怎么碰英语了……两周前突然被要求考托福,现在题型基本都已熟悉,口语模板 消防知识三懂三会是什么? 求作文 500字左右 考托福要准备多长时间比较好? 求消防知识 小弟周日就要考托福了,各位有经验的大大有什么建议给我啊? 小红和小明的铅笔枝数相等,如果奶奶给小红16枝铅笔,给小明2枝铅笔,那么小红的铅笔支数就是小明的3倍,原来小红和小明各有几只铅笔?请详细解答. 三个月考托福个人情况 六级530 你说他裸也不全裸...总之英语基础一般 还有两个半月考托福 之前毫无涉猎 已经报了班 5月12开始上 7月28 第一场 第二场一个月后 想要第一次90 第二次100 来不 要一篇作文《爱心伴我成长》800字 写游记作文600字左右、、急!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘