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

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

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

取精华、去糟粕!适合iOS开发者的15大网站推荐 Swift如何优化性能? 【程序员电子刊精选】明道CEO任向晖:企业也需要养成好习惯 你信吗?重构软件并不会改善代码质量 融合VR与AR:uSens推出虚拟现实手机头盔 4月17-18日,OpenStack、Spark、Container齐聚OpenCloud 2015 第四代CSS选择器,那些让你激动的新特性 联通WO+开放平台“App计费 ” 保障手机应用付费安全 Valve推Lighthouse技术,欲解决VR设备眩晕感 全球移动开发者报告:Swift崛起,物联网大火! 不圈地自萌!10个UX设计经验分享网站推荐 苹果继续改改改!Swift语言何时能稳定? 封闭还是开放?Android Wear离iOS究竟有多远 TIOBE 2015年3月编程语言排行榜:CoffeeScript首次进入TOP 100 2015网页摄影图的六大流行趋势 原生体验挡不住!JavaScript开源跨平台框架NativeScript 自行车,恰到好处的“智能” 联通WO+开放平台:保护消费者权益就是保护移动互联网生态 2015年Google Code Jam编程挑战赛开始报名 Impression Pi:VR头盔的进阶形态 King.com和Halfbrick Studios成功背后的21款工具 五大实用技巧 帮设计师实现高效会议沟通 机遇与挑战并存 Testin进军众测 新增多SIM卡API,Android 5.1 SDK正式发布! 谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 请教消息队列相关问题 出错了,请大侠们帮忙看看! 大家的ID也太不工整太没创意了吧?有点乱七八糟的!看我的多好! 一个简单的问题???? 用Table过滤数据,在线等待!!! 请问有没有办法通过c#连接到Internet上的某个数据库(用c#的工具) 清纯女孩不为人知的一面(未成年勿入) 菜鸟在线求助:=》》 大家好。有事请教 还是billboard里的 关于透明色 关于页面的连接问题 不好意思,问这个问题? 求教,关于网页的东东,急!!!!!!!!!!!!!!! 表间数据复制问题 关于远程控制的一个问题 那里有PB6.0可供免费下载? 关于 电视卡 压缩MPEG文件的问题 CComboBox为何不能下拉,属性已设为Drop List 菜鸟问题,怎样用photoshop画出的矩形有3D边框?没分了,请帮忙 急!磁盘检测出错?在线 有关限制插入操作的问题(SQL Server 2000),救急! 蓝星梦工厂的电视卡 怎样把"34444"->34444? 构造函数初级问题 求串口联网方法! 爱情和事业是不是真的水火不容不可兼得??? 窗体里的数据能不能排序呢 救急,为什么我设置的fnOpenModal参数无效? 如何修改listview中的值? 经常去联众下围棋的兄弟进来,问个问题 用jbuilder怎样把htc文件打包到web application中去? 求助高手指点:用vb实现把结果输出到已定制的word表格中 用200百分问个很菜的问题 关于超星的问题 探讨:如何把软件开发工作为我们一生的事业 ocx问题?参数传递 用200百分问个很菜的问题 请问谁能告诉我一个制作从模糊到清晰运动的源代码或地址? 改变对话框中菜单区的背景色,急 弱智问题:我修改一个打印报表的数据窗口格式,修改后的新问题是它每次打印时接着纸的最上面, IE不能打开新窗口。是什么道理? java下如何得到当前程序(application)的路径?很急!! 组件调用问题? 初学者问题, 简单!! 为什么struts的中文资料如此之少??哪位知道有哪些中文书籍?电子书最好!! 我想做一个报表之类的东西,能在网页上显示,大家给点提示,有现成的例子最好,先谢了 请教各位大大 一个关于消息映射的郁闷 如何在Remote Data Module中使用ADOCommand? 真失败...关于优化pl/sql的问题 为什么名字空间下没有ADO 如何获得一个文件的完整URL地址? 电路原理中,电阻和电抗的计算方式是一样的吗是用电抗求功率和用电阻求功率,不是求电抗和电阻 以一个三棱柱的任2个顶点做直线,共有15条,其中异面直线有几条?择优看不懂你的回答哦````四面体为什么是C6?不是C8吗 宋朝人口到底有多少? 为什么树不静风不止?什么意思? 过三棱柱任意两顶点的直线共15条,其中异面直线有几条 金属化聚丙烯膜安规电容上有一行印字:40/110/56/C有什么意义?要换一颗电容,耐压和容量相同,但印字是40/100/21,不清楚这些印字的意义,谁知道它们表示的都是什么,意义为何? 问:par devoir,par esprit de A la question « pourquoi travaillons-nous » des réponses évidentes nous viennent :avant tout pour vivre et se nourrir,pour s’épanouir,pour être reconnu dans la société,par devoir,par esprit de service. 有一个人去旅行,他带了五个动物,分别是,狮子,猴子,牛,绵羊,马,他途经沙漠时,被沙有一个人去旅行,他带了五个动物,分别是,狮子,猴子,牛,绵羊,马,他途经沙漠时,被沙尘暴吹走了所有的粮食, 桃花心木的启示 鲨鱼为什么对血特别敏感? 跳岛游 ISLAND HOPPING怎么样 在桃花心木中我得到什么启示 一只鲨鱼可以探测到水中______含量的血液? 通过家乡变化赞美党的作文 急求郑州市主城区共分几个区,每个区的分界线是什么,最好说出详细的路为为分界线, 不知足者常乐的辩论我的观点是不知足者常乐 ISLAND HOPPING怎么样 亚欧分界线穿过哪个城市 我方认为是不知足者常乐,可是要找几个辩驳反方的问题, esprit怎么念? 渤海与黄海的分界线怎么画?是哪两个城市的连线?是烟台与旅顺么? 知足者常乐 作文 电井、水井建筑面积怎么计算 你认为叙利奥是个什么性格的孩子,谁知道, 《拿破仑与欧洲》读后感不少于2000字 有谁学建筑的 谁能给我设计个建筑图 长80m宽26m大小的空地,中间有个电...有谁学建筑的谁能给我设计个建筑图长80m宽26m大小的空地,中间有个电线杆,在设计一个生产车间,库房,办公室(这三个 滚动轴承的结构简图有标准代号?如果有,是什么? 辩论,不知足者常乐不知足者常乐如何辩倒知足者常乐,需要提供资料 关于廉政的格言 调心球轴承有哪两种结构 解释一下下面两幅图的电路原理,越详细越好,急等 拿破仑传得读后感600字 Dolphin Island是什么意思 知足者常乐吗?请从不同的角度发表你的看法. 风欲静而树不止子欲养而亲不待什么意思 PAMILACAN ISLAND DOLPHIN WATCHING怎么样 树欲静而风不息?解释一下? 经过棱柱每个顶点有几条边 的主要内容要自己的话 树欲静而风不息,子欲养而亲不在. 名人传读后感5000字 help me! 蓝色海豚岛主题 树欲静而风不息,子欲养而亲不在这句话是谁说的? 为什么国家货币印多了就会通货膨胀?关于货币和同伙膨胀之间的详细关系,有哪位大哥能简明扼要的给小弟解释下么 海豚岛的读后感 作者:克拉克 500字(优美语句至少要有三句)小女子万分感激『注意』●《是海豚岛》哦!不是《蓝色海豚岛》● 鲨鱼最敏感的部位是哪里?鼻子?嘴部?背鳍? 八棱柱有几个顶点 电容,电阻主要用于哪些产品上? 详细解说超再生接收电路原理这个图相信各位已经看过很多遍了,但一直没人能清清楚楚的说个明白,它到底是怎样解调的.请将电路中的电感和电容是怎样进行充放电和振荡讲的透彻些.不点开 四棱柱有几个顶点 廉政的解释 虎沙鱼尾部现血红色后烂尾是什么病 Elephant Island 求翻译~在南极洲 坚定的信心,能使平凡的人们,做出惊人的事业.对于凌驾命运之上的人来说,信心就是生命的主宰的意思? 羊字加形旁是什么形声字?福建教育出版社“暑假乐园”11页 过三棱柱任意两个顶点的直线共15条 其中异面直线有几条 廉明解释廉明自律是什么意思?谢谢! 树欲风而静不止,子欲养而亲不待. 过三棱柱任意两个顶点的直线共有15条,其中异面直线共有()对. 刚正廉明的解释 日本学生12万粒杏仁膏立体再现法国印调查指澳洲侨民向往亚洲 首选泰国、中澳大利亚捐精人数下降 从海外进口满足全球首辆太阳能家用车亮相 未来或大量澳大利亚警方追捕偷车贼 路过少年被无调查报告称澳移民目的地开始从欧美转向泰国国会再开赦免法案审议 政治博弈错加拿大女子相亲网站“钓男人”吃免费餐日本内阁法制局长官:日本变更宪法解释马尔代夫新总统难产 官方不满联合国指背景资料:俄乌天然气之争的背后澳接连发生披萨店枪击案 或与获奖披萨澳大利亚警方追捕偷车贼 路过少年被无日本研究发现治疗糖尿病和代谢综合症物美学生供认曾入侵多人电脑 包括“妙龄德国法兰克福市计划在闹市区巡警肩上装俄罗斯建议在莫斯科与叙利亚政府和反对悉尼两名男子无故捅死陌生少年被判30悉尼16岁男孩参加学校活动摔下悬崖昏澳大利亚100只被困小狗被解救 狗场Facebook承认传闻:年轻人已开省政府党组召开“三严三实”专题民主生“飞天奖”颁奖终结“科学”流言靠什么间中有小雨 天气阴冷依旧陈皮胡椒鱼肠焗蛋元旦怎么玩?让我带你看烹饪达人将献“独门名吃”终结“科学”流言靠什么保监会:部分举牌险企面临流动性风险省“两会”下月23日开幕张国立自批:没法儿跟孩子做朋友行走颠覆片面的认知贾乃亮再求婚李小璐飙泪2016旅行月历佛山推出40条“干货”为民营企业家“陪孩子一起“玩”英语年终揽储大战今年不再广州市委领导班子召开“三严三实”专题广州全日制私塾探秘佳兆业携手京东打造深圳首个“智能生活新闻漫画
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘