﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-51Testing软件测试网-文章分类-行业资讯</title><link>http://www.cnitblog.com/shbwf/category/6166.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 30 Dec 2018 09:47:17 GMT</lastBuildDate><pubDate>Sun, 30 Dec 2018 09:47:17 GMT</pubDate><ttl>60</ttl><item><title>APP测试中IOS和Android的区别，有哪些注意点？</title><link>http://www.cnitblog.com/shbwf/articles/91255.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 19 Dec 2018 09:25:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/91255.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/91255.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/91255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/91255.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/91255.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天我们来聊一聊APP测试中IOS和Android的区别，首先对于手机的操作系统知识尽量有一个了解，测试方法一般也是单元测试，接口测试，软件测试，单元测试。基于app代码，unit，testng都是可以进行单元测试，测试封装的类或者函数接口测试与其他接口测试一致，简单的app，测试一般采用手工测试，如果app模块稳定，可以采用部分自动化测试安装。考虑到用户的一个隐私，尽可能用少的权限，安装后的容量...&nbsp;&nbsp;<a href='http://www.cnitblog.com/shbwf/articles/91255.html'>阅读全文</a><img src ="http://www.cnitblog.com/shbwf/aggbug/91255.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-12-19 17:25 <a href="http://www.cnitblog.com/shbwf/articles/91255.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>备受关注的未来大数据世界：全球大数据发展的七个方向</title><link>http://www.cnitblog.com/shbwf/articles/91194.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 01 Nov 2018 10:54:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/91194.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/91194.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/91194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/91194.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/91194.html</trackback:ping><description><![CDATA[<p style="margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">当今科技领域发生了巨大的变化，也为大数据改善各行各业的业务、促进经济增长打开了大门。数据能帮助组织机构更好地开展工作，大数据分析已经超越了热门的IT趋势标签，成为公司业务的一部分。</p><p style="margin-top: 5px; margin-bottom: 5px; font-family: sans-serif; font-size: 16px;"><img src="https://pic2.zhimg.com/80/v2-6f91391eb53a5e876d74a33c6536a89d_hd.jpg" zh-lightbox-thumb=""  lazy"="" width="1000" _src="https://pic2.zhimg.com/80/v2-6f91391eb53a5e876d74a33c6536a89d_hd.jpg"  alt="" /></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">大数据的行业需求预测</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">1、企业需求</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9312;传统企业的大数据转型。</span>众多传统企业随着互联网化进程的不断推进，面临了一系列问题，其中一条核心主线就是基于已有数据的使用以及对于用户数据的采集。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">此类企业的成长点，市场化性质，及企业性质将区别于传统企业，而走上新业态、新模式的道路。包括车联网、互联网金融、汽车电商、房产电商，都已经出现了苗头。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9313;平台企业的大数据战略。</span>对于相对IT投入较少，IT基础较为薄弱的领域，比如零售、餐饮、服装、农业、出版等行业，企业不会去自建云计算及大数据平台，更多的则是会依靠专业化的数据服务企业或是数据服务平台来满足数据分析的需求。行业数据服务平台架构的初衷，主要是用云服务方式解决上述行业的信息化建设及运维需求。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9314;互联网企业大数据规模化发展。</span>互联网传媒是推动企业接触大数据服务中一个相对快速的行业，传媒由传统的单向被动模式转变成为双向互动模式，在吸引了用户群体的同时也通过定义用户肖像，来推动精准营销。精准营销使企业享受了新媒体带来的最实惠的成果，也为企业带来了一份较之传统传媒更加具体的数据分析报告。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">2、热点关联领域需求</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9312;金融大数据。</span>中国金融信息服务产业存在产业链分布广、市场空间巨大的特点，但与此同时，又表现出产业集中度非常低的现状。因此，未来必将经历大量的并购整合，最终出现几家庞大的IT服务机构。传统金融服务领域的人才资源、市场能力、技术及研发方面在全国范围内都具有不可比拟的优势，产业环境、配套资源都非常成熟。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9313;交通大数据。</span>一是智能交通，在交通和环境信息的基础上，实现交付跟踪，工作流程监督，和人力资源管理。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">二是自动驾驶，目前GOOGLE借助大数据及车载技术和传感器,以及高级辅助驾驶系统、软件、地图数据、GPS和无线通信数据等，实现了无人驾驶</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9314;新媒体大数据。</span>大数据引领的新媒体已经颠覆了国外数个传统媒体，以眼球经济为基础的传统媒体展示型广告已快速向以数据为基础的网络媒体精准型广告进行转变。在电信、广电及互联网领域海量数据处理具有丰富的研发及应用经验，所用技术重点关注于互联网广告投放技术、效果监测、目标受众行为分析及精准细分、广告智能匹配等。未来几年，新媒体大数据将越来越受到业界的追捧。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">&#9315;制造业大数据。</span>利用大数据推动信息化和工业化深度融合，研究推动大数据在研发设计、生产制造、经营管理、市场营销、售后服务等产业链各环节的应用，研发面向不同行业、不同环节的大数据分析应用平台，选择典型企业、重点行业、重点地区开展工业企业大数据应用项目试点，积极推动制造业网络化和智能化。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">因为各行各业对于大数据的需求不同，所以全球大数据有如下发展方向。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">全球大数据的发展方向预测：</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第一个方向是物联网</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">当今世界有84亿件物品互相连结，远大于全球人口数；不只是台式电脑、笔记本电脑或手机等3C产品可相互连接，还有物流公司通过智慧扫描仪做智慧物流，这都是可以改变消费者需求与企业生产发展的趋势。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第二个方向是智慧城市</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">这一方向的成败取决于数据和数据量是否足够，有赖于政府部门与民营企业的合作；此外，发展中的5G网络是全世界通用的标准，如果产品被一个智慧城市采用，将可以应用在全世界的其他智慧城市。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第三个方向是增强现实（AR）与虚拟现实（VR）</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">这两个技术最近开始降价并提升质量，逐步走向大众市场。VR应用一开始以电玩为主，现在的应用却超越电玩，比如依靠VR设备，用家里的插头、电线完成配线，就像有水电技师在现场教学一样。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第四个方向则是区块链</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">这项技术本质是编译码跟加解密，可以有效加密信息。区块链有很多不同应用方式，美国几乎所有科技公司都在尝试如何应用，最常见的应用是比特币跟其他加密货币的交易。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第五项方向是语音识别</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">语音识别可以迅速地整合在各项工具上，在智能设备和手机上使用。这个产业有个很大的优点，就是发展技术的公司都打算把这项技术商品化，比如Google、Amazon和苹果的语音识别技术都可通过授权，使用在其他业者的硬件服务上。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第六项方向则是人工智能(AI)</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">人工智能需要自我学习，汇入很多信息后才能进化，进而产生一些意想不到的结果。AI影响幅度很大，AI对经济发展会产生剧烈影响，很多知识产业和白领工作也可能被机器人取代。但AI会让生活更好，例如自驾车绝对比人驾车更安全。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">第七项方向是数字汇流</span></p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">对未来冲击最大的一个方向，就是将上述六项趋势合并起来的效果，比如84亿个物联网设备，可用区块链技术加强安全性；智慧城市透过物联网，就能产生海量数据，这些数据需要由人工智能进行分析；虚拟现实和语音识别也需要通过人工智能不断学习，这些科技发展息息相关、相辅相成，所以数字汇流是最重要的趋势。</p><p style="margin-top: 1em; margin-bottom: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;"><span style="font-weight: 600;">总结：</span></p><p style="margin-top: 1em; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;">当前以大数据为基础的科学技术正在飞速发展，以上7个大数据发展方向正日益受到人们的关注，但是为了从这些趋势中获益，您必须完全理解它们是如何被使用的，以及如何帮助您实现业务目标。这只是个开始，大数据将继续推动在商业和技术领域的变化，如何有效地适应这些变化并帮助自己的企业蓬勃发展，现在取决于您。</p><p style="margin-top: 5px; margin-bottom: 5px; font-family: sans-serif; font-size: 16px;">&#8203;<span style="color: #666666; text-align: justify; font-family: 微软雅黑;">欢迎加入 &nbsp;51软件测试大家庭，在这里你将获得【最新行业资讯】，【免费测试工具安装包】，【软件测试技术干货】，【面试求职技巧】... 51与你共同学习，一起成长！期待你的加入： QQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #666666; text-align: justify; font-family: 微软雅黑; font-size: 14px;">群：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #666666; text-align: justify; font-family: 微软雅黑; font-size: 14px;">755431660</span></p><img src ="http://www.cnitblog.com/shbwf/aggbug/91194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-11-01 18:54 <a href="http://www.cnitblog.com/shbwf/articles/91194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试技术选定</title><link>http://www.cnitblog.com/shbwf/articles/91064.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 20 Jun 2018 07:52:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/91064.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/91064.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/91064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/91064.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/91064.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;"><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">&nbsp; &nbsp; &nbsp;&nbsp;<span style="word-wrap: break-word; font-size: 15px;">转载：http://www.51testing.com/html/89/n-3725989.html</span><p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; font-size: 15px;">&nbsp; &nbsp; &nbsp;作者：<span style="word-wrap: break-word; color: #6f6f6f; font-family: &quot;font-size:13px;&quot;;">铁棍山药</span></p>&#8203;&nbsp; &nbsp; &nbsp;每个系统都会有他的生命周期，从生到死，经历少年、中年、老年三个阶段。复杂度的管理贯穿系统的整个生命周期，就像进化论的自然选择一样，不停的优化着系统，不停的断舍离，保持着系统的生命力。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　系统初建的阶段，主要是完成0到1的构建，用于验证业务模式或者做最小的Demo产品。这个阶段优先考虑的就是时间和成本，就是要快。因此，这一阶段的<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">技术</strong></u></a>选型很重要，如果选择不对，就会引入不必要的复杂度，降低研发效率。<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">我觉得有以下两个维度可供考虑。</strong></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">　　第一个维度是团队成员对所选技术的熟悉度。</strong>项目初期其实能找到的人也是有限的，如果成员对某个技术非常熟悉，的确就缩短了学习的成本，而且也能避免掉曾经犯过的问题。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">第二个维度是各种技术方案的适合度和成本。</strong>我们得知道，没有包治百病的技术方案，所有的技术方案都有他适合的领域，而且每个方案成本也是不一的。下面分别说几个技术方案的选择。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　先说一下开发语言的选择吧，我无意争论哪个语言更好，而且语言也是在不断变化中，只是说明下当下各种语言的适用场景。其实各种语言都有他适合的地方，各家公司也都会用到不止一种语言，来解决系统不同的问题。但是在系统初期，语言的选择还是很重要的。对于安卓和IOS客户端，这个没有选择的余地了，选择官方推荐的就可以。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　后台开发语言选择面就比较广了，C/C++/Java/Php/Python/.Net/nodeJs等等，眼花缭乱的，一般情况下，尽量选择开源的语言平台，社区支持会好一些的，架构相对比较成熟一些，各种疑难杂症都可以获得免费的支持。我对.Net并无恶意，事实上我也是从.Net开发做起的，而且.net也已经开源，但是时间太晚，的确业内有不少公司，在业务壮大以后从.Net转其他的语言。C/C++因为对内存的有更灵活的掌控，比较适合做高并发但逻辑简单的服务或者中间件，如果是业务逻辑复杂的系统，初期不建议采用了；Java是目前非常广泛使用的语言了，社区支持丰富，几乎可以支撑全栈应用，同时面向对象的设计模式很适合拆解复杂业务，易于扩展和维护。但是框架选择太多、太复杂，用好了真不容易，入门有一定门槛；Php/Python/nodejs都是动态语言，开发非常灵活简单，虽然也支持面向对象，但不是强制，上手容易，很适合初期采用。但是一旦系统复杂度变高，太灵活也会变成问题，就是大家开发太随意，往往后期就要为这个随意买单；到底选择哪种语言，我想见仁见智吧，没有标准答案，工具没有好坏，只有适合不适合。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　系统运维这块，我觉得这几年最大的变化就是云技术的兴起，云的可用性已经超过平均单个公司自己组建运维团队所能做到的可用性，而且使得运维变得足够简单，初期甚至不需要运维人员，业务规模壮大以后也可以只保留业务运维人员，同时按需来付费，这些都极大的缩减了运维成本。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　而且云技术已经不单单是运维这一方面了，他通过更灵活的云端API，其实提供了各种服务能力，让我们可以快速灵活的接入，实现自己的业务需求。比如音频、视频、直播、文件存储、数据存储等等，俨然是一个API的资源库。这其实从根本上改变了业务开发的模式。在业务初期，怎么借助云的力量，接入现有的服务，快速发展业务，是非常重要的，尽量不要重复造轮子。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　当然，金币总有两面，云技术也在发展的过程中，数据安全就是一个需要关注的问题，再就是一旦出现运维事故，云服务商的响应速度也是一个考验；另外，随着业务的快速壮大，按需付费的成本也会变得越来越高，直到超过自建机房的费用；同时，业务所要求的可用性可能也越来越高，第三方的响应支撑是否及时也是一个问题。这时候势必要发展私有云，代价也是很大的。当然，系统建立初期，我觉得完全可以使用公有云。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; line-height: 24px;">　　总结一下，系统初期，技术选型非常重要，一要看团队熟悉什么，二要看各种技术方案的优缺点和成本，最后，要善于借力云技术，避免重复造轮子。<br style="word-wrap: break-word;" />&#8203;&nbsp; &nbsp; &nbsp;如果有任何疑问，欢迎添加qq群测试入门到大神 755431660 共同学习~<br style="word-wrap: break-word;" />&#8203;<img src="http://blog.chinaunix.net/attachment/201806/20/29734443_1529480590rLiR.png" data-ke-src="/attachment/201806/20/29734443_1529480590rLiR.png" width="627" height="517" alt="" style="word-wrap: break-word; border: 0px;" /></div></div><img src ="http://www.cnitblog.com/shbwf/aggbug/91064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-06-20 15:52 <a href="http://www.cnitblog.com/shbwf/articles/91064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试岗位供需现状分析</title><link>http://www.cnitblog.com/shbwf/articles/91051.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Mon, 11 Jun 2018 07:40:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/91051.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/91051.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/91051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/91051.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/91051.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">作为一个资深<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">测试</a>开发工程师，同时以三年面试官的经验，感觉现在测试岗位供求关系严重失衡，同时也为一些测试工程师，测试开发工程师而着急，所以写了这篇<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">文章</a>，希望能给相关人员一些帮助。我是计算机专业硕士研究生，从实习到毕业一直从事测试开发工作，比较喜欢这个岗位，同时对这个岗位的发展，相关的新<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">技术</a>保持着高度的关注。我不是搞统计或是社会调研的，所以不会从数据方面来说明问题，以我每次换工作都能涨薪40%以上的工作经历，来阐述一下存在的现状。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">　一，&nbsp;&nbsp;<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; color: #111010;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">功能测试</strong></a>关注点比较窄</strong></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　不管我们测试的是<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">web</strong></a>, app还是m端，或是如微软C/S架构的软件，还是如银行，国企等专项的产品，功能测试是基础。工作上一年半载的，就能了解相关的测试流程，如<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">需求分析</strong></a>，<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">测试用例</strong></a>编写，用例评审，提测试验收，功能测试，<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">Bug</strong></a>回归以及上线和线上回归。但是很多人员比较关注自己的需求，而不是整体项目或是这个需求在整体项目中的作用，在大型项目或是与多部门合作的时候就手足无措。在一个新项目的测试的时候，如app，仅仅考虑到App本身，而对接口的传递，服务的测试，以及后端数据的校验不去关注。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　在测试工具的使用上，局限于公司提供的工具，仅仅会使用就满足了，而不去了解为什么要这么用？还有没有其他相关的工具？再者是就是沉迷于自己公司的产品，如<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">微软</strong></u></a>的产品测试方法与流程可能和其他<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">互联网</strong></u></a>公司不一样，也不去了解大部分企业是怎么测试的，深信自己公司的测试方案比较牛。除非你想一直在公司干下去，否则你就要了解一下行业现状，现在没有公司愿意花大量的时间来培训员工，招你来就是让干活的。你以往的工作经历再厉害，企业如果用不上也不会要你的。离开现在的平台，你还有什么，这个才是最重要的。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">二，&nbsp;&nbsp;<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; color: #111010;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">自动化测试</strong></a>没有方向</strong></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　在最近一年多的时间，大多数做测试相关的同学都意识到了如果没有代码经验，测试工作也达到了瓶颈。所以都会去学习相关的自动化测试，但是往往不得法。一者通过参加培训班来学习，参加培训班的时候由于不了解行业发展现状，学习一些过时的技术或是方法，一至实际工作中就变得无所事从。如学习<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">QTP</strong></u></a>, Loadrunner等自动化测试软件，发现社会上使用不多；学习通过Excel来组织测试数据，用python或是<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">java</strong></u></a>来编写自动化测试用例，执行起来效率非常低；编写自动化测试用例的时候，没有整体考虑，后期执行用例时一个个执行，没有执行结果汇总，没有错误<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">记录</strong></u></a>等问题层出不穷。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　由于自己公司业务的限制，缺乏尝试和创新，要么只了解公司现有的框架，要么就是在公司现在的框架上写用例而不去了解整体框架的工作原理。当面试的时候问到自己的自动化测试用例的优缺点，是否了解过业界其他相关的框架或是开发模式的时候，两眼一抹黑。这些情况在现在的面试过程中很常见，而如果你是这种水平的话，不能说明你会自动化测试，当然也很难面试通过。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">　三，&nbsp; 企业空缺大，求职者达标少</strong></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　目前企业对测试人员也要求越来越高，仅仅响应需求的功能测试人员基本饱和或是留给了校招生。通过社招渠道找工作的人，都要求有一定的自动化或是代码经验，能解决工作过程中遇到的问题；或是编码能力较强，能参与公司相关测试项目的开发工作。薪资待遇基本上是15&#8212;25K，然后是一大堆岗位要求，要求会上一串很唬人的语言或是技术。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　应该有不少人员在面试过程中会被要求写不少编程题，如单链表逆序，二叉树遍历，日志过滤等。这一方面是看你的编码能力如何，另一方面也能从编码习惯来看你有没有参加过大型的项目开发。再者还有给你一个具体的问题，让你来给出解决方案，如：现在有一个全新的App,如果让你负责测试，你可能会实施哪些测试方案？而不像以前那样做个逻辑题，或是写个测试用例什么的了，这个变化相信大家一定深有感触。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　在这几年的面试过程中，公司一直在招聘T3，T4级别的测试人员，通过简历筛选进入面试的人，差不多三四十个才能有一两个达到要求。更多的人员是在公司完成部分代码工作，模仿和重复的成份居多，同时不关注当前业界<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">测试技术</strong></a>的发展。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">四，&nbsp; 资深测试开发，测试架构师独孤求败</strong></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　测试行业不断发展，公司的测试部门也需要一些大牛来进行相关的工作。一是由于行业原因，代码能力强，有架构经验的人员一般都在开发部门；二是要求高，资源测试开发工程师不仅要精通测试相关的技能，还要会前端设计，服务器配置等等，几乎是全栈工程师；而做程序的人员一般精通一点或是几点的较多，从前到后全都能上的越来越少。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　但是企业想快速发展自己的业务的时候，必须有一个强大的测试团队来保证质量，通过一系列的CI，CD以及其他的手段来促进项目的实施与投放。这就要求相关工程师要从多方面来考虑问题，不仅要考虑项目的实施成本，还要考虑参考与的测试，开发，产品甚至用户等人员，同时要与公司发展的前景及方向相切合，并能很好地为之服务。同时这类人才公司都比较看中，每年的找工作季节也就那么几个人会进入人才市场流通，而且很快就能找到工作，企业的通常定位都在30K以上。这也是我们每个测试人员的努力方向，只有你具备了相应的实力，才有资格向企业要求你期望的薪资。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　上面通过我的个人经验对测试岗位的供求现状，可能存在的片面与不足之处，但是也能说明点儿问题。文章从表象来介绍了一下相关不同测试人员的现状，而从与面试人员的聊天过程中，发现大多数人是想好好学习，想进步可是不知道学习的方向，以及如何学习？后面我会通过几篇文章介绍相应的测试人员应该掌握的内容，以及如何学习。不足之处还请及时交流，大家相互学习，相互促进嘛！<br style="word-wrap: break-word;" />&#8203;&nbsp; &nbsp;&nbsp;如果有任何疑问，欢迎添加qq群测试入门到大神 755431660 共同学习~<br style="word-wrap: break-word;" />&#8203;<img src="http://blog.chinaunix.net/attachment/201806/11/29734443_1528701319tDEN.png" data-ke-src="/attachment/201806/11/29734443_1528701319tDEN.png" width="627" height="517" alt="" style="word-wrap: break-word; border: 0px;" /></div><img src ="http://www.cnitblog.com/shbwf/aggbug/91051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-06-11 15:40 <a href="http://www.cnitblog.com/shbwf/articles/91051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作总结之我为什么选择了测试？</title><link>http://www.cnitblog.com/shbwf/articles/91021.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 17 May 2018 02:58:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/91021.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/91021.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/91021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/91021.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/91021.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;"></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　刚才特地去浏览了以前为工作面试而准备的资料，大部分都是些概念性的东西，还有些必问问题的答案。感觉很不走心，也就适合没有工作经验时用用吧。很早就想要写写关于工作方面的东西，还为此专门开通了博客园的账号，但是因为懒惰一直没有付诸行动。今天不知道是因为外太空引力波的干扰还是古西西比国祭司的祈祷，终于开始了第一篇工作总结。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　首先想聊的是为什么选择<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">测试</a>这一工作，基本上面试的时候，面试官都会问到这一问题。那为什么我就选择了测试呢？最大的原因应该就是读大学的时候阴差阳错被调剂去了计算机专业。要是我学的是应用心理学，真的很难会和<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">软件测试</a>扯上什么关系。既然学的是计算机专业，那自然接触的最多的就是和计算机相关的，当大三面临找工作压力时，就要选一个方向了。刚读大学的时候很傻，因为与生俱来的逆反心理，抗拒专业调剂这件事，进而讨厌计算机这个专业，认为不是自己选择的，拒绝去接受和热爱。也就没有打下任何计算机专业知识的基础，编程能力基本为0！在这种情况下，选择做开发就需要面临更大的挑战了。先插一句，简单来说，计算机专业做<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">技术</a>的话，主要有这几个方向，第一，开发，通俗来说就是写代码的；第二，运维，简单来说就是做系统部署维护的；第三，网管，好理解点就是搞网络的，让你能上网的；第四，测试，就是大家口中说的找bug的；第五&#8230;&#8230;当然，还有很多很多方向，可以做设计做产品经理，等等。每一个大类的细分就更多了，就开发来说，可以按语言来分，可以按产品来分，可以按软件的结构来分。测试的分类也是五花八门，也不一一列举了。既然如此，选择如此之多，我为什么就偏偏选择了测试？简而言之一句话，测试上手容易。入门级的话，对计算机专业知识技术要求没那么高。本着先就业再择业的态度，就一脚踏入了测试这个坑。不曾想，有些时候一旦入坑，就很难回头了，因为只要开始一份工作，后面都会按着相似的岗位和既定的轨迹来走。若要重新开始一条路，就意味着要舍弃很多，要多付出不可估量的努力，而最关键的是，宝贵的时间就在这种转换中被无情地浪费掉了。所以，大家一定要慎重选择自己的第一份职业，第一份工作。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　肯定不会单纯因为是计算机专业就选择了测试，更重要的是我看到了这个岗位的就业需求量巨大，基本上任何一个成型的<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;">互联网</a>公司都是需要测试工程师的。不言而喻，有需求就有前景。万万没想到后面会出现那么多培训机构，造成行业内从业人员供大于求，这是后话了。按书上的理论来说，一开始企业是不重视测试的，有程序员设计开发出来一套产品，能用就能挣钱了，何必多花一笔钱找个不能创造价值的家伙来专门负责挑刺呢。后来因为各种千奇百怪的bug层出不穷，造成了意想不到的损失之后。老板们纷纷意识到，质量保证人员也是不可或缺的，于是企业们纷纷向测试工程师挥手，薪资待遇什么的自然水涨船高。在测试人员供不应求的情况下选择测试这个岗位，不可谓不明智。但是，正如一幅讽刺漫画中描述的一样，中国人看到有人在一个地方开加油站很挣钱，于是纷纷在那个地方开起了加油站。所以现在人们听说IT行业挣钱，不管之前学的是什么专业，都想要往这里钻了。连文科生都参加培训班，然后敲起了代码。现在行业已经不如前几年景气了，不过在这万物互联，<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">生活</strong></u></a>事事都软件化智能化的时代，好的软件测试人员也还占一席之地。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　基本上大家都知道，同等条件下的开发岗位会比测试岗位的工资要高，那为什么还要选择做测试呢？这就要综合考虑了，首先，开发是一个无中生有的过程，是从0到1，是更需要消耗脑力和精力的，头发是更容易稀疏的。而测试只是一个把1变为更好的1的过程，想方设法让他变成个更高的1更壮的1，是在一个已有的系统上确保其质量的，相对来说会简单点。进一步来说，开发的压力也是会比测试大，因为写代码的是开发，而改bug的也是开发。加班时间来说，普遍而言，开发也会长一些。对我个人而言，我是不太喜欢在高强度高压力下工作的。于是，这也成为了我选择测试的一个原因。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　再补充一点，就是我从小就喜欢和人抬杠，喜欢对老师讲的知识进行挑刺。而这种抬杠劲，说好听点是质疑精神，正是测试人员所必须的一大品质之一。从一开始就要认为你们家的孩子是最丑的是有缺陷的，从产品需求出来一直到产品上线，要一路质疑产品，质疑开发，一直在抬杠一直在撕逼，从未被超越。广大测试同仁还能好好活着，真的不容易！</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　那么以上几点，就是我选择测试的原因了。误打误撞被调剂到了计算机专业，理性分析看到了行业发展的前景和机会，避重就轻选择压力更小背锅能力强却不容易被分锅的角色，然后秉着与人撕逼不死不休的精神在测试之路上走到现在。<br style="word-wrap: break-word;" />&#8203;&nbsp; &nbsp; &nbsp;希望可以留言，说说你为什么选择测试，当然还可以添加QQ群测试入门到大神&nbsp;<span style="word-wrap: break-word; color: #1a1a1a; font-family: Helvetica, 黑体; font-size: 16.5px; letter-spacing: 0.7px;">755431660&nbsp; 一起学习测试之路~<br style="word-wrap: break-word;" />&#8203;<img src="http://blog.chinaunix.net/attachment/201805/17/29734443_1526524781KPQy.png" data-ke-src="/attachment/201805/17/29734443_1526524781KPQy.png" width="402" height="381" alt="" style="word-wrap: break-word; border: 0px;" />&#8203;</span></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;"><span style="word-wrap: break-word; color: #1a1a1a; font-family: Helvetica, 黑体; font-size: 16.5px; letter-spacing: 0.7px;"></span></div><img src ="http://www.cnitblog.com/shbwf/aggbug/91021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-05-17 10:58 <a href="http://www.cnitblog.com/shbwf/articles/91021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>成为技术老大技术管理篇2一技术选型</title><link>http://www.cnitblog.com/shbwf/articles/90999.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Tue, 24 Apr 2018 03:36:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90999.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90999.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90999.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90999.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　每个系统都会有他的生命周期，从生到死，经历少年、中年、老年三个阶段。复杂度的管理贯穿系统的整个生命周期，就像进化论的自然选择一样，不停的优化着系统，不停的断舍离，保持着系统的生命力。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　系统初建的阶段，主要是完成0到1的构建，用于验证业务模式或者做最小的Demo产品。这个阶段优先考虑的就是时间和成本，就是要快。因此，这一阶段的<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;">技术</u></a>选型很重要，如果选择不对，就会引入不必要的复杂度，降低研发效率。我觉得有以下两个维度可供考虑。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　第一个维度是团队成员对所选技术的熟悉度。项目初期其实能找到的人也是有限的，如果成员对某个技术非常熟悉，的确就缩短了学习的成本，而且也能避免掉曾经犯过的问题。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　第二个维度是各种技术方案的适合度和成本。我们得知道，没有包治百病的技术方案，所有的技术方案都有他适合的领域，而且每个方案成本也是不一的。下面分别说几个技术方案的选择。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　先说一下开发语言的选择吧，我无意争论哪个语言更好，而且语言也是在不断变化中，只是说明下当下各种语言的适用场景。其实各种语言都有他适合的地方，各家公司也都会用到不止一种语言，来解决系统不同的问题。但是在系统初期，语言的选择还是很重要的。对于安卓和IOS客户端，这个没有选择的余地了，选择官方推荐的就可以。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　后台开发语言选择面就比较广了，C/C++/Java/Php/Python/.Net/nodeJs等等，眼花缭乱的，一般情况下，尽量选择开源的语言平台，社区支持会好一些的，架构相对比较成熟一些，各种疑难杂症都可以获得免费的支持。我对.Net并无恶意，事实上我也是从.Net开发做起的，而且.net也已经开源，但是时间太晚，的确业内有不少公司，在业务壮大以后从.Net转其他的语言。C/C++因为对内存的有更灵活的掌控，比较适合做高并发但逻辑简单的服务或者中间件，如果是业务逻辑复杂的系统，初期不建议采用了；Java是目前非常广泛使用的语言了，社区支持丰富，几乎可以支撑全栈应用，同时面向对象的设计模式很适合拆解复杂业务，易于扩展和维护。但是框架选择太多、太复杂，用好了真不容易，入门有一定门槛；Php/Python/nodejs都是动态语言，开发非常灵活简单，虽然也支持面向对象，但不是强制，上手容易，很适合初期采用。但是一旦系统复杂度变高，太灵活也会变成问题，就是大家开发太随意，往往后期就要为这个随意买单；到底选择哪种语言，我想见仁见智吧，没有标准答案，工具没有好坏，只有适合不适合。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　系统运维这块，我觉得这几年最大的变化就是云技术的兴起，云的可用性已经超过平均单个公司自己组建运维团队所能做到的可用性，而且使得运维变得足够简单，初期甚至不需要运维人员，业务规模壮大以后也可以只保留业务运维人员，同时按需来付费，这些都极大的缩减了运维成本。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　而且云技术已经不单单是运维这一方面了，他通过更灵活的云端API，其实提供了各种服务能力，让我们可以快速灵活的接入，实现自己的业务需求。比如音频、视频、直播、文件存储、数据存储等等，俨然是一个API的资源库。这其实从根本上改变了业务开发的模式。在业务初期，怎么借助云的力量，接入现有的服务，快速发展业务，是非常重要的，尽量不要重复造轮子。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　当然，金币总有两面，云技术也在发展的过程中，数据安全就是一个需要关注的问题，再就是一旦出现运维事故，云服务商的响应速度也是一个考验；另外，随着业务的快速壮大，按需付费的成本也会变得越来越高，直到超过自建机房的费用；同时，业务所要求的可用性可能也越来越高，第三方的响应支撑是否及时也是一个问题。这时候势必要发展私有云，代价也是很大的。当然，系统建立初期，我觉得完全可以使用公有云。</div><div style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px; margin: 0px auto; padding: 0px; line-height: 24px;">　　总结一下，系统初期，技术选型非常重要，一要看团队熟悉什么，二要看各种技术方案的优缺点和成本，最后，要善于借力云技术，避免重复造轮子。</div><span style="word-wrap: break-word; color: #3e3e3e; font-size: 14px; font-family: Helvetica, Arial, sans-serif; white-space: pre-wrap;">       如果有任何疑问，欢迎添加qq群测试入门大神 755431660 共同学习~</span><span style="color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;">&#8203;</span><br style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;" /><span style="color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;">&#8203;</span><img src="http://blog.chinaunix.net/attachment/201804/24/29734443_1524540640V9KF.png" data-ke-src="/attachment/201804/24/29734443_1524540640V9KF.png" width="402" height="381" alt="" style="word-wrap: break-word; border: 0px; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;" /><span style="color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;">&#8203;</span><br style="word-wrap: break-word; color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;" /><span style="color: #3e3e3e; font-family: 微软雅黑; font-size: 14px;">&#8203;</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-04-24 11:36 <a href="http://www.cnitblog.com/shbwf/articles/90999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高效教练—领导的特质</title><link>http://www.cnitblog.com/shbwf/articles/90990.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 19 Apr 2018 06:37:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90990.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90990.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90990.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90990.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">&nbsp; &nbsp;　1、未来的领导者需要拥有明确的价值观和清晰的愿景，他们真诚、灵活、内心一致、目标明确。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　2、领导者必须具备基本特质：价值观、愿景、真诚、灵活性、一致性、目的</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　3、我们真正的价值观藏于内心，这些价值观在根本上都是普世性的。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　4、在开始探索自我和自己的价值观，更清楚地探索社会问题之前，我首先必须摆脱来自父母、社会和文化的制约。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　5、我们需要价值观驱动型的领导者&#8212;&#8212;是集体价值观而非个人价值观，并且他们专注于他们的价值观，把它们最合适地用在最合适的问题上。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　6、强迫员工改变内心的价值观来与公司的规定保持一致是很危险的。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　7、未来的领导者必须具备的第二个特质是一个包容所有人的愿景。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　8、全方位的系统思考与价值观密切相关，因为任何行动都可能在看似毫不相关的领域产生意想不到的后果。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　9、个人进一步发展的过程中有一个阶段，即在超个人教练的帮助下学习退后一步，变成一个冷静的观察者。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　10、绝对的真诚总是与最好的价值观和愿景密切相关。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　11、一方面是摆脱来自父母、社会和文化的固有成见和旧的信念与假设的束缚；另一方面是消除恐惧，尤其是阻碍人们对改变持开放心态的对未知的恐惧。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　12、灵活性是一个<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">生活</strong></u></a>的议题，也是一个我们会越来越需要的特质。领导力就是领导，你能够领导一切，就像教练就是教练，你能够教练任何人。这就是未来所需的灵活性。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　13、领导力的背景已经发生根本性的变化，主要有两个原因：一是过去许多领导规则和技能不再适用于今天的社会条件，急需新的领导能力；二是负责任的领导者更加重视全球的、社会的和环境的问题，或者至少和短期的财务成就不相上下。<br style="word-wrap: break-word;" />&#8203;有兴趣可添加我们的qq群 测试入门到大神&nbsp;<br style="word-wrap: break-word;" />&#8203;<img src="http://blog.chinaunix.net/attachment/201804/19/29734443_1524117005kTVk.png" data-ke-src="/attachment/201804/19/29734443_1524117005kTVk.png" width="653" height="506" alt="" style="word-wrap: break-word; border: 0px;" /></div><img src ="http://www.cnitblog.com/shbwf/aggbug/90990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-04-19 14:37 <a href="http://www.cnitblog.com/shbwf/articles/90990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事情越多，你越需要建立任务管理系统</title><link>http://www.cnitblog.com/shbwf/articles/90965.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Fri, 13 Apr 2018 02:05:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90965.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90965.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90965.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90965.html</trackback:ping><description><![CDATA[<p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">转载：http://www.51testing.com/html/72/n-3725472.html</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">你有没有经历过这样的一幕：每天都感觉自己特别的忙，然而每当到晚上要睡觉的时候，想不起今天具体做了些什么事情。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">可能是这天做的事情太多了，忙到自己也记不清楚了。</p><img alt="null" src="http://www.51testing.com/attachments/2018/03/14982672_201803291326581Sk2V.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">2015年前的我也是这样，那会还是在做淘宝，每天除了优化淘宝店、接待客户之外，还需要打包做售后。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">不光如此，本身笔者对<strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"><u style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">互联网</u></strong>上的一些赚钱项目也比较感兴趣，除了做好本职工作之外，还需要建网站来优化排名。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">关于网站排名优化这块，要做的事情很多。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">比如说更新内容，做外链、检测数据、优化网页代码等等.....</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">可以说，是相当的忙，从早上一睁眼，一直忙到晚上睡觉。但是好像也没有做出很好的成绩。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">开始反思自己!</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">比谁都忙，但是忙的很累，很杂乱，想到什么就去干，久而久之自己的身体也变的比较亚健康了，现在回想起来真是太不值得了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">改变，往往是在一瞬间的。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">通过各种学习，找到了解决的方案。当你忙的特别杂多，事情特别多的时候，你就要有一个个人的任务管理机制了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">经过我一段时间的实践，慢慢让我回归了正常状态。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">今天<strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"><u style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">文章</u></strong>的主题，就是要把这个任务管理系统，传授给你。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　一、使用任务管理系统的好处</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　经过我总结提炼之后，有以下好处</strong>：</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">1、每天都知道做什么，有条不紊的完成</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">2、内心深处，不在焦虑</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">3、即使事情再多，都能合理安排</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">4、不在被琐碎的事情，打乱节奏</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">1、每天都知道做什么，有条不紊的完成</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">这方面尤其重要，每天早上，在自己最清醒的时候，把今天需要完成的事情，一一的罗列出来，一天就完成这些工作，目的性很明确，合理分配时间完成就可以了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　2、内心深处，不在焦虑</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">有了明确的任务分配，人不累了，内心也慢慢的回归平静，对个人的思路提升有很大的帮助。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">内心深处的不安，顿时一扫而空。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　3、即使事情再多，都能合理安排</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">任务管理系统的核心是，把众多的事情合理分配到每一天，只要进度完成就可以了，即使事情再多也不在害怕。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">根据自己的实际情况调整就可以了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　4、不在被琐碎的事情，打乱节奏</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">琐碎的事情无处不在，淘宝买东西、给孩子准备玩具等等之类的琐事，有了任务管理系统，统统放进收件箱保存起来，等主要任务做完，在来批处理，很方便，很实用。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">二、建立任务管理系统的案例</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">经过我优化、优化、在优化之后，现在的个人任务管理已经变得相当成熟了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">一天当中，人真正有精力干的事情不超过三件事，所以我把自己的任务管理系统分成了重要的事情和常规的事情。</p><img alt="null" src="http://www.51testing.com/attachments/2018/03/14982672_201803291326582REKi.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">这是一天中最重要的事情，也是必须完成的事情，必须在精力最好的时候完成它。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">下面是一些常规的工作，也是一些碎片化的工作</p><img alt="null" src="http://www.51testing.com/attachments/2018/03/14982672_201803291326583U3yl.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">是不是一下子就很清晰了，这个任务管理系统，非常适合事情多的人。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">一般文章写到这里，可能就差不多了，但是我不仅告诉你使用任务管理系统的好处，还告诉你如何建设自己的任务系统。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">三、如何建设个人的任务管理系统</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">下面我一一给您介绍如何建立属于自己的任务管理系统</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　1、建立合适自己的管理方法/软件</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">像此类的任务管理系统，说实话可以在本子上来实现，如果觉得繁琐，也可以使用效率软件来实现，这个在<strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"><u style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">生活</u></strong>中多收集。</p><img alt="null" src="http://www.51testing.com/attachments/2018/03/14982672_201803291326584jjpe.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">2、建立收件箱</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">收件箱的作用是由来收集的，你可以吧脑子里面所有的事情都放入收件箱，清空大脑。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">大脑是用来思考的，而不是来记忆的，把乱七八糟的事情，都放进去，这样也不用担心，自己会忘记了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">特别是当你在认真工作的时候，突然想到一个特别棒的点子，就打开任务管理软件，马上记下来，然后接着工作。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">灵感时一瞬间的事情，当时不<strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"><u style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">记录</u></strong>，后面可能就在也想不起来了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">3、建立任务系统</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">当你把往收件箱里面放了很多很多任务的时候，就需要进行拆解和分配了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">分配的原则很简单。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">举个例子说明：</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">做一个自己的网站出来，但是不是一下子就能做完的。做网站有若干的工作要做，一天当中不仅只有这个活，可能还有其他的事情。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">所以，要把做网站这个事情的步骤分拆粗来。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第一步：找程序源码</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第二步：找好看的模板</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第三步：购买域名和空间</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第四步：域名备案</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第五步：设置网站</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第六步：填充内容</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">第七步：提交搜索引擎</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">做成一个网站，大概就是这样的，所以说不是一下子就能做完的，特别是域名备案这块要等15天左右。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">所以我们要把这件事情安排的每一天当中去。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">找程序源码和好看的模板和购空间域名并备案，安排在周一来完成。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">后面的上传网站放到域名备案通过了在做，大概是15天的样子，可以把这个任务设定一个想要的时间在来做，后面的工作也是分配到每一天当中去就可以了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">所以，建立个人任务体系的关键在于目标拆解。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">一个目标，必然会有若干个小目标组成，学会了拆解目标，自然就会合理分配了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">安排到每一周，每一天。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">4、建立复盘机制</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">当然了，我一直提倡，做完事情之后一定要及时复盘。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">那么，复盘什么呢?</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">每天复盘一下自己工作的进度情况是否拖延，是否有做的不合理的地方，及时的修正，那么自己在效率和能力上才能大大的提升上来。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">复盘很重要，无论在哪个领域，都需要复盘，复盘等同于经验的积累。</p><div></div><img src ="http://www.cnitblog.com/shbwf/aggbug/90965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-04-13 10:05 <a href="http://www.cnitblog.com/shbwf/articles/90965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何提高自身编码能力-定位Bug篇</title><link>http://www.cnitblog.com/shbwf/articles/90963.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 12 Apr 2018 05:45:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90963.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90963.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90963.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90963.html</trackback:ping><description><![CDATA[<div></div><div><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180412/11/wemedia/fabe9b418f6b67ec8a3ababf7e8b98a4bed4da14_size179_w800_h541.jpg" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">学会定位bug真的很重要</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">1、定位bug的数量、种类、级别越多， 真的真的真的（重要的事三遍）能快速拉升自身编码水平、对很多原理的理解和对编程的认知。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">2、能提高开发效率很多很多， 避免长时间都在解决bug的路上。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">3、对app也是相当友好，至少对自己的app稳定性信心大增。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　&#8220;打怪升级法则&#8221;</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">本人是个游戏迷，对于程序员的成长历程，觉得就像是在玩游戏一样。 只有不断的增加经验，获得新的装备，才能提高自身战斗力， 才能被一些&#8220;组织&#8221;收纳。游戏中有很多途径可以去增加经验， 同样对于程序员的成长也会有很多方式去提高自己的编程能力，这里闲谈一下定位bug的方式去提升。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">开发过程中，会出现各种bug，产生原因不一。 如果对每种类型bug都能透析产生的原因和如何避免。 就会对各个开发知识点都会有更深刻的见解。所以《打怪升级法则》最重要的一就是积累各种bug， 只有见多识广才能应对自如， 建立自己的bug库很重要， 这里会说两点如何建立自己的bug库。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　法则一 ： 刷自己的副本</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">根据自己开发过程中所产生的bug， 包括代码类型bug，策略类型bug，业务类型bug。 每个bug都要寻根问祖找到根源， 如果只在半途解决或者屏蔽bug，那么就领会不了这个bug的精髓（至少前期积累bug库的时候都要寻根问祖，如果后面经验丰富能对bug很熟悉，或者能很优雅的屏蔽后可以忽略）</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183; 代码类型bug的产生一般来源于自己的编码不够规范和严谨， 透析此类bug可以提高自己的代码质量和编程能力。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183;&nbsp;策略类型bug 一般来源于自身的代码设计有缺陷， 透析此类bug有助提高我们的代码局部或者全局构造能力， 可以为后续的封装、组件化、架构设计思维有很大的帮助。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183;&nbsp;业务类型的bug很明显来源于自己对业务流程、需求逻辑的理解或业务代码设计不够严谨产生的bug， 此类bug也是相当重要，如果前面两点说的是对于自身编程能力， 那么这点就是切切实实跟业务开发有关，也是最常见的bug。 自身编程能力作为基石，只有自己的代码质量提高了才能编写出优雅高效率的代码。 但如果自己对业务的理解很马虎很随意， 即使编程能力再强， 也只能是一个很普通甚至差劲的程序员。程序员的本职是对一个产品赋予头、手、脚、躯干等等（功能），如果不能制造出健全稳定的功能，那么最终的产品可能就会是一个残废 。 透析此类bug， 对自己的业务能力， 功能分析，方案制定有很大的帮助； 还能获得部门的认可。 业务能力，也是公司晋升的重要衡量指标。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">总之，一个bug就犹如一个副本，自己的副本都不刷掉，那升级就会很慢； 如果对于自己的副本只刷掉门口几个小兵，中途就离开，其实也跟没刷一样。 只有在干掉最终boss， 才会有成就感，才能拿到本副的装备， 才能以更高的战斗力去刷其他副本。 装备越来越多，越来越好，那升级就是分分钟的事情。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">法则二：跟同事组队刷副本</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">上面论述的是针对于自己在开发过程中遇见的bug， 这类bug实际上是很局限的， 如果你处于一个版本迭代流水线式的开发环境， 每天造轮子、造螺丝， 在开发过程中遇见的bug会更有限。除了刷掉自己的副本外， 还要学会如何吃掉别人的经验。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">当身边的同事有问题时，这时候一定要伸出援助之手（xx副本求带）。 因为除非是实习生，同等水平左右的同事发出的&#8220;求救信号&#8221; ， 大部分是自己偶尔遇见过但却忘了，或者自己根本不熟悉的bug。 这是一个增加自己bug库的大好机会，即使是自己熟悉的bug，也别放过， 也许你觉得会耽误自己的时间， 但很多时候会重新刷新你对上一次bug的认识（也许会捡到+1的新装备哦），还能促进同事之间的关系。 如果是全新的bug， 之前自己并没有这方面的bug经验， 那么升级的时候就到了， 因为往往这类副本难度偏大，但boss经验多，装备豪华， 如果你能和同事组队干掉，必然会经验大涨。但对于那些难度太大，耗时很长的，也并没有要求你就此一直卡在这副本， 你只有50级的装备却想干掉100级的boss，毕竟那是你同事的bug，他会寻找资料或者更高级别的大神来解决， 此时只需等待同事的心得就好了。 当然如果你有多余的时间可以慢慢研究，收获更多。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　法则三：吃别人经验</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">除了自己的bug和同事的bug外， 还有很多bug是我们不熟悉的。 当自己的bug库有了一定的积累， 定位bug有了一定的经验和心得后，可以去逛逛论坛、交流群、博客等，见识见识别人的疑难杂症和解决方案， 这会有助于提高自己bug定位能力和解决能力。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">如果能有上述或类似的一些习惯，我相信用不了多久， 你们代码中的bug会越来越少，定位bug也将会轻车熟路， 个人能力会得到很大的提升。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8220;开局一堆bug，装备全靠刷。 我是渣渣辉，皇城pk，等你来战&#8221;</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">定位bug</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">上面用了大量的篇幅介绍了定位bug的重要性以及如何建立一个自己的bug库，（这里说明一下， bug库并不是用笔记做成的仓库， 而是对各种bug理解认知之后的集合，如果担心被遗忘做笔记也是很好的。） 并没有介绍如何去定位一个bug的根源，与分析bug产生的原因。我相信每一个程序员都有自己的一套定位bug的方式。 这里简单介绍一下以常用思维去分析定位一个bug，当然大神很多，可用以自动化的方式去定位项目中的bug，如使用工具、脚本等方式。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　猜测</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">当发现一个bug时，首先要做的就是分析猜测这个bug会产生的原因。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183;&nbsp;一般业务类型的bug最容易猜测，如：文案错误，信息空缺，集合元素缺失，等数据不对的情况。此类bug基本上都是数据在最终使用的时候，并不是自己想要的数据。如果能对自己代码比较熟悉，那么就能很快的猜测出数据在获取 - 解析 - 传输 - 转换 - 使用 的哪个环节出了问题。 如果无法猜测数据在哪个环节出了问题， 排查起来也相对简单，数据的传输在代码中还是很清晰可见的。 只要顺藤摸瓜很快就能寻找到出问题的地方。 PS： &#8220;数据驱动编程&#8221;， 从数据源上规划好数据结构，不仅可以避免掉很多不必要的bug，还能提高开发效率。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183;&nbsp;其次是策略类型bug，功能映射到的代码设计有缺陷，猜测此类bug难度会大一些。 因为很多时候咋一看以为是业务类型的bug。 猜测此类bug产生的原因，一是需要全局回想下自己的整体设计思路，确认是否有隐患的地方， 二是根据bug发生的场景、时机，推算猜测出可能存在的错误设计思路。 如果发生较大的策略类型bug， 其实是很不好的，这很可能意味着自己之前的大部分设计思路需要调整，相应的很多代码也需要调整。 虽然要调整的地方很多， 但另一方面， 也说明了你正在改变， 你重新设定了一套设计思路，你在追求最优化，而不是去建立补丁。 PS： 拿到需求后去思考最优化方案是很有必要的。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#183;&nbsp;再次是代码类型的bug， 由于自身编码规范不足，埋下一些坑，出现的一些奇葩bug。 要想猜测出此类bug产生的原因也是最难的， 它很可能跟数据关系不大，跟策略设计的影响也不大。 想要猜测出此类bug发生的原因， 需要结合更多的信息， 如 log、场景、时机、数据等， 加上经验和感觉去推理猜测出bug产生的原因。 PS： 提高自己的基础和注意平时的编码习惯，应该是每个猿需要做的事情。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">不管是什么类型的bug，当bug发生的时候，很多时候我们并不会知道这个bug是什么问题造成的，所以在猜测的时候，需要对业务类型、策略类型、代码类型的bug结合进行推理猜测。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">定位</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">当我们大概猜测出一个或者多个可能产生这个bug的原因后， 我们需要去定位具体产生bug的代码。由于猜测环节我们已经把范围缩小到了某一区域。 如何在这个范围定位到具体的问题代码？ 这里可以提供几种思路可以参考下， 一是直接浏览一下这块代码，排查有隐患的地方。 二是模拟数据、场景、时间，确定有问题的代码。 三是折半注释法，通过折半注释能快速的定位到具体代码。 折半注释法在很多疑难杂症bug中更能见到奇效，通过注释掉一部分代码，让产生bug所处的局部功能运行正常， 再放开被注释掉的一半代码，使运行正常，直至找到最终打开注释就会有问题的那块代码。 或者反注释，一个个打开注释判断是否正常，最后留下的将会是有问题的代码， 此类方法只能做辅助。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">验证</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">验证就很简单了，定位到具体问题代码后，我们需要验证各种数据、场景、时机来完全确定是这里代码产生的问题。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">猜测 - 定位</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">有些时候从猜想 - 定位 - 验证， 最后可能会发现并不是这里的产生的问题， 这时候需要重新去猜想和定位其他case。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;">　其他方式</strong></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">定位bug的方式有很多，也根据具体情况而定，只要积累的够多， 不管用什么方式去定位都将会很快， 很多时候也许一个感觉就对了。 不管是建立bug库，还是学会如何定位bug， 都是一个持续的积累过程，也是一种不可言传的编程思维，这里只是简单的描述大家都懂的道理，只有自己去体会实践才能收获。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><span style="color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; font-size: 16px; white-space: normal;">转载：</span><span style="color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; font-size: 16px; white-space: normal;">http://www.51testing.com/html/71/n-3725771.html</span><br /></p></div><img src ="http://www.cnitblog.com/shbwf/aggbug/90963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-04-12 13:45 <a href="http://www.cnitblog.com/shbwf/articles/90963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谁让App工程师产生了泡沫？</title><link>http://www.cnitblog.com/shbwf/articles/90935.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 22 Mar 2018 02:13:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90935.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90935.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90935.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90935.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">这两年<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">移动</strong></u></a><a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">互联网</strong></u></a>比较火，移动APP的开发人员也是比较紧缺。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　面试了一个做APP的，能力很一般，态度也比较傲慢。最后感觉肯定不会用这个人了，但是出于验证自己想法的目的，还是很诚恳地以一个决定录取他的态度，和他交谈。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　&#8220;刚才我问了你一些问题，可能比较偏，或者不是你所擅长的。我也是本着为公司负责的态度，问一些我们经常用到的问题。这一点请见谅。&#8221;，我说。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他说：&#8220;没事的，问的确实有点偏。实际<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">工作</strong></u></a>中，根本用不到，用到了现查就行，网上好多例子，复制粘贴都能搞定！&#8221;。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我说，我们企业招一个人，你入职一个企业，是一个相互选择的事情。我问完你了，你对我们公司有什么想了解的。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他有点发楞，停顿了一会。我提示他，公司的业务发展，个人的提升空间，你的职业规划？</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他说，噢，咱们公司是做什么的？</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我回答道，我们主业务是做基于社区的O2O平台的，现在业务有几块，深度垂直做上门推拿服务，打通商家上下游做云商供应链，最终将打造一个庞大的社区服务生态体系。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他似乎没有听懂，依然发楞。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　&#8220;还有什么想问的吗？&#8221;我问。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他似乎早想问，一直不好意思问，但是又不想在这浪费时间了，问道：&#8220;公司都有什么福利，年终奖是多少，加班费怎么算&#8230;&#8230;&#8221;。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我都一一回答了。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　沉默了一会。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我问道：&#8220;你能接受的最低待遇是多少？&#8221;</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他说，就是简历上写的那些。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我死死地盯着他：&#8220;如果我给你降一千你愿意吗？&#8221;</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他摇了摇头。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　&#8220;降五百呢？&#8221;</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他回答说：&#8220;我已经面试了四五家公司了，他们都要我，我也答应了。现在就是再面试几家，看看哪家更高。所以，我没必要&#8230;&#8230;&#8221;，他向我耸肩，然后不说了。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我说，你要的这个数，在我们公司不算高，好多人都拿的比这个多呢。你去过的那几家公司，多少人？</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他说，也得有，差不多，估计一百多人吧。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我问，做APP的多少人？</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他回答，一两个，有的没有，我去了是第一个。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　谁面试的你，我问。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　有的是经理，有的是老板，都很希望我能快点入职。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　我说，好的，我们会把你面试的情况和你做的作品评估一下，然后再联系你。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他走了。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　这不是个例。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　大多数年轻人都差不多这样。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　他们没房没车没压力，以单纯的收入高低作为亲友间的炫耀和比较的资本。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　让我陷入沉思的是，为什么一个近乎只能称得上操作和修理工的人，却顶着一个工程师的名号，可以到处要高价，而且还真有公司愿意给。享受能力所不匹配的东西，这显然是一种病态，结果必定可悲。谁赋予了他们这样的优厚际遇？或者，谁成心想害他们？</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　答案是这个飞速发展时代和无可奈何的企业。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　移动互联网，这五个字可谓炙手可热。互联网+，又让这热度增上三分。好多公司都想搭上这艘船，捞一桶金，弄不巧还会成就一番霸业。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　怎么搞？好多人都觉得移动互联网就是个APP。想踏入移动互联网，首先要搞一个APP出来，拿出去好说话嘛！这种想法就像是，我研发个POS机有一家银行了能做金融了一样。你的POS机之所以能刷卡转移资金，是因为后面还有一个银行体系支撑，来了钱给谁，扣的钱从哪里出，是有一套服务做支撑的。这套服务，相比一个POS机而言，大象和蚂蚁的关系。还不明白的话，去五金店买一个淋浴头，在太阳下试试会不会喷水，那个淋浴头就是业务中的APP。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　好多小企业老板很明白政治和经济局势，但是不明白技术，他们觉得第一步先需要APP，其他的根据需求再说。于是，他们老板甚至亲自面试，随便聊聊天，要多少给多少就招进来了，先有人开个头再说呗。最后，发现不是这么一回事，有了淋浴头了还需要水管才能喷水，自己建供水系统太大，在小区建使用人群太少，连接卫生间的水管，跟自己又没啥关系。命长公司的干上半年，招的人也不专业，凑合随便弄一个出来，员工感觉老板瞎弄没有成就感，老板也感觉看错了人不出成绩。于是，一拍两散。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　出来的这人再换工作，感觉自己没有被完全发挥出来，现在工作经验也涨了，薪水肯定也得涨。于是，又找到一个公司，老板一看，这人以前待遇都那么高，那老板肯定不傻，做了那么久了也有成果，我这又急需要人，再涨一段吧。这个公司干半年，和上一个公司一样循环，直到一个顶点。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　这就造成了，个人技术没有实质提高，待遇却虚高。公司支出增加了，回报却没有增加。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　这就是泡沫啊，在慢慢膨胀的泡沫。这泡沫在小企业中很明显，在中型以上企业中不明显。第一，因为中型企业都有专业的人才，这些人能判断和规划整个业务体系，不至于盲目。第二，也正是由于规范和专业，所以吸引了很多更看良性成长环境的有志之士。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　泡沫，毕竟是泡沫，终有爆破的那一天。这个时间不会很长，3到5年。随着新技术慢慢变旧（当<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">Android</strong></u></a>和IOS变成和C语言一样老），随着大批量的人才涌入和一些公司退出（十万开发者面对一千岗位），随着很多老板慢慢发现原理和真相（APP真的只是个终端）。我们再来设定一下，曾经那些在小公司频繁蹦来跳去的人，和那些在成熟部门茁壮成长的人，他们命运是不是会发生颠覆性的改变。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　互联网行业不同于传统行业，不存在第二。最终的局面是巨头垄断和精细化小企业填补的局面。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　其实公司和人历程都一样，都会遇到千奇百怪的事情，但是殊途同归平淡是真，最终都要踏实笃行。你一步一步地走，你眼看别人起高楼，你眼看别人宴宾客，你也眼看别人楼倒塌。</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　　你也可以心想自己建起一座壁垒，固若金汤，经久不衰，称为经典。</div><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">&nbsp; &nbsp; 转载：</span><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">http://www.51testing.com/html/00/n-3647600.html</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-03-22 10:13 <a href="http://www.cnitblog.com/shbwf/articles/90935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试工程师是低人一等还是一金难求－－请看微软观点</title><link>http://www.cnitblog.com/shbwf/articles/90924.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 21 Mar 2018 02:21:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90924.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90924.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90924.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90924.html</trackback:ping><description><![CDATA[<span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">&#8203;&nbsp; &nbsp; &nbsp;</span><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">最近看到一些文章报道，软件测试工程师那很高的薪水，很高的待遇，可是很多人还是越不过去那种心理障碍。大家都认为软件测试工程师是为那些程序员打杂，甚至被人驱使，去收拾残局......</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　软件测试工程师真的低人一等么？从薪资待遇上，很多大公司都开了大价钱招募测试工程师，从这个程度上应该改变了现状了，但是很多公司还是抱怨找不到人。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　请看微软工程师的观点。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　（１）Francis:卓越的软件企业一定会确保测试团队人力资源及水平</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　Francis Zhou 毕业于加州大学系统圣克鲁斯分校。他于2000年加入微软，曾在总部先后担任软件开发测试工程师及测试组长等职务，参与了Windows XP及Windows Presentation Foundation的开发。2005年初他正式加入微软亚洲工程院并先后参与了TTS, Microsoft Speech Server, ActiveSync, GamesUX等项目的开发及测试。他现任测试经理，主管游戏平台及移动平台多媒体软件的测试开发。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　我会从一个职业软件管理人员的角度分析一下测试人员到底是不是&#8220;一金难求&#8221;。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　单从微软中国研发集团招聘数据统计来看，我们每年对软件测试工程师（SDET）和软件开发工程师（SDE）的数量需求基本相等，但SDET总是供不应求。其中原因固然有业界对测试工作的偏见而导致的软件工程师偏重开发而回避测试，但最大的原因还是因为市场上缺少同时具备良好测试及开发能力的工程师。两种原因合在一起导致了合格的软件开发测试人员的严重短缺。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　一个良好的测试工程师需要从很多不同的角度考虑问题，在尽量广度覆盖的同时还要拥有深入调查研究问题的能力。而其深入调查研究问题能力 不亚于甚至要超过软件开发人员。可以说，一个SDET比起与其技术水平相当的SDE对产品有可能作出更大贡献，从而帮助他在事业上有更迅速的发展。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　就像开发人员有不同水平一样，测试人员之间也存在着很大的区别。一个会设计测试计划、会开发测试自动化软件、会debug、会调查研究问题的测试人员是非常宝贵的，而且往往难以取代。测试团队的不完善会影响产品质量以及其开发过程，从而导致产品不能如期发布或存在严重缺陷。所以卓越的软件企业管理人一定会确保测试团队人力资源及水平。根据以上的事实，测试人员到底是&#8220;打杂&#8221;还是&#8220;一金难求&#8221;就不难判断了。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　（２）刘俐:环境造成测试人员低人一等这样的看法</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　刘俐，软件测试开发工程师，微软亚洲工程院测试组，三年软件测试经验，现从事Microsoft Adcenter相关项目的测试工作</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　这是个经常被人说起的话题。到底测试人员是为程序员打杂的还是一金难求的国内软件行业的特殊人才？</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　个人认为，测试工程师是一个对专业技术和自身素质都有一定要求的职业。一个优秀的软件测试工程师无论在何处都是一金难求的。以我所在的微软亚洲工程院为例，我们的测试工程师需要和开发工程师，规程经理一起合作，从产品定义(product definition)到产品开发(product development)再到产品维护(product servicing)，在整个产品生命周期中，不断贡献各种建议、测试文档以及测试数据。在这样一个开发团队中，测试工程师的地位和开发工程师，规程经理是一样的&#8212;&#8212;是软件开发团队中不可或缺的部分。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　正因为测试工程师与开发工程师的同等重要性，使得软件测试开发工程师(SDET)和开发工程师的录用标准基本类似，但是由于外界长久以来的&#8220;不平等&#8221;观点，左右了很多软件开发人员的选择：大部分人更乐意成为软件开发工程师。这也就出现了所谓的软件测试工程师&#8220;一金难求&#8221;的现象。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　但同时，作为一个优秀的测试工程师，他应该具备与开发工程师相类似的软件开发知识和技能，对被测试的软件产品架构和所使用的技术了如指掌，同时还要有足够的热情和动力，凭借积累的测试经验，去寻找并指出产品中存在的漏洞。如果说以上这些还仅仅是对测试工程师工作要求的简单描述，我们可以看到这样的能够帮助产品开发团队寻找到重要缺陷的工程师永远都会是一金难求的。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　对于测试人员低人一等这样的看法，我认为是由环境造成的。在微软公司，我们营造的是测试和开发同等重要的环境。一个软件测试开发工程师（SDET）一般会与开发工程师配合工作，负责开发相应产品模块的自动化测试工具以及测试用例。当然，必须承认，微软公司也一样有很多项目是需要一些具有简单技能的测试人员帮助运行手工测试的。而对于这些测试人员，我并不认为是&#8220;低人一等&#8221;，而是测试行业的&#8220;初级工作&#8221;。如同初级开发人员只负责编写一些简单逻辑的模块一样，测试工程师的简单工作不应被大家诟病或者轻视的。同时，只要这些测试人员愿意，他们完全可以在工作中不断成长，最终成为一个优秀的经验丰富的测试人员。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　（３）李和恒:软件测试覆盖的范围远大于业界普遍看到的部分</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　李和恒，微软亚洲工程院软件测试开发工程师，从事测试工作已三年，先后参与过视频编码、在线会议和企业级即时通信等产品的测试工作，并主持web应用测试架构的开发。技术兴趣为泛型编程，架构设计，测试自动化。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　目前国内难以看到的高级测试技能使得业内人士低估了测试人员的职业发展空间，进而得出这样的结论。事实上软件测试所需要覆盖的范围远大于目前被业界普遍看到的部分，因此测试人员往往没有机会 去展示或者发展相应的高级测试技能。就一般而言，软件测试除检验软件行为是否符合产品设计之外，还应包括检验。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　1． 设计阶段</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　1.1. 产品设计（feature specification）本身是否符合客户需要，是否容易被不精通计算机的用户所使用</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　1.2. 架构设计（design specification）是否符合产品设计，是否容易导致缺陷，是否容易导致低劣性能和不稳定，是否有利于测试</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　1.3. 测试方案（test plan）是否对功能覆盖完备，是否采用恰当方法测试每个不同领域，时间人力是否足够，帮助开发人员提高质量的措施是否恰当和足够，有否保证测试工具的质量</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　2． 实施阶段</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　2.1. 某次代码更新是否引发严重缺陷以至无法测试</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　2.2. 某个开发人员是否引入了太多缺陷</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　3． 稳定阶段</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　3.1. 缺陷是否值得修复</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　3.2. 缺陷修复顺序是否合理</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　3.3. 缺陷修复会否引发更多缺陷</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　4． 发布阶段</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　4.1. 缺陷数量是否有扩大化的趋势</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　4.2. 待发布版本是否符合发布标准</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　可见，为了完成这些任务，测试人员应该具备的技能包括</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　1.了解客户需要（针对1.1），了解行业技术现况（针对1.2）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　2.程序设计以至架构设计能力，调试能力（针对1.2，1.3，2.1，3.1，3.3）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　3.了解产品相关技术，了解产品本身（针对1.1，3.2，3.3，4.1）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　4. 了解开发人员的工作流程（针对2.1，2.2，3.2，4.2）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　5. 了解产品代码结构（针对1.2，1.3，2.1，3.1，3.3）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　6. 部分的项目管理能力（针对1.3，2.1，2.2，3.1，4.1，4.2）</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">　　从中不难发现，一个具备上述能力的测试人员，从事开发人员是绰绰有余的，职业发展的道路和开发人员也没有太大的区别。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;" /><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">&nbsp; &nbsp; 原文：</span><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">&#8203;</span><span style="background-color: #ffffff;">http://www.51testing.com/html/67/n-6667-2.html</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-03-21 10:21 <a href="http://www.cnitblog.com/shbwf/articles/90924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>迷茫、痛苦和关于测试职业规划的一点光亮</title><link>http://www.cnitblog.com/shbwf/articles/90894.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 08 Mar 2018 03:53:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90894.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90894.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90894.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90894.html</trackback:ping><description><![CDATA[<span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　&nbsp; &nbsp; 文章来源：</span><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">http://www.51testing.com/html/45/n-3724945.html</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　2017年这个迟来的总结，说实话，2017，很迷茫，然后过的非常不如意</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　倒不是上一年的职业目标没达到，而是接下来的路根本不知道如何走。在没解决这个问题之前，或者说没搞清楚自己的方向之前，是迟迟不能落笔的，啊不，应该是落键盘。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　下班后花了几天的时间研究了下测试的职业生涯规划，在许许多多的文章之中穿梭，结合前阵子和某公司t3级的大大面试，对自己接下来的几年职业规划，总算有了眉目，让恍惚的心总算有了着落。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　<strong style="word-wrap: break-word;">先说我这3年坎坷的经历：</strong></span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　刚毕业，自动化专业(机械)的我转行到了软件测试这个行业，然后外包到了某bat公司，在今天看来，这间公司应该是学习资源最丰富的公司，可悲哀的是，零基础，资料看不懂，当时甚至连程序是什么都不知道，于是在外包的一年，自学了编程基础和一些基础性的测试理论，不过一年后，因为外包政策的调整，权限的限制，还有归属感的原因，离职跑到一个做互联网机顶盒的创业公司。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　这家公司真的非常棒，无论领导还是工作氛围，还是学习成长，都给了我很大帮助，这间公司我收获最大的就是，形成自己风格的测试，技术方面增长的不多，但是测试思维这块得到了很大的提升，最重要的是，氛围真的很棒，可是好景不长，因为业务涉及到版权，公司一夜间就衰败了，测试组一个人都没有留下来，非常非常遗憾，就这样被迫加入第三家过的不如意的公司。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　<strong style="word-wrap: break-word;">再说2017不如意的地方：</strong></span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　<strong style="word-wrap: break-word;">问题一</strong>，通宵 &amp;&amp; 连续加班到很晚</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　我们的特色，但是无论何种结果都会有原因，我需要做的，就是针对原因提出建议</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　原因：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　需求变更</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　这个的原因，归咎于产品经理素质问题，我们没必要抱怨刚毕业或者转行的产品做的多不好，公司也许为了省成本就是不招有经验的产品，我们都很无奈。除了每次提测前强制产品体验外，还要给老板体验，但是老板也是刚毕业的，同样会犯发版本前改需求，我们也很无奈。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　开发转测质量差</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　这个经过一年的努力，已经基本改善了，至少是UI层产生的bug看起来不会这么难受。这个痛点的改变是我强制要求开发转侧前执行测试点，同时在测试报告我会加以统计需求覆盖度和自测情况，还是多少有点帮助的。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　不重视测试，无法实现分层理念</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　因为是软硬件公司，开发的模式是底层封装sdk&#8212;-上层调用的方式进行，社区加上了之后还有接口调用。但是但是，我们只有功能测试，对的，你只需要保证程序做的对就行了，这也是功能测试的职责，但是这样够么，随着复杂度的增加，底层和接口暴露的问题越来越多，领导只想着一个人身兼多职，而对建议的分层测试，招聘测试开发做接口，做sdk层测试无动于衷，这一块我想做的努力也基本无效化了。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　归根结底，不是无法让领导认识测试的重要性，而是领导根本没有打算让你去做这些事，不怕睡着的人，就怕装睡的人。所以就快到2018了，这个东西只能说是我力所能及的范围内改进，本质还是没变，心痛。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　<strong style="word-wrap: break-word;">　问题二</strong>，能看看我做的东西不，能给点建议不</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　2017，引入了比较多的新东西，比如专项测试、从jmeter迁移到unittest的接口自动化、robotium的自动化测试，每个都花了一定时间去研究，并且除了成果，邮件到项目组，具体可以看我之前写的文章，然后&#8230; &#8230; 对，没有然后，最让我受不了的是，用户从上一年就一直投诉的上传成功率低的问题，我花了将近半个月去学习专项，然后花了几天时间去做的上传专项，发出去什么反应都没有(领导，看了报告吗？看了。有啥建议或者排期解决？不了，没时间。 )</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　接口测试同样如此，写着写着，突然感觉兴趣全无，不过幸好，框架是写完了，测试也跑了一部分。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　自动化就更悲剧了，花费了最大的经历，结果因为产品的不确定性，基本上是没有什么成效的。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　总结：2017，迷茫，痛苦，不被理解，不被支持，各种被打击</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　有失必有得，最后来说说得的地方：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 压力忍受能力提高</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 问题分析能力提高</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 以前一些理论的东西在项目中得到了实战</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 沟通能力有提高</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　<strong style="word-wrap: break-word;">职业规划：</strong></span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　接下来把这几天了解到的测试职业生涯规划的个人理解说下，参考了网上各路大神以及和面试公司的面谈总结出来的关于未来的规划。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　PS:首先，给我感觉最深的就是，不要人云亦云，相信爱学习的孩子都知道testhomer这个技术论坛，我不否定这个论坛非常棒，让人非常想学习，但是如果你忘了自己的初衷，很容被影响变成失去自己职业方向的人，那个论坛是测试开发论坛，涉及面非常广，无论PC还是移动端都有，创办人是在bat工作，所以也不一定适合每一个公司，吃补药固然好，但是乱吃药可不好</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　以时间的纬度来看</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　分为0 ~ 3年，3 ~ 5年，5~10年以及10年以后</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　0~3年是刚毕业的懵懂期，可以一心一意工作</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　3~5年是成长期，已经开始烦恼生活了，工作已经不是全部了</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　5~10年或者以后，已经步入中年，已经有了一定的生活压力，除了工作，更重要的是家庭</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　以测试发展方向来看，分为：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 技术管理，兼顾技术的学习和管理。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 领域专家，分为自动化，白盒和性能</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 纯管理，这个比较少，没怎么了解</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 转行，这个也不说，因为已经脱离测试的范围了</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　so，结合自身情况，定位就在3~5年，职业目标是测试技术管理上。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　这个通道的模型，其实就是系统测试模型，更像是一个综合性很强的路线，因为你什么都要懂。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　这个title是 测试组长&#8211;测试主管&#8211;测试经理(总监)</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　测试组长(目前的阶段)：分配主管下发的测试任务，设计测试策略，保证流程每一步的有序执行，监督BUG的走向，推进BUG的修改，同时版本发布之后也要总结测试流程的不足和改进点，另外也承担着带领测试新人的职责。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　测试主管：推进整个流程的进行，负责跨部门的合作以及资源协调，组员的评级考核，以及针对模块测试策略的确定</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　测试经理(总监):整个公司测试资源，测试策略，测试流程的管理者和定制者，更多是大方向上的指定了，基本不直接参与一般的测试工作中来了。</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　ok，明白了上面的定位之后，我们接下来的工作方向总算复出水面了：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　1.继续深入DB/OS/服务器等基础能力</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　2.在基础之上的自动化/接口/专项测试(性能测试)能力</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　3.管理技巧，流程优化，问题分析和解决</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　基础能力是需要持续学习的，基础之上的技术逐个方向积累原理，管理技巧则是多看书，多思考，多总结</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　生活：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 谈了半个女朋友</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 依然不断地在寻找生命的意义(家庭问题)，做自己</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 严重意识到了身体的重要性，半了健身卡（<span style="word-wrap: break-word;">注意锻炼身体）</span>&#8203;</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 认识到了读书的重要性，开始读做人，做事的书，开始看一些公益演讲</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　因此啊，大的方向就是：</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 多读书，读项目管理，读沟通技巧，多看TED演讲学习技巧，这不仅仅是为了工作</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 读技术原理，然后实践，成为一个有高度的人</span><br style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;" /><span style="word-wrap: break-word; font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 15px;">　　&#183; 跳槽请慎重</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-03-08 11:53 <a href="http://www.cnitblog.com/shbwf/articles/90894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>黑客携手AI的时代，你HOLD住吗？</title><link>http://www.cnitblog.com/shbwf/articles/90891.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Mon, 05 Mar 2018 02:06:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90891.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90891.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90891.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90891.html</trackback:ping><description><![CDATA[<p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><span style="word-wrap: break-word;">转载：</span><span style="word-wrap: break-word;">51Testing软件测试网（https://zhuanlan.zhihu.com/p/34176018&#8203;）</span>&#8203;<br style="word-wrap: break-word;" />&#8203;寂静的深夜，时钟指向11点，恼人的&#8220;嗡嗡声&#8221;如约响起，沿着床头板慢慢渗透到耳膜、大脑、四肢&#8230;&#8230;我再也忍不住了，又一次愤怒地从床上弹起，耳朵贴着墙壁，企图判断出隔壁02室什么东西在作怪。这样的情况持续了1个星期，我幻想了各种可能：02室一定有人在挖矿，满屋子的挖矿机&#8230;&#8230;又或者，02室是个贩毒集团，满屋子的试管和离心机&#8230;&#8230;又或者，02室在贴着我床头的墙壁后面摆了什么高辐射的机器，每天朝我发辐射波&#8230;&#8230;越想头皮越发麻，不行，我一定得有所行动。按响了02室的门铃，对方的回答是：家里某设备坏了，正在检修云云，至于为什么会发出&#8220;嗡嗡声&#8221;他也不是很清楚。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">越是隐瞒，就越可疑！想进去瞧个究竟，估计这家伙是不会答应的。我开始研究能不能用手机中的智能遥控关掉这个声音，在用红外扫描了整面墙后，竟没得到任何结果，红外穿透能力还是太差了，还因此被家里人怀疑是不是让蜘蛛咬了变成蜘蛛人了。要不，趁02室不注意，开门时扔一个智能小蚁运动相机进去，拍摄视频，无线传回。可是这么高科技的玩意，万一被劫持，想想也心痛。也不知道02室有没有装摄像头，看看能不能破解下密码，无线连过去偷窥下？某男声幽幽响起：&#8220;哪个白痴在自家装摄像头对着卧室？又不是变态！&#8221;于是，现阶段我又想出一个看似还靠谱的方案&#8212;&#8212;苦练无人机技术，企图有一天操控无人机飞到02室的窗户外查看，可惜天资弄人，这项技能还在get中。哎，折腾了一个礼拜，又回到原点了，一切只是YY而已，谁来拯救我的耳朵！</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">言归正传，说到我YY的这些人工智能技术，又联想到最近很火的人工智能被黑客利用的热议新闻，突然一个激灵，我算不算黑客？百度百科上对黑客的定义是：对计算机科学、编程和设计方面具备高度理解的人。名词本身不具有明显的褒义或贬义，但是被影视剧集夸张的渲染，以及一些业内败类的苦心经营下，这个词已经和小偷强盗划等号了，只不过是高智商高技能的犯罪而已。幸好幸好，我所有的想法仅处于YY阶段，还未实施，否则手段既够不上被人羡慕的高科技，还落得个无耻小人的名声。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">个人认为，从现在网络上对黑客利用人工智能来犯罪的信息中，可以得到一个很重要的信息&#8212;&#8212;黑客到底想要干什么？人家的志向可不像我，就想窥探一下这么没技术含量&#8230;&#8230;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">先来看几则新闻：</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;研究人员详细介绍了人工智能生成合成图像、文本和音频的能力，它可以被用来在网络上模仿他人行为，用于制作极度仿真的政府官员音频和视频，生成难以识别的虚假新闻，以左右政治舆论。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;去年年底，一些仿真的色情视频开始在网上流传，一些名人的面孔被嫁接到不同的身体上，有些效果可以以假乱真。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;某某博士提到，无人机的滥用状况要远比我们想象中的更为普遍，而人工智能支持下的聊天机器人也正通过在线方式大肆获取用户信息。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;一份国际报告中提到了人脸识别技术，探讨恶意人士如何利用这种技术来搜索并打击目标人物&#8212;&#8212;包括使用装备有爆炸物的无人机或机器人进行暗杀。这听起来似乎并不现实，但报告作者们认为其确实具备可行性。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;AI 可透过挖取网络大数据，得到每个人出生日期、电话、位置等几乎所有身份信息，也可以监控电邮、发送的文字新信息，甚至是量身打造个性化的&#8220;鱼饵&#8221;，来进行社交工程的黑客攻击。甚至国与国之间的 AI 竞赛，很可能引爆第三次世界大战。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">&#8212;&#8212;&#8220;战争可能不会由国家领导者，而是由人工智能所发动&#9472;&#9472;只要它认为&#8216;先发制人&#8217;是取得胜利最有效的方式。&#8221;</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">由此可以看到，黑客想要的不仅仅是谋取私利，而是利用人工智能左右政治和舆论，对他人乃至国家进行攻击。更可怕的是，AI还会自我学习，有个词叫&#8220;机器学习&#8221;，意思为：（计算机）在不被明确编程的情况下进行学习的能力。这种能力加上黑客的推波助澜，如果不加以干预和控制，马斯克在推特中提到&#8220;第三次世界大战&#8221;，我看绝对不是空穴来风，也不是科幻电影，而是一场人类的灾难。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">你可能会说，我们只是一个测试人员，黑客的行为哪是我们能干预的？即使想干预，技术能赶上人家黑客吗？感觉就跟人家造的是火箭，我们玩的是竹蜻蜓一样的差距。那好，实际一点吧，我们来分析下作为一个AI时代中的测试人员，我们该往哪些方向去拓展。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">首先，我们可以往&#8220;信息安全&#8221;领域去拓展一下。学习如何进行恶意软件的识别、如何进行日志分析，以便更早识别和修复漏洞。或者可以学习如何改进终端安全性、自动化重复的任务，由此减少因数据过滤导致攻击的可能性。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">其次，可以向&#8220;网络安全&#8221;领域去发展。2018开年有两个热门词&#8220;蜂巢网络(Hivenets)&#8221;和&#8220;机器人集群(Swarmbots)&#8221;。它们的本质是一些&#8220;智能&#8221;设备可以被操纵对脆弱的系统进行规模化攻击。&#8220;它们将有能力相互交流，并根据共享的本地信息采取行动。&#8221;Fortinet全球安全策略师德里克&#183;曼基(Derek Manky)表示，&#8220;此外，&#8216;僵尸&#8217;也会变得聪明，能够在没有&#8216;僵尸网络牧人&#8217;的指导下行动。其结果是，蜂巢网络将能够以成倍的速度增长，扩大自身同时对受害者进行攻击的能力，并显著阻碍缓解和应对。&#8221;是不是感觉网络安全领域的挑战更具诱惑力呢？</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">再次，就是老生常谈的&#8220;自动化&#8221;领域了。我们现在越来越多的系统开始依赖自动化，自动化测试，自动化发布，自动化部署，自动化数据采集，自动化数据分析&#8230;&#8230;难道聪明的AI黑客想不到这点？如果因为一些恶意的商业竞争，有心人想要破坏你的自动化系统，让你的产品delay，失去商业先机，你该怎么办？你是不是应该想一想，如何增强你的自动化系统的健壮性，让人不那么容易破坏掉？所以这里的自动化已经不仅仅是如何去实现自动化了，而是如何去健壮自动化。</p><p style="word-wrap: break-word; padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">最后，我想说，人工智能和黑客汹涌而来，未来已变！你不变你就输了！</p><div></div><img src ="http://www.cnitblog.com/shbwf/aggbug/90891.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-03-05 10:06 <a href="http://www.cnitblog.com/shbwf/articles/90891.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新手第一次使用burpsuite正确姿势</title><link>http://www.cnitblog.com/shbwf/articles/90889.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 01 Mar 2018 05:25:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90889.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90889.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90889.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90889.html</trackback:ping><description><![CDATA[<br /><div><div style="display: inline-block;"><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 本文来源：51Testing软件测试网（http://www.51testing.com/html/67/n-3724767.html）</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;">  最近我们课程，有个老师需要我帮忙搭建做一个越权攻击的实验。就随手倒腾起burpsuite；最近时间逐渐也比较多了，发现web安全工程师基础入门课程，讲师在第七课对于burpsuite的细节并没有掌握的很好，在浏览器代理操作过程，一直卡在无法顺利抓捕数据包，有点尴尬。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 同时我也好久好久不做安全有关的事情，忙于客服、图片设计、美工ui、编辑、销售、运营、项目管理、项目开发层面上，对于课程审查就快速跳过查审，时间实在不够用，没有第一时间给讲师反馈建议很抱歉，对不起。</p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 工具安装与破教程</strong></h2><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 基于第一次burpsuite的新手，有可能会遇到的问题，我这里统一提前给大家解答下；方便新手去学习digo8的进阶web安全工程师的课程。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 你有可能会遇到的问题，设置配置完代理后，burpsuite一直获取不到数据包，即使获取到了，浏览器器也一直在转，感觉很不爽，其实你看到Raw里面有数据，那就说明burpsuite运行成功了。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 如果这个问题的话，归根与在Proxy&gt;Optins项没设置好</p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 在安装好java环境，已经运行burpsuite情况下，我把问题进行还原。</strong></h2><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 1、打开burpsuite设置好代理，并勾选相关项</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/27919a49215ecda1972d37d56dee3e069d1f76ce_size223_w676_h490.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 2、浏览器配置好代理</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/d96799bb67f94eeeb8690913a90f21d0c16b7c83_size57_w674_h291.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></h2><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 3、burpsuite开始运作，但浏览器一直没显示网页出来，你会感觉是不是抓不了正确的包了，在控制面板抬头是抓到了，但网页内容却没有，一直显示不出来。这样感觉会很不爽。但是同样对其进行repeater也是可以抓到。那就说明没问题。</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/9d2d68a3c7c6430578b8718eefe67d378d2d2eef_size163_w678_h475.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 对repeater的请求与报文效检</p><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/b24916367e92e283431a354b470769810bb6482d_size200_w669_h379.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 4、正确姿势回到Proxy&gt;Optins项进行设置</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/2d3f5db28a826735a99a097d1d906cfc7d1afe43_size256_w680_h624.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 勾选这些功能大概意思</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 这些设置控制哪些请求和响应被暂停以便在截取选项卡中查看和编辑。分别设置应用于请求和响应。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> &#8220;截取&#8221;复选框决定是否截获任何消息。如果它被选中，然后打嗝应用配置的规则的每一条消息以确定它是否应该被截获。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 可以使用每个规则左侧的复选框激活或禁用单个规则。规则可以添加，编辑，删除，或重新使用的按钮。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"> 规则可以在几乎所有的消息属性上进行配置，包括域名、IP地址、协议、HTTP方法、URL、文件扩展名、参数、cookie、头/正文内容、状态代码、MIME类型、HTML页面标题和代理侦听器端口。您可以配置规则，只拦截目标范围内的URL项。正则表达式可用于为每个属性定义复杂的匹配条件。</p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 5、成功，就会看到浏览器打不开目标网页了！</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/7692d04a6fdc668a153417d1cc2e65b54dd904b3_size172_w679_h430.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 6、在repeater验证抓包是否真正成功。</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/fe33693a793b8aec11f27ec47143a103e6e26725_size185_w654_h440.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></h2><h2 style="margin-bottom: 0px; list-style: none; box-sizing: border-box; font-size: 1.5em; font-weight: 500; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; color: #000000; font-family: Helvetica, Arial, sans-serif; text-transform: none; white-space: pre-wrap;"><strong style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;"> 7、已经可以显示正确的网页信息response相应请求返回了html网页源码</strong></h2><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180301/11/wemedia/927e83d4894fb57abe951c44b3a65132aa1f6592_size208_w675_h386.png" style="margin: 0px auto; padding: 0px; list-style: none; box-sizing: border-box; border: none; vertical-align: middle; display: block; max-width: 50%; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br style="margin: 0px; padding: 0px; list-style: none; box-sizing: border-box;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; box-sizing: border-box; counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><br /></p></div></div><img src ="http://www.cnitblog.com/shbwf/aggbug/90889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-03-01 13:25 <a href="http://www.cnitblog.com/shbwf/articles/90889.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>urllib，urllib2和 urllib3的区别</title><link>http://www.cnitblog.com/shbwf/articles/90871.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 01 Feb 2018 03:21:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90871.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90871.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90871.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90871.html</trackback:ping><description><![CDATA[<p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;">在python 的网络模块中，使用频率最高的莫过于 urllib 了，因为里面包含了打开网址发送请求的方法；但是 python 中 urllib 的功能，随着互联网的发展，也在迭代进步，所以有了 urllib，urllib2和 urllib3，他们之间有啥区别呢，下面一一阐述：</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><strong style="margin: 0px; padding: 0px; list-style: none;">1.） python 中最早内置拥有的网络请求模块就是 urllib，我们可以看一下 urllib 中的所有方法：</strong></p><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180201/10/wemedia/5d9492defa3de8ba4a6d5952a8d3cc88d4fdf539_size183_w685_h1091.jpg" style="margin: 0px; padding: 0px; list-style: none; border: 0px; width: 616.007px; font-size: 16px;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><br style="margin: 0px; padding: 0px; list-style: none;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><strong style="margin: 0px; padding: 0px; list-style: none;">2.） urllib2模块中的所有方法更侧重于对于 Http 请求的服务：</strong></p><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180201/10/wemedia/3ac8f708ff2800ef8e1952c0dc8b5ecd5e310c0b_size183_w680_h1269.jpg" style="margin: 0px; padding: 0px; list-style: none; border: 0px; width: 616.007px; font-size: 16px;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><br style="margin: 0px; padding: 0px; list-style: none;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><strong style="margin: 0px; padding: 0px; list-style: none;">3.） urllib3模块并非 python 内置，需要额外的安装，可以通过pip install urllib3来快速的下载和安装：</strong></p><img alt="null" src="http://d.ifengimg.com/q100/img1.ugc.ifeng.com/newugc/20180201/10/wemedia/c9f9b81e3ec74336dd0dee6dd61b5a1fa929cf65_size83_w696_h672.jpg" style="margin: 0px; padding: 0px; list-style: none; border: 0px; width: 616.007px; font-size: 16px;" /><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;"><br style="margin: 0px; padding: 0px; list-style: none;" /></p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;">综合上面查看到的三者的所有功能，我们不难发现，urllib 侧重于 url 基本的请求构造，urllib2侧重于 http 协议请求的处理，而 urllib3是服务于升级的http 1.1标准，且拥有高效 http连接池管理及 http 代理服务的功能库，从 urllib 到 urllib2和 urllib3是顺应互联应用升级浪潮的，这股浪潮从通用的网络连接服务到互联网网络的头部应用：支持长连接的 http 访问，网络访问不断的便捷化。</p><p style="padding-top: 0px; padding-bottom: 0px; list-style: none; font-size: 16px;">更多关于python语言方面的文章，请前往51Testing软件测试网（<span style="background-color: #ffffff;">http://www.51testing.com）哈~</span></p><img src ="http://www.cnitblog.com/shbwf/aggbug/90871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-02-01 11:21 <a href="http://www.cnitblog.com/shbwf/articles/90871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为什么人工智能不会让软件测试消失？</title><link>http://www.cnitblog.com/shbwf/articles/90866.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 25 Jan 2018 04:07:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90866.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90866.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90866.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90866.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90866.html</trackback:ping><description><![CDATA[此刻在质量保障（QA）中最令人激动的事情是机器学习和人工智能给测试技术带来的潜在的影响。我们迫切地想要知道，软件如何能够做到自我测试？软件能够自动地跟踪和消除Bug吗？<br /><br />这并不仅仅是幻想。2016-2017世界质量报告上有这样的阐述&#8220;我们认为人工智能将是克服日益增长的质量保证和测试挑战的重要的解决方案。基于人工智能的测试方法将是继基于风险的测试策略和自动化测试技术之后的另一个测试技术的变革浪潮&#8221;。<br /><br />Forrester的研究认为，测试是目前&#8220;应用AI进行软件交付的生命周期中最受欢迎的阶段&#8221;。在我们在Belatrix进行的一项调查中，81％的商业和技术专业人员（需要注册）说机器学习在五年内将会对其组织造成一些甚至重大影响。<br /><br />AI支持的测试是继自动化后测试领域的又一个自然的发展。<br /><br />我们见证了手动测试到自动化测试，再到AI支持的测试的逐渐演变。我们可以追踪这一发展过程：<br /><br />手动测试仍然可以发挥核心作用：测试开始于并将继续依赖于手动测试。在软件开发过程中总会有bug出现。即使今天我们有那么多的工具可以使用，手动测试仍然是测试策略中的一部分，尤其是为了确保高质量的用户体验。<br /><br />随着软件变得越来越复杂，自动化变得越来越重要：测试自动化是一种成熟的方法。在许多情况下，它是唯一可实现的选择&#8212;&#8212;在不同场景下运行大量测试用例并按时完成回归测试的唯一方法。它提供了更高的效率，用更少的精力和时间找到大量的缺陷。<br /><br />未来将会看到支持AI的测试：通过使用大量的数据来有效地使用机器学习和AI，自动化测试会变得&#8220;更智能&#8221;。我们正在看到支持AI的测试案例，例如，使用可视化验证，或者使用基本机器人轻点和滑过应用程序并测量性能。我们将看到人工智能在自动代码评审中发挥作用，通过漏洞评估提高安全性并自动生成测试用例。 QA工程师用历史数据来训练算法以提高检测率。机器学习也可以用来提供应用程序性能的实时反馈，并自动调整。<br /><br />尽管人工智能兴起，QA工程师不应该担心他们的工作会被抢走。<br /><br />在市场上有一些基本的使用机器学习来测试移动应用的测试服务，例如Eggplant AI。这些工具能有效地发现应用中的错误。自动化解决方案背后的引擎通过应用程序生成新的测试路径。我们可以使用通过算法自动化产生测试用例的web应用。然而，你需要注意到，你所获得的测试服务发生在整个产品开发生命周期的末尾。<br /><br />如果公司决定独自采取这种方式，他们将错过高水平的QA工程师可以提供的巨大价值，从安全和风险管理，可扩展性和性能评估，文档管理，过程保证（如规范和关键指标的跟踪）。<br /><br />QA工程师能够让AI变得更好。<br /><br />虽然AI不会让测试人员变得多余，但如果QA工程师不熟悉AI以及AI如何能够帮助自己创造更好的软件，那么他们将正在犯错。AI不仅可以帮助我们更快地发现错误，还可以帮助我们确定需要测试什么，或者哪里更可能发现错误。例如，如果手动测试人员学习使用算法创建测试用例，则可以创建更多与用户体验有关的测试用例，包括测试人员根本不会想到的用例。<br /><br />我相信机器学习实际上会增加我们对高素质QA专家的需求。这是因为算法的底层软件将根据收到的数据做出决定。潜在的变量在增加，QA工程师如何知道什么是正确的结果？<br /><br />想象一下基于自学模式的测试的未来。<br /><br />在思考未来如何发展时，我们有必要讨论一下神经网络和科学家们所取得的最新进展。神经网络虽然可训练，但不一定要从经验中学习。你必须把它们放在&#8220;学习模式&#8221;。然而，人工智能科学家已经提出了&#8220;生成式对抗网络或GANs&#8221;，其本质上是多个神经网络，它们相互激励，相互学习。现在设想一个世界，有不同的神经网络在测试、并一直学习破坏软件系统和发现安全漏洞。这更接近无监督的学习，将代表软件构建和测试过程的革命。<br /><br />如果你是一名开发者，不要以为没有你什么事情，你同样会被AI影响。为了看看这将会是什么样子，看一下一些人在循环神经网络（RNNs）上所做的工作：一位专家能够将奥巴马总统的演讲稿提供给RNN，RNNs网络就可以产生听起来像奥巴马所写的文字。但更加可怕的是，他将Linux源代码添加到RNNs中，现在网络就能够生成结构良好的C代码（尽管它不能编译，你可以想象一个带有监督的神经网络运行多个这样的代码，用一种革命性的方式生成可编译代码将是多么的不可思议）。<br /><br />在数字时代，支持AI的测试将是必不可少的。<br /><br />随着各种团体组织希望能够持续交付、企业需要更快的软件开发，支持AI的测试将成为QA工作的核心部分。这将是确保数字时代软件质量的唯一途径。然而，我们仍然需要测试人员，因为人类能够理解其他人类需要什么，而机器在开发&#8220;常识&#8221;的道路上还有很长距离要走。我们仍然需要有创造力、高素质的QA工程师将他们的见解应用到整个产品开发生命周期中。<br /><br />更多关于软件测试方面的文章，请前往51Testing软件测试网。（<span style="background-color: #ffffff;">http://www.51testing.com）</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90866.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-01-25 12:07 <a href="http://www.cnitblog.com/shbwf/articles/90866.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2018年的五个网络安全预测</title><link>http://www.cnitblog.com/shbwf/articles/90864.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 24 Jan 2018 02:25:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90864.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90864.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90864.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90864.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">2018年已经到来，而在这一年中，<a target="_self" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;&quot;;"><u style="word-wrap: break-word; margin: 0px auto; padding: 0px;"><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px;">网络安全</strong></u></a>问题将成为很多媒体的头条新闻。考虑到这一点，以下是人们将在2018年看到的五个行业预测：</div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　<a href="http://www.51testing.com/batch.download.php?aid=81327" data-ke-src="http://www.51testing.com/batch.download.php?aid=81327" target="_blank" style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;color:#111010;text-decoration-line:none;&quot;;"><img src="http://www.51testing.com/attachments/2018/01/15201284_201801240921271o9sl.jpg" data-ke-src="http://www.51testing.com/attachments/2018/01/15201284_201801240921271o9sl.jpg" border="0" style="word-wrap: break-word; border: 0px; margin: 0px auto; padding: 0px; max-width: 600px;"  alt="" /></a></div><div style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: 微软雅黑; line-height: 24px; color: #3e3e3e; font-size: 14px;">　<strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">　　　1. 关于后量子密码对网络安全影响的讨论逐渐升温<br style="word-wrap: break-word;" />　　在许多圈子里，一些人在讨论后量子密码对网络安全的影响，而这个主题讨论将让企业高层获得更多的驱动力。人们也期望加密敏捷性(或敏捷加密)的主题得到更多的关注，并希望制定后量子密码(PQC)的标准，以及了解其对企业的发展有什么影响。<br style="word-wrap: break-word;" />　　请记住，没有一种算法能够一直存续下去，这只是一个&#8220;什么时候&#8221;的问题。随着安全专家为后量子技术的到来做好准备，企业的高层和管理人员需要考虑他们能做些什么来确保所有的&#8220;事物&#8221;(汽车、设备、基础设施等)的安全。而对其开发和实施有效的加密敏捷方法的能力，是企业关心的重要问题，无论是行业还是基础设施，无论是企业还是与消费者相关的应用程序，都有可能受到后量子密码技术的影响。<br style="word-wrap: break-word;" />　　2018年，人们将开始看到从讨论问题转向实施解决方案。因此，可以预计企业将会首先引入许多定制的细分市场(行业或用例)特定的加密应用程序，以缩小差距，并提供前瞻性的能力，以适应不可避免的变化动态。<br style="word-wrap: break-word;" />　　2. 区块链：将会超越加密货币?<br style="word-wrap: break-word;" />　　区块链一直是2017年的主要热门术语之一，而这一趋势在2018年并没有放缓的迹象。当企业采用区块链技术时，许多企业天真地认为，由于区块链具有分布式的特点，因此是安全的。事实上，将交易添加到区块链中可以在不使用数字签名的情况下完成，从而掩盖了添加交易的人的真实身份，但是这对于企业和其他高度受管制的行业来说是一个难题，因为在这些行业中，加密密钥策略管理是一个更大的问题。<br style="word-wrap: break-word;" />　　有趣的是，像硬件安全模块(HSM)这样被认为是区块链的传统技术已经取得了重大的进展，并且适用于保护企业业务区块链技术。区块链(或其中的一部分)在记录交易方面可能保持安全，但在记录和验证每个交易的发起者方面可能是不安全的。为了符合合规性和安全目标，其签名必须通过公钥基础设施(PKI)进行验证。 2018年，由于人们对采用区块链的兴趣上升，预计在企业中将更多采用硬件安全模块(HSM)。<br style="word-wrap: break-word;" />　　3. 创新深入传统支付市场<br style="word-wrap: break-word;" />　　支付领域和银行的市场的创新通常采用新技术来满足不断变化的消费者需求。虽然这些组织在推动新技术的创新与传统领域运行核心业务之间的差距越来越大，但人们将开始意识这个差距，而前瞻性创新将进一步推动业务的发展。<br style="word-wrap: break-word;" />　　由于企业希望简化流程并采用更为灵活的技术(特别是在安全方面)，这意味着要在传统设备中实现现代化，并实施可满足数字支付、替代支付技术、加密货币等增长需求的不断发展的技术。同时保证严格的安全标准和合规性。<br style="word-wrap: break-word;" />　　4. 尽管所有人都在关注&#8220;一般数据保护条例&#8221;(GDPR)的实施，但大多数人会对欧盟推出的电子身份识别和信托服务(eIDAS)的变化感到惊讶<br style="word-wrap: break-word;" />　　2018年是欧盟实施法规的重要的一年，尤其是欧盟&#8220;一般数据保护条例&#8221;(GDPR)将在今年五月全面实施。这也标志着欧盟所有成员国根据eIDAS第910/2014号条例要求承认其他成员国的电子标识(eID)已经到来，但是这不仅仅以eID结束。令许多企业感到惊讶的是，2018年的eIDAS变化中，还包括电子信托服务(即电子签名、电子印章、时间戳、电子传送服务和网站认证)将被跨界承认，并具有与传统纸质流程相同的法律地位。由于企业的重点仍停留在&#8220;一般数据保护条例&#8221;(GDPR)的准备和合规性上，预计更多的问题不是来自GDPR法规，而是来自实施和认识到对信托服务组织的需求。<br style="word-wrap: break-word;" />　　5.收集未成年人的数字内容的公司将面临长期声誉风险<br style="word-wrap: break-word;" />　　在追求用户应用&#8220;粘性&#8221;的过程中，企业将更积极地启用和收集未成年人用户生成的内容。2018年，家长将意识到企业对于未成年人产生的数字内容有着严重的滥用行为，并在考虑这些做法对自己孩子是否有长期影响。<br style="word-wrap: break-word;" />　　在竞争激烈的应用环境中，这种&#8220;粘性&#8221;很容易变得&#8220;不稳定&#8221;，而那些具有进取性、前瞻性的应用程序和服务将会让未成年人认识到自己成为与家长合作的品牌建设的价值。</strong><strong style="word-wrap: break-word; margin: 0px auto; padding: 0px; font-family: &quot;&quot;;">&#8203;</strong></div><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">&#8203;更多关于IT方面的软件测试文章，请前往51Testing软件测试网。（</span><span style="font-family: &quot;sans serif&quot;, tahoma, verdana, helvetica; font-size: 16px;">http://www.51testing.com）</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-01-24 10:25 <a href="http://www.cnitblog.com/shbwf/articles/90864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自建Hadoop集群迁移到EMR之数据迁移篇</title><link>http://www.cnitblog.com/shbwf/articles/90863.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Tue, 23 Jan 2018 02:51:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90863.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90863.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90863.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90863.html</trackback:ping><description><![CDATA[<strong>　摘要</strong>：自建集群要迁移到EMR集群，往往需要迁移已有数据。本文主要介绍hdfs数据和hive meta数据如何迁移。 前置 已按需求创建好EMR集群。 迁移hdfs数据 主要依靠distcp,核心是打通网络，确定hdfs参数和要迁移内容，测速，迁移。<br />　　自建集群要迁移到EMR集群，往往需要迁移已有数据。本文主要介绍hdfs数据和hive meta数据如何迁移。<br />　<strong>　前置</strong><br />　　已按需求创建好EMR集群。<br />　　<strong>迁移hdfs数据</strong><br />　　主要依靠distcp,核心是打通网络，确定hdfs参数和要迁移内容，测速，迁移。<br />　　<strong>网络</strong><br />　　需要自建集群和EMR各个节点网络互通。同为VPC网络只需要同一个安全组，不同的安全组需要设置安全组互通。<br />　　如果自建集群是经典网络，EMR集群是vpc，网络访问需要设置CLASSICLINK.参见文档,详情可以咨询ECS客服。<br />　　设置后可以在新集群节点上ssh 老集群节点确定网络连通情况，distcp操作如果有xx 节点无法连接xx节点的异常，说明没有连通，需要继续设置。<br />　　<strong>hdfs权限配置确认</strong><br />　　hdfs有权限设置，确定老集群是否有acl规则，是否要同步，检查dfs.permissions.enabled 和dfs.namenode.acls.enabled的配置新老集群是否一致，按照实际需要修改。<br />　　如果有acl规则要同步，distcp参数要加-p同步权限参数。如果distcp操作提示xx集群不支持acl，说明对应集群没配置。新集群没配置可以修改配置并重启NM。旧集群不支持，说明旧集群根本就没有acl方面的设置，也不需要同步。<br />　　<strong>同步参数</strong><br />　　一般在新集群上运行同步，这样同步的作业可以在新集群上运行，对老集群影响较小。<br />　　distcp 参数细节 ，一般命令格式如下：<br />　　hadoop distcp -Ddfs.replication=3 -pbugpcax -m 1000 -bandwidth 30 hdfs://oldclusterip:8020 /user/hive/warehouse /user/hive/<br />　<strong>　注意事项：</strong><br />　　1.hdfs://oldclusterip:8020写老集群nameode ip，多个namenode写当前active的。<br />　　2.指定了副本数3，如想保留原有副本数-p后加r如-prbugpcax。如果不同步权限和acl，-p后去掉p和a。<br />　　3.-m指定map数，和集群规模，数据量有关。比如集群有2000核cpu，就可以指定2000个map。 -bandwidth指定单个map的同步速度，是靠控制副本复制速度实现的，是大概值。<br />　　4.迁移整体速度受集群间带宽，集群规模影响。同时文件越多，checksum需要的时间越长。如果迁移数据量大，可以先试着同步几个目录评估一下整体时间。如果只能在指定时间段内同步，可以将目录切为几个小目录，依次同步。<br />　　5.如果迁移过程中老集群还有写入，可以用-udpate再将变化同步过来。<br />　　6.一般完全同步，需要有个短暂的业务停写，以启用双写双算或直接将业务切换到新集群上。<br />　　hive meta数据同步<br />　　hive meta数据同步，本质是hive meta db，一般是mysql db的数据同步。和一般的mysql数据同步相比，要注意location改变，和hive版本对齐。<br /><strong>　　meta db设置</strong><br />　　meta数据较多时，一般推荐用rds作为meta db。自建集群可能已有一个rds db，由于location不同，一般需要新建一个数据库。最佳实践是跟EMR集群在一个可用区，一个vpc 安全组下新建一个rds 数据库。<br />　　登录新集群master节点（如果是ha集群两个master都需要），修改/usr/local/emr/emr-agent/run/meta_db_info.json，把里面的use_local_meta_db设置为false，meta数据库信息的链接地址、用户名和密码换成新建rds的信息。然后重启hive组件的metaserver。<br />　<strong>　</strong>初始化meta的表信息：<br />　　&#183;&#183;&#183;<br />　　cd /usr/lib/hive-current/bin<br />　　./schematool - initSchema -dbType mysql<br />　　&#183;&#183;&#183;<br />　<strong>　location</strong><br />　　hive的表，分区等信息是有location信息的，带dfs nameservices前缀，如hdfs://mycluster:8020/，而EMR集群的nameservices前缀是统一的emr-cluster,所以需要订正。订正的最佳方式是先导出数据 mysqldump --databases hivemeta --single-transaction -u root &#8211;p &gt; hive_databases.sql ,用sed替换hdfs://oldcluster:8020/为hdfs://emr-cluster/ ,再导入新db中。<br />　　mysql hivemeta -p &lt; hive_databases.sql<br />　　<strong>版本对齐</strong><br />　　EMR的hive版本一般是当前社区最新的稳定版，自建集群hive版本可能会更老，所以导入的旧版本数据可能不能直接使用。需要执行hive的升级脚本， 地址 。例如hive从1.2升级到2.3.0，需要依次执行upgrade-1.2.0-to-2.0.0.mysql.sql，upgrade-2.0.0-to-2.1.0.mysql.sql，upgrade-2.1.0-to-2.2.0.mysql.sql，upgrade-2.2.0-to-2.3.0.mysql.sql。脚本主要是建表，加字段，改内容，如有表已存在，字段已存在的异常可以忽略。<br />　<strong>　验证</strong><br />　　meta数据全部订正后，就可以重启metaserver了。命令行 hive ，查询库和表，查询数据，验证正确性。<br /><br />　　饮水思源，&#8220;欢饮&#8221;前往51Testing软件测试网，学习更多测试技术文章。（http://www.51testing.com）<img src ="http://www.cnitblog.com/shbwf/aggbug/90863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-01-23 10:51 <a href="http://www.cnitblog.com/shbwf/articles/90863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何进行“有效”测试的探讨</title><link>http://www.cnitblog.com/shbwf/articles/90861.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Mon, 22 Jan 2018 02:01:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90861.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90861.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90861.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90861.html</trackback:ping><description><![CDATA[即使是一些资深的测试工程师，也会承认：<br />　　测试的主要困难是不知道如何进行有效地测试，也不知道什么时候可以放心地结束测试。<br />　　如果不知道什么样的测试是&#8220;有效&#8221;的测试，项目组就会面临这样的问题：预留给测试的时间用完了，即使怀疑软件中仍然遗漏很多缺陷，也只好匆匆收场，把麻烦留给将来。<br />　　怎样的测试才是&#8220;有效&#8221;的测试？面对这一难题，估且谈谈自己的一些粗浅的看法，借以抛砖引玉。<br />　　<strong>&#9679;要合理安排测试人员。</strong><br />　　测试活动是由人来完成的，所以测试是否&#8220;有效&#8221;要看执行的人安排得是否恰当。<br />　　<strong>1）程序员不能测试自己的程序</strong><br />　　测试的思维和开发是完全不同的。开发者是从完成软件功能以及软件的质量出发来考虑问题的，而测试人员则是从发现软件缺陷的角度来考虑问题的。程序员要测试自己的程序，很难做好这种思维的转变。从心理上，要对自己的作品挑错，也是很难做到的一件事。<br />　　<strong>2）安排最好的程序员测试</strong><br />　　测试并不是一件简单的事。要能从一个功能已经实现的软件产品中找到错误，需要具备一定的经验程序员才有可能做好。如果随便安排一个人来做测试，有可能只能给出一堆让软件产品顺利通过的无用的测试用例而已。<br />　　<strong>&#9679;正确理解测试的目的</strong><br />　　测试是为了找出缺陷，不是为了证明程序是正确的。只有从这个目的出发，才有可能发现程序中潜在的错误。<br />　　如果为了说明软件有多么好，那么应当制作专门的演示。千万不要将&#8220;测试&#8221;与&#8220;演示&#8221;混为一谈。<br />　　<strong>&#9679;注重异常测试</strong><br />　　在进行测试设计的时候，不仅要编制有效输入数据的测试用例，还要编制无效输入数据的测试用例。有效输入，只能验证程序的功能性是否正确，对于程序的可靠性，安全性，它是无能为力的。<br />　<strong>　&#9679;分析测试结果</strong><br />　　完成一轮测试之后，不仅要对发现的问题进行改错，对更改的代码进行回归测试，还应对测试结果进行分析，以决定:<br />　　1）是否满足测试终止条件，可以结束测试。<br />　　2）在已发现的问题类型当中，是否存在一些习惯性或普遍性的问题，如果有，分析其可能存在的位置，设计合适的测试用例，找出它来。<br />　　3）通常在已经发现错误的地方会发现更多的错误。要分析已经发现问题的测试用例设计的是否充分，是否需要设计新的测试用例，以找出尚未发现的问题。<br />　　<strong>&#9679;必要的测试类型一个都不能少</strong><br />　　测试一般包括单元测试、集成测试、系统测试、验收测试。从开发与测试的关系来看，这些测试类型分别用于验证详细设计、结构设计、需求规格说明、用户需求。单元测试，用于验证软件单元的正确性；集成测试，用于验证软件单元和模块接口的正确性；系统测试用于验证软件需求的实现；用户测试，用于验证用户需求的实现。这些测试类型验证的对象完全不同，只有完成了这些测试工作，开发出来的软件才满足&#8220;正确的做&#8221;和&#8220;做的正确 &#8221;。所以这些测试类型，一个都不能少。<br />　　<strong>&#9679;测试类型的有效性</strong><br />　<strong>　1）单元测试的有效性</strong><br />　　a）单元测试，要确保详细设计的软件单元的功能的实现；<br />　　b）最合理的单元测试，应当是边开发、边审查、边测试。如果等到所有的软件单元全部开发完成，才开始进行单元测试，你会耗费更多测试的时间；<br />　　c）单元测试，要解决软件单元代码的规范性、正确性的问题；<br />　　d）单元测试要满足一定的代码覆盖率和路径覆盖率的要求，特别是关键的软件单元。<br />　　<strong>2）集成测试的有效性</strong><br />　　a）制定一个有效的集成策略。集成顺序不应是随意的，应优先考虑那些关键的软件单元（如果它出现问题，将给软件带来很大的影响后果）以及与软件外部输出有关系的软件单元。<br />　　b）在开发软件单元的时候就要考虑集成的顺序，将单元测试和集成测试一并考虑，按照提成的先后顺序开发软件单元，边开发边审查边测试边集成。<br />　　<strong>3）系统测试和验收测试的有效性</strong><br />　　a) 系统测试和验收测试，都不应只关注功能测试、性能测试、接口测试，除此之外，还要考虑用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等内容。<br />　　b) 验收测试是以用户为主导的测试，验收测试的测试用例应从用户使用的角度考虑。<br />　　以上零零散散地谈了几点如何&#8220;有效&#8221;测试的想法。这些是从过程方法上面谈的，后面会从技术层面再来探讨。<br />&nbsp; &nbsp; &nbsp; 本文转自51Testing软件测试网，跟多热点测试技术，请前往51Testing软件测试网：<span style="background-color: #ffffff;">http://www.51testing.com 。</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-01-22 10:01 <a href="http://www.cnitblog.com/shbwf/articles/90861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>进行app性能和安全性测试的重要性</title><link>http://www.cnitblog.com/shbwf/articles/90856.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 17 Jan 2018 07:42:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90856.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90856.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90856.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90856.html</trackback:ping><description><![CDATA[如何让用户感觉App运行速度更快呢，这需要对App进行性能测试。限制App性能的因素按照App的系统结构分为App自身和App需要用到的后台服务。<br />　　<strong>测试App连接网络的速度</strong><br />　　一般采用在模拟Mock环境下进行测试，测试方法更多使用的是在App的log中添加时间戳的方式计算时间，例如使用Apple公司提供的iPhone Configuration Utility中Devices的Console查看App的log。<br />　　<strong>测试App在不同网络速度下操作的流程程度</strong><br />　　测试可以使用在App的log中添加时间戳方法验证，也可以通过使用App的直观感受来验证App性能带给用户的体验。<br />　　<strong>测试App对于前台页面渲染的性能</strong><br />　　测试可以使用在App的log中添加时间戳方法验证，也可以通过使用App的直观感受来验证App性能带给用户的体验。特殊的是，当App中使用WebView，测试人员可以快速地刷新当前页面或者在使用WebView的页面间进行切换，来验证App是否有性能问题甚至发生崩溃。<br />　　<strong>测试App操作数据库的性能</strong><br />　　iOS操作系统在设备本地存储App数据时使用的是CoreData或者SQLite数据库;Android操作系统在设备本地存储App数据时使用SQLite数据库。如果操作的数据量很大，便有可能出现App的性能问题，此时App测试就很重要，对数据库操作的功能进行大数据量的测试。测试人员也可以和开发人员一起，遵照Web端数据库优化的一些原则，如数据库启用事务，使用索引，数据的批量操作等优化方法，提高数据库的性能。<br />　　<strong>测试App的会话session是否有过期设置</strong><br />　　对于App的会话session是否有过期设置的测试，可以在App运行中切换到别的App或者桌面一段时间，然后再次进入App，看App是否需要输入密码等验证信息。值得注意的是不同App的合理session过期时间不一样，测试人员需要和产品经理、开发人员等确认之后制定出合理的测试用例。<br />　　<strong>测试App请求中是否包含了明文的用户信息</strong><br />　　包含了明文的信息，如同App中标示用户应该使用UUID或GUID等转码后的信息，而不是直接的用户电话号码或账户信息，当然更不应该明文传送这些信息。测试人员可以使用Apple的iPhone Configuration Utility，Android SDK自带的DDMS，Charles和Fiddler这些工具来监控App发送的请求。<br />　　<strong>测试App的请求是否加密</strong><br />　　一般App请求可以使用HTTP，但是关系到用户敏感信息的请求，需要使用HTTPS等加密传输。<br />　　<strong>测试SQLite数据库的存储是否安全</strong><br />　　测试人员可以通过ADB连接到root的Android蛇别，并使用SQLite来查看具体的数据库保存的信息。显然，把用户实际的登录信息明文存储在数据库文件中是不安全的，最好不要存储，如果必须存储，最好对这些信息加密后再存储。<br />　　<strong>测试App使用WebView的安全性</strong><br />　　由于WebView的请求和在Web端请求数据是一样的，所以任何适用于Web端的攻击方式和漏洞对于WebView来说都是通用的。<br />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; END<br />&nbsp; &nbsp; &nbsp; &nbsp; 更多关于软件测试方面的文章，请前往51Testing软件测试网。（<span style="background-color: #ffffff;">http://www.51testing.com）</span><img src ="http://www.cnitblog.com/shbwf/aggbug/90856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2018-01-17 15:42 <a href="http://www.cnitblog.com/shbwf/articles/90856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试进入了一个新时代</title><link>http://www.cnitblog.com/shbwf/articles/90712.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Mon, 17 Jul 2017 07:22:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/90712.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/90712.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/90712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/90712.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/90712.html</trackback:ping><description><![CDATA[<span style="color: #666666; font-family: 宋体, Arial; font-size: 16px;">企业IT软件非常复杂，通过协作由全球高技能人员快速开发，必须在许多生态系统和许多设备上不间断地运行。在过去，软件每年一般只发布几次；但是今天，新的版本可能会每分钟出去一次, 持续不断的。在许多情况下，</span><a target="_self" style="word-wrap: break-word; color: #565656; font-family: 宋体, Arial; font-size: 16px;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">软件开发</strong></u></a><span style="color: #666666; font-family: 宋体, Arial; font-size: 16px;">过程以瀑布方法开始，现在已经转向敏捷、精益和持续集成（CI）。在这个新时代，云服务消费者（软件用户）</span><a target="_self" style="word-wrap: break-word; color: #565656; font-family: 宋体, Arial; font-size: 16px;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">生活</strong></u></a><span style="color: #666666; font-family: 宋体, Arial; font-size: 16px;">在一个多租户世界中，他们不再能够控制软件版本更新的时间。客户分散在许多时区，每个客户都必须访问该软件，所以永远不会给维护、超时或宕机等机会。</span><br style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;" />
<div align="center" style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;"><a href="http://www.51testing.com/batch.download.php?aid=70903" target="_blank" style="word-wrap: break-word; color: #565656;"><img src="http://www.51testing.com/attachments/2017/07/15201284_201707131726491Lxp2.jpg" border="0" style="word-wrap: break-word; border: 0px;" alt="" /></a></div>
<span style="color: #666666; font-family: 宋体, Arial; font-size: 16px;">　　持续操作&#8212;&#8212;以软件用户无中断的方式管理软件和硬件的更新。即使软件和服务器在计划的维护或更新过程中可能会离线，这也需要对其进行管理，从而在维护时用户依旧可以继续使用现有版本的应用程序。一旦部署成功并经过冒烟</span><a target="_self" style="word-wrap: break-word; color: #565656; font-family: 宋体, Arial; font-size: 16px;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">测试</strong></u></a><span style="color: #666666; font-family: 宋体, Arial; font-size: 16px;">后，就会自动切换到新的版本。</span>
<div style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;">
<div style="word-wrap: break-word;"><a href="http://www.51testing.com/batch.download.php?aid=70921" target="_blank" style="word-wrap: break-word; color: #565656;"><img src="http://www.51testing.com/attachments/2017/07/15201284_201707141139111KSsA.jpg" border="0" style="word-wrap: break-word; border: 0px;" alt="" /></a></div>
当<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">软件测试</strong></u></a>进入了一个新时代，在开发、交付、部署和运营的高速运行的同时，要确保这些高度复杂和动态的软件产品的质量，就变得非常困难。在新时代，软件测试需要多维的方式去操作，质量/测试工程师时时刻刻都要从下列多个维度去评估软件产品的质量。</div>
<div style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;">
<div style="word-wrap: break-word;"><a href="http://www.51testing.com/batch.download.php?aid=70922" target="_blank" style="word-wrap: break-word; color: #565656;"><img src="http://www.51testing.com/attachments/2017/07/15201284_201707141139541p68e.jpg" border="0" style="word-wrap: break-word; border: 0px;" alt="" /></a></div>
<strong style="word-wrap: break-word;">在新时代，测试工程师在软件交付中要扮演多种角色</strong>，他们需要转变软件测试思维，需要测试自动化和与各种解决方案/技术的集成，以支持他们多维度的<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">工作</strong></u></a>方式。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">在新时代，测试不再局限于测试执行的自动化、测试设计的自动化或测试过程中单个环节的自动化，而是：</strong><br style="word-wrap: break-word;" />
关于在第一时间如何实现测试的推导和设计，以及如何管理和执行测试；<br style="word-wrap: break-word;" />
关于测试的透明性、可视性和可控制；<br style="word-wrap: break-word;" />
关于速度和周转时间；<br style="word-wrap: break-word;" />
关于无缝集成，如将工具和流程融合在一起。</div>
<div style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;">
<div style="word-wrap: break-word;"><a href="http://www.51testing.com/batch.download.php?aid=70924" target="_blank" style="word-wrap: break-word; color: #565656;"><img src="http://www.51testing.com/attachments/2017/07/15201284_201707141141251NdaK.jpg" border="0" style="word-wrap: break-word; border: 0px;" alt="" /></a></div>
下列内容强调了新时代软件测试中的现实需求。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">提高生产率（测试效率）：</strong><br style="word-wrap: break-word;" />
通过最少的手工参与，实现<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">功能测试</strong></u></a>的自动化。<br style="word-wrap: break-word;" />
利用现有测试资产 -&nbsp;<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">测试用例</strong></u></a>、测试需求、原型。<br style="word-wrap: break-word;" />
消除测试自动化积压（Backlog）<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">增加和优化的覆盖范围：</strong><br style="word-wrap: break-word;" />
尽可能少地测试复杂系统、优化回归测试集。<br style="word-wrap: break-word;" />
查看生成的测试，了解覆盖了哪些测试、以及为什么需要这些测试;<br style="word-wrap: break-word;" />
获得可视性，能够了解什么测过、什么没有测试。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">　综合测试流程：</strong><br style="word-wrap: break-word;" />
与所有SDLC工具和流程无缝集成；<br style="word-wrap: break-word;" />
直接链接到自动化执行框架。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">测试自动化：</strong><br style="word-wrap: break-word;" />
缩短测试自动化的路径；<br style="word-wrap: break-word;" />
简化高级的测试设计<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">技术</strong></u></a>；<br style="word-wrap: break-word;" />
在许多平台和生态系统上自动执行测试；<br style="word-wrap: break-word;" />
在内部或云端上实现并发测试。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">可重用性：</strong><br style="word-wrap: break-word;" />
重用现有资产，包括模型、手动测试用例、<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">记录</strong></u></a>和回放测试；<br style="word-wrap: break-word;" />
重用每个利益相关者的资产提升交付速度。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">测试自动化</strong><br style="word-wrap: break-word;" />
以开发的速度进行测试，对于软件发布变得非常关键。<a target="_self" style="word-wrap: break-word; color: #565656;"><u style="word-wrap: break-word;"><strong style="word-wrap: break-word;">自动化测试</strong></u></a>是在每个迭代实现足够高的测试覆盖率的唯一途径，从而提供测试人员为其项目获得高品质和快速的质量反馈。<br style="word-wrap: break-word;" />
自动化测试，不仅帮助我们节省测试的时间、可以进行更全面的回归测试，增强我们对系统质量的信心，而且这种信任使得我们大胆进行系统的改进和定制以满足不同用户的需求，测试人员也可以将精力投入到真正需要人类洞察力的新功能测试领域，开发人员也变得更加自信。<br style="word-wrap: break-word;" />
<strong style="word-wrap: break-word;">测试自动化框架</strong><br style="word-wrap: break-word;" />
测试自动化框架是支架，用于为自动化测试脚本提供执行环境。框架是各种指南、编码标准、概念、流程、实践、项目层次化、模块化、报告机制、测试数据等的智慧结晶，并有力支持自动化测试的流畅执行。因此，用户可以遵循这些准则，同时自动化应用程序以利用各种高效的成果。</div>
<div style="word-wrap: break-word; color: #666666; font-family: 宋体, Arial; font-size: 16px;">
<div align="center" style="word-wrap: break-word;"><a href="http://www.51testing.com/batch.download.php?aid=70938" target="_blank" style="word-wrap: break-word; color: #565656;"><img src="http://www.51testing.com/attachments/2017/07/15201284_201707141424381cko3.jpg" border="0" style="word-wrap: break-word; border: 0px;" alt="" /></a>　　 &nbsp;
</div>
<br />在高层次上，自动化框架使用驱动程序和数据集在各种测试环境中执行测试。<br />好的框架吸收了许多自动化测试技术，利用其优势，智能地解决其弱点，满足各类项目利益相关者的需求：<br style="word-wrap: break-word;" />
基于组件的测试框架；<br style="word-wrap: break-word;" />
库架构测试框架；<br style="word-wrap: break-word;" />
数据驱动测试框架；<br style="word-wrap: break-word;" />
关键字驱动测试框架；<br style="word-wrap: break-word;" />
混合测试框架；<br style="word-wrap: break-word;" />
行为驱动开发框架（BDD）；<br style="word-wrap: break-word;" />
业务流程测试框架。</div>
<p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; color: #666666; font-family: 宋体, Arial; font-size: 16px;">End.</p>
<p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; color: #666666; font-family: 宋体, Arial; font-size: 16px;">如果对软件测试感兴趣，想了解更多的软件测试知识，请大家关注<strong style="word-wrap: break-word;">&#8220;51Testing软件测试网&#8221;</strong>今日<strong style="word-wrap: break-word;">头条号</strong>。<strong style="word-wrap: break-word;">PS：每周五都会发福利哦！</strong></p><img src ="http://www.cnitblog.com/shbwf/aggbug/90712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2017-07-17 15:22 <a href="http://www.cnitblog.com/shbwf/articles/90712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2014软件测试现状调查活动开始啦！</title><link>http://www.cnitblog.com/shbwf/articles/89835.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 12 Nov 2014 14:20:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89835.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89835.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89835.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89835.html</trackback:ping><description><![CDATA[<b>调查名称：2014软件测试现状调查活动<br></b>
<b>调查时间：即日起至2015年3月12日<br></b>
<b><span style="color: #e3ae6">参与调查问卷请点击>> </span><a href="http://vote.51testing.com/ "><span style="color: #">http://vote.51testing.com/</span></a></b><br><br>
51Testing作为目前国内人气最旺的软件测试门户网站,为了帮助软件测试从业人员自身和相关企业，更深入、全面的了解中国软件测试从业人员现状，在2007年开展了首届中国软件测试从业人员调查活动。活动一经推出，立即受到广大会员的关注和支持。<br>
在2007年至2013年期间，51Testing软件测试网共开展了八次行业调查活动，其中除了2008年是企业软件测试现状调查外，其余七次都进行了中国软件测试从业人员调查并公布了调查所得数据和调查分析报告，每份报告都被下载超过万次，反响强烈。<br>
2014软件测试现状调查活动正在火热进行中，本次调查将继续从软件测试从业人员的角度，对软件测试从业人员及业内现状进行调查；问卷的设计在2013年的基础上做了进一步的修改和完善，力求使本次调查活动更专业、严谨、客观、实用，力争打造出中国软件测试领域最具广泛性、权威性和实用性的产业调查。<br>
51Testing希望通过本次调查活动，帮助大家了解2014年的软件测试从业人员现状，帮助测试人员更好的认识和定位自我，规划职业发展。<br>
欢迎广大软件测试从业人员前来参与，与51Testing携手，共同为提升软件测试从业人员整体价值，提高软件测试领域发展水平尽一份力量。<br>
感谢每个填写问卷的用户，你们的信息我们会保密的，对于完成问卷的用户，在调查报告一出来时我们就会通知大家，方便大家在第一时间了解行业现状~<br>
<span style="color: Ea590b">PS:必须全部填完才能提交问卷，如果有用户还是不愿意填联系方式什么的，可以直接填&#8220;无&#8221;。 </span> <br>   <img src ="http://www.cnitblog.com/shbwf/aggbug/89835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2014-11-12 22:20 <a href="http://www.cnitblog.com/shbwf/articles/89835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>51Testing招聘软件测试课程研发人员</title><link>http://www.cnitblog.com/shbwf/articles/89821.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 06 Nov 2014 05:43:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89821.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89821.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89821.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89821.html</trackback:ping><description><![CDATA[最近有些两三年测试工作经验的小伙伴对自己的下一个工作有些迷茫，感觉很难有技术的突破，毕竟公司不是学校，不会允许员工海阔天空的去尝试各种新的技术。现在我就送给这些好学上进的小伙伴一个礼物，51Testing现在正在招聘软件测试课程研发人员，工作的岗位职责就是整理成熟的软件测试技术体系，研究各类新的软件测试技术，当然也在老王我所负责的团队工作。我们招募的条件很简单，有一定的软件测试经验，有强烈的学习和研究技术的欲望，能够耐心的去整理各类技术资料，研究新的技术，有一定的文字和表达能力，在这里我张开双臂欢迎你的加入！<br /><br />

职位信息：<br />
工作地点：上海<br />
薪水范围：面议<br />
学    历：本科及以上<br />
发布时间：2014年11月4日<br /><br />
任职要求：<br />
30岁以内，计算机相关专业本科及以上学历，英语4级及以上，3年及以上软件测试工作经验。<br />
1、 熟悉软件开发测试流程，能编写测试计划、测试方案，设计测试用例。<br />
2、 掌握C/C++或JAVA，掌握SQL Server、Oracle、Mysql中任意一种数据库，掌握Unix或Linux操作系统的管理和使用，能够搭建常用的服务。<br />
3、 掌握自动化测试理论，熟练使用QTP或LoadRunner，熟悉Python、Perl、Shell等任意一种脚本语言。<br />
4、 思路清晰，有很强的文字表达能力和较强的语言表达能力。<br />
5、 喜欢技术研究，喜欢总结和分享。<br /><br />
工作职责：<br />
1、 参与软件测试课程体系的研发<br />
2、 负责教学资源的研发和维护，包括教案、案例、视频、题库、教材等。<br />
3、 负责研究新技术、新业务、新工具，并将其转化为教学资源。<br />
4、 负责教学资源的内部使用培训。<br />
————————————————————<br />
以上职位请发送简历到：<br />
邮箱：wangweio1testing.com （请将#换成@）<br />
联系人：老王<br />
可注明来自<博客文章><br />
————————————————————<br />
>>有兴趣的小伙伴们赶快投简历，加入我们吧！<br />
>>投递简历的朋友我们会有相关同事在第一时间与您主动联系的~~<br /><br />

<p><span style="color: red">本文转载自51Testing软件测试网，查看更多：</span><a href="http://www.51testing.com/html/news.html" target="_blank"><span style="color: red">http://www.51testing.com/html/news.html</span></a></p>   <img src ="http://www.cnitblog.com/shbwf/aggbug/89821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2014-11-06 13:43 <a href="http://www.cnitblog.com/shbwf/articles/89821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>调查报告节选—公司的行业或领域分布</title><link>http://www.cnitblog.com/shbwf/articles/89674.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Tue, 22 Jul 2014 06:10:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89674.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89674.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89674.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89674.html</trackback:ping><description><![CDATA[　　1、公司的行业或领域分布<br />　　软件测试从业人员所在公司以通信及互联网、应用软件为主，金融及其他行业所占比例其次，其他行业也都有软件测试人员的分布，这充分说明了软件测试在各行各行都占有一定的比重。<br />　　本次调查问卷对公司所属行业或领域分布做出了优化。根据本次调研数据显示，软件测试从业人员所在公司的行业，主要分布在通信及互联网服务行业和应用软件行业，比例分别为40.1%、22.1%。其次为金融行业(金融、银行、保险等)和其他行业，所占比例分别为11.5%、8.1%。<img border="0" alt="" src="http://www.cnitblog.com/images/cnitblog_com/shbwf/14982672_201407211707311YrbC.jpg" /><br /><br />　　2013年调查中公司所属行业或领域分布<br />　　本次调研数据显示，软件测试人员在各行业或领域的都有分布，不仅仅局限于通信及互联网、应用软件二大行业，从另一个侧面也反映出，软件测试在各相关领域中都是不可或缺的。<br />　　......<br />　　想要了解更多行业动向，请点击下载：<a href="http://www.51testing.com/html/84/n-863184.html">http://www.51testing.com/html/84/n-863184.html</a><br />　　版权声明：51Testing软件测试网原创出品，转载时请务必以超链接形式标明文章原始出处、作者信息和本声明，否则将追究法律责任。<img src ="http://www.cnitblog.com/shbwf/aggbug/89674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2014-07-22 14:10 <a href="http://www.cnitblog.com/shbwf/articles/89674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bug敏感度的培养</title><link>http://www.cnitblog.com/shbwf/articles/89172.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Tue, 07 Jan 2014 07:28:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89172.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89172.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89172.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89172.html</trackback:ping><description><![CDATA[<p>在我们刚踏入软件测试行业时，不管你是专业的、非专业的，培训出来的还是未培训的。刚进公司时你看着身边的同时报的Bug很多并且大都是严重程度高，自己也很想提高一下，想要提高自己的bug敏感度，建议从下面几点做起，纯属个人建议。<br />　　1 熟悉需求：这是最基础也是最重要的，原始需求随着项目的进度在不断地变化，这就需要你多沟通多交流清楚最新的需求是什么。毕竟书面上的需求是不完整的，隐性需求就靠你和PM沟通了，让PM听你的建议，从用户的角度考虑。<br />　　2 Bug库：多看Bug库，看看别人找Bug的测试角度，可以增加自己的测试思路 ；可以避免提交重复的Bug。比如别人提了一个上边界值的问题，但下边界值也存在问题，这时候你就可以提下边界值的问题了。随着你看Bug库熟悉程度越深你的测试思路越宽阔。<br />　　3 被测对象和同类产品相对比：现在市面上大部分开发的软件都有同类产品，你可以对照同类产品对自己测试的软件进行参考测试，如：功能上、建议问题。尤其是性能方面，测试的指标如CPU、内存等都不要超过同类产品。<br />　　4 异常方面：断网时页面显示是否满足要求，是否有相应提示；快速切换页面是否出现异常、加载过程中进行其他操作、快速连续提交按钮是否提交多条数据、输入错误数据是否有相应处理等等<br />　　5 不断总结：学到的东西要不断总结，不然会杂乱无章。可以写博客或者写日记把自己的进步记录下来，每天进步一点点，时间长了会有很大收获的，要相信上天总是眷顾勤奋的人。如果你想以后提高自己，现在就开始养成一个好习惯。<br />　　以上是自己的一点拙见，希望看到这篇文章的同学，发表一下自己的意见。 </p>
<p>更多内容请关注51testing软件测试网</p><img src ="http://www.cnitblog.com/shbwf/aggbug/89172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2014-01-07 15:28 <a href="http://www.cnitblog.com/shbwf/articles/89172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web应用程序完全测试指南</title><link>http://www.cnitblog.com/shbwf/articles/89167.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Mon, 06 Jan 2014 06:41:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89167.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89167.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89167.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89167.html</trackback:ping><description><![CDATA[<p>随着Web技术和移动互联网的发展，越来越多的应用被迁移到了云端，这也使得用户可以随时随地使用它们。目前大量的优质应用，逐渐提升了用户的品味，也降低了用户的容忍度，如果你的Web应用无法使用户满意，那么很快就会有其他的应用来代替。<br />　　对于开发者来说，建立良好的客户口碑才是最有意义的事情。在完成了Web应用的设计和开发工作后，并不意味着你就可以直接发布了，你还需要从各方面来对其进行测试，以便让用户在使用过程中，不会出现各种各样的问题，比如性能、使用体验、安全问题等等。</p>
<p>　　那么对于Web应用来说，该测试哪些方面，该如何测试呢？来看看作者 Abhimanyu Ghoshal给出的这些建议。<br />　　一、首先应该测试什么？<br />　　当测试Web应用的时候，首先要明确你的应用要用来做什么，比如帮助用户编辑照片、发送票据、联系朋友或跟踪社交媒介等。你通常需要着眼于这四大领域：<br />　　1.&nbsp; 功能性测试<br />　　几乎所有的用户都期望自己所使用的Web应用功能准确、迅速、一致。这就意味着开发者必须精益求精，帮助用户实现某种形式上的结果。下面是一些需要全面测试的常见的功能元素：<br />　　表单：无论是反馈调查、创建任务计划，还是订阅新闻，都需要用到表单。你需要检查提交操作是否正常，是否能够提交连接并提交到你的数据中，所有字段是否能够接收输入的内容。<br />　　文件操作和计算：这其中涉及图像和文档的上传、编辑、计算功能和正确的输出值。首先，要确保你能想象得到会有多少用户会使用你的应用，并尽可能地针对他们进行调节。另外，要考虑一下如何使你的App更有效地计算并显示出结果，给用户提供一个更加流畅的用户体验。<br />　　搜索：如果你的应用允许用户搜索内容、文档或文件，那么就要保证你的搜索引擎能够索引这些信息，并定期更新，以便能够让用户实现快速查找，并根据查找条件快速显示相关结果。<br />　　媒体播放组件：测试音频、视频、动画和互动媒体播放组件（如游戏和图形工具）的时候，这些组件应该像预期的功能效果一样，在加载和运行的时候不能影响（暂停或减缓）其他应用的运行。<br />　　脚本和类库：确保你的脚本（比如图像显示或Ajax页面加载）在各种浏览器之间是相互兼容的，因为不同的用户可能会使用不同的浏览器访问你的应用，同时你可以测量不同浏览器的加载时间来进行性能优化。如果你的脚本只能和某些浏览器相互兼容，那么就要确保应用中的其他组件有更好的性能，这样所有的用户就能得到最好的应用体验。<br />　　最后，就是要全面检查其他组件的功能，包括提示系统、用户配置文件和管理仪表板等。</p>
<p>更多内容请关注51testing软件测试网...</p><img src ="http://www.cnitblog.com/shbwf/aggbug/89167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2014-01-06 14:41 <a href="http://www.cnitblog.com/shbwf/articles/89167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试应该在产品开发的哪个阶段进入？</title><link>http://www.cnitblog.com/shbwf/articles/89140.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Fri, 27 Dec 2013 07:48:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89140.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89140.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89140.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89140.html</trackback:ping><description><![CDATA[<p>测试应该在产品开发的哪个阶段进入？</p>
<p>官方标准应该是：<br />　　在产品的需求探索阶段，测试就需要进入，提出测试对产品的一些可测试性需求，比如在产品中增加调试命令，增加模拟告警信息等。同时，对产品的需求，从测试本职业务的角度进行分析、设计。<br />　　实际上，不同的产品、项目，团队的成熟度，可能测试进入的时间并不一定。<br />　　比如测试团队是新成立的团队，本身没有足够的能力去对产品进行出谋划策，那么还不如老老实实的等产品设计完成后，请开发人员或项目经理培训一下，然后先从功能黑盒测试开始入手。<br />　　比如产品是老产品，是V4.0升级到V4.1，产品线经年累月就是不停的迭代开发一个主产品，那么在少量的增量开发的前提下，在需求阶段过多的介入，反而是投入产出不成正比，还不如少量的投入，抽出精力把测试用例进行优化、开发测试工具、提炼场景式测试方法等等。<br />　　国内的测试还不太正规，所以结合实际情况，做到比较适合、符合本公司的实际业务情况和成熟度即可。</p>
<p>ipadmini、惠普平板电脑、京东购物卡...一大波好礼正在接近！参与51Testing圣诞节新年活动 ~2014马上有礼！</p>
<p>活动一：【&#8220;购房通&#8221;圣诞新年找茬活动】找茬，找房，找BUG，找出你的ipadmini~&nbsp; bbs.51testing.com/thread-999309-1-1.html<br />活动二：【圣诞&amp;新年猜猜猜】猜中有礼，百元京东购物卡，圣诞只为等你猜！bbs.51testing.com/thread-999324-1-1.html<br /></p><img src ="http://www.cnitblog.com/shbwf/aggbug/89140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2013-12-27 15:48 <a href="http://www.cnitblog.com/shbwf/articles/89140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>接口测试数据管理</title><link>http://www.cnitblog.com/shbwf/articles/89066.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Thu, 19 Dec 2013 07:52:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89066.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89066.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89066.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89066.html</trackback:ping><description><![CDATA[<p>接口测试数据准备方案<br />　　[数据准备部分主要是单元测试的测试数据准备策略方案。]<br />　　1&nbsp; 背景测试数据<br />　　测试背景数据是被测试系统运行依赖的业务数据，可能来自于其他外围系统，背景数据通常在被测试系统中作为输入数据，业务操作只是读取操作，并不做任何修改，业务处理完成后者部分可能保持位置不动也可能被备份到其他地方。<br />　　背景测试数据在测试前根据测试需求进行一次性准备，并在测试前对背景数据表进行备份作为数据基线。<br />　　背景测试数据修改时可能影响原有测试用例和测试数据，因此背景数据要与测试数据和测试用例建立版本对应关系。<br />　　2&nbsp; 系统业务测试数据<br />　　系统业务数据包括静态业务数据和动态业务数据，静态业务数据指业务操作中不会被修改的数据例如业务字典、业务规则等，动态业务数据是指在业务操作过程中会被生成或修改的数据，例如审批记录、审批单据等等<br />　　系统业务数据与测试用例紧密相关，测试用例依赖于系统业务数据。测试执行前测试用例脚本依据测试输入数据修改业务数据满足测试需求，测试业务执行完，测试脚本要读取动态业务数据验证结果正确性，在测试执行结束前通常要对修改和影响的数据进行回退。<br />　　业务数据于测试集合建立对应关系。<br />　　3&nbsp; 测试输入数据<br />　　测试输入数据提供给测试脚本使用的测试数据，测试输入数据应该包括：业务触发数据、期望结果数据和配置数据等。<br />　　测试输入数据与测试用例是一一对应的关系，在单元测试和接口测试中采用读取Excel或者读取Database方式。<br />　　对特殊的输入对象数据或文件数据等，在指定目录中进行保存。通过接口方式读取这类数据。<br />　　测试输入数据与测试脚本建立对应关系。 更多内容请关注51testing软件测试网</p><img src ="http://www.cnitblog.com/shbwf/aggbug/89066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2013-12-19 15:52 <a href="http://www.cnitblog.com/shbwf/articles/89066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试与杀虫剂困境</title><link>http://www.cnitblog.com/shbwf/articles/89060.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Wed, 18 Dec 2013 08:42:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89060.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89060.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89060.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89060.html</trackback:ping><description><![CDATA[<p>读微软的软件测试之道，其中有一个有趣的小故事。讲得是主人公自己有个菜园，菜园里的植物面临着各种动物和昆虫的威胁，所以必须要找到某种防护措施来阻止包括野兔，害虫的侵扰，否则肯定会颗粒无收。主人经过分析，发现野兔对菜园的破坏其实并不大，最令人深恶痛绝的害虫是蛞蝓。<br />　　主人发现蛞蝓对啤酒很是偏爱，所以在菜园的土垛栅栏外通过啤酒陷阱能拦下这些害虫，另外还发现在栅栏外面撒盐也是击溃蛞蝓入侵的有效方法，木屑和蛋壳也是对付这些小贼的另一种途径。可是不管在菜园外围布下怎么样的天罗地网来捕捉和阻挡蛞蝓，一些漏网之徒还是会成功突破。<br />　　和菜园主人的蛞蝓阻击战十分类似，我们在实施一个以揭示潜在缺陷为目的的软件测试时，会采取各种手段和方法的搭配。富有经验的测试工程师会告诉你，没有任何一种单一的测试方法能够有效地揭示出所有种类的缺陷或对软件的能力做出完整的评估，这种困境被称为杀虫剂困境。杀虫剂困境这个术语来自Beizer的第一定律：&#8220;任何用以防止和发现缺陷的方法都会留下一些残余的，更为微妙的缺陷，而对于这些缺陷而言，前面的方法会统统失效。&#8221;本质上，没有任何一种单一的技术或者手段对于软件测试百试百灵。所以，增加测试方法的多样性，以及考虑从更多的视角审视软件，我们就更有可能发现更多潜在问题的同时，提高测试工作的有效性。<br />　　园艺工作确实很费神，也会遭遇到一些特别的挑战。但是刚看到家人品尝到美美的果实，你会觉得一切都是值得的。同样，软件测试工作是辛劳的，并且面临着很多特有的困难，但经过由一系列手段达成了其当的结果时，对于整个产品组的回报也是令人鼓舞的。更多内容请关注51testing软件测试网...</p><img src ="http://www.cnitblog.com/shbwf/aggbug/89060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2013-12-18 16:42 <a href="http://www.cnitblog.com/shbwf/articles/89060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java开发中常见的危险信号</title><link>http://www.cnitblog.com/shbwf/articles/89049.html</link><dc:creator>51testing</dc:creator><author>51testing</author><pubDate>Tue, 17 Dec 2013 05:36:00 GMT</pubDate><guid>http://www.cnitblog.com/shbwf/articles/89049.html</guid><wfw:comment>http://www.cnitblog.com/shbwf/comments/89049.html</wfw:comment><comments>http://www.cnitblog.com/shbwf/articles/89049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shbwf/comments/commentRss/89049.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shbwf/services/trackbacks/89049.html</trackback:ping><description><![CDATA[<p><br />Dustin Marx是一位专业软件开发者，从业已经有17年的时间，他拥有电子工程学士学位，还是一位MBA。Dustin维护着一个博客，专门介绍软件开发的各个主题。近日，他撰文谈到了Java开发中常见的危险信号，提出了在日常的Java开发中我们需要尽力避免的一些不正确的做法。 　　经过多年的开发、阅读、回顾并维护了数万行的Java代码后，我经常会看到Java代码中出现的某些&#8220;危险信号&#8221;，这些信号经常（但也许并不总是）暗示着代码出现了某些问题。我这里所要谈的并不是那些总是错误的实践，而是想要谈谈在某些场景下可能是恰当，但通常却会导致问题的一些实践。这些&#8220;危险信号&#8221;有时可能并没有问题，但却会造成问题的积累，并最终导致问题的产生。这里我总结出了一些&#8220;危险信号&#8221;，并且谈谈在哪些情况下他们是没有问题的，在哪些情况下则会导致问题。 　　这里将要谈及的很多&#8220;危险信号&#8221;通常都会收到来自于FindBugs等代码分析工具所发出的警告信息，流行的Java IDE也会将它们标记出来。不过，我发现有不少开发者会忽略掉这些来自于工具与IDE的警告信息，要么是因为他们关掉了提示信息，要么是出于自身的开发习惯或是不理解与这些警告信息所关联的风险，因此会忽略掉警告信息。 　　对引用使用==（而不是.equals） 　　很多Java开发者都知道使用==比较原生类型数据，使用.equals比较引用类型数据。这是一条很容易记住的简单原则，Java开发者这么用也没什么问题。有时使用==来比较标准的Java类型引用（String、Integer、Long等等）也没问题，不过这要取决于被缓存的值的大小，因此这么做并不是一个好的做法。有时，我们需要检查标识的相等性而不是内容的相等性，在这种情况下使用==来比较引用就很适合了。相对而言，我更喜欢Groovy的处理方式，==类似于.equals，而===则是更加严格地比较标识。同理，使用!=来比较两个引用也是一个&#8220;危险信号&#8221;，因为如果待比较的两个对象不共享相同的标识（内存地址），即便他们拥有相同的内容也总是会返回true。 　　对枚举使用.equals（而不是==） 　　坦率地说，对于枚举，Java开发者使用==还是.equals都没有太大关系。不过，我更倾向于对枚举使用==。这么做最重要的原因就是对枚举使用==可以防止不小心将枚举与不相关的对象进行比较（永远不会相等）。Object.equals(Object)方法可以接收任意对象，这意味着编译器并不会强制限定传进来的对象要与被比较的对象是相同的类型。一般来说，我更喜欢静态的编译期问题检测而非动态运行期的问题检测，对枚举使用==可以满足这个要求。同理，在比较枚举时，!=与!.equals也是一样的。 　　魔数与字符串字面值 　　我经常会在Java代码中看到有人使用&#8220;魔数&#8221;和字符串字面值。他们对于未来的维护来说是一种&#8220;危险信号&#8221;，让我十分怀疑应用的正确性。在单个位置处将其标识为常量（如果可能用枚举来表示更佳），这么做可以改善未来的维护，并且让我可以更加自信地相信使用这些值的所有代码都在使用着相同的值。除此之外，在一个地方定义好常量与枚举可以更方便地使用IDE的&#8220;查找使用&#8221;特性来找到所有使用这些常量的地方。 　　字符串常量 　　在看到有限的相关字符串常量时，我就在想使用枚举应该更加适合。对于高度内聚的字符串常量的情况来说更是如此，因为枚举可以更好地表达出这些字符串所表示的概念。相比于字符串常量来说，枚举提供了编译期的静态类型安全与潜在的性能优势。对于程序的正确性来说，编译期的安全是最吸引我的地方。 　　使用Java的&#8220;goto&#8221; 　　很少有人会使用标签代码，如果使用了那也说明用法不当。换句话说，如果使用了也是滥用而已。在大多数情况下，使用Java的&#8220;goto&#8221;会造成代码的可读性极差。 　　根据作用域来确定恰当的变量引用 　　我认为这种方式永远都是不恰当的，但它却能运行，甚至有时是被某些Java开发者有意而为之。比如说，Java开发者将传递进方法的变量在方法执行时指向了另一个引用。该变量（临时指向方法参数）指向了另一个引用，直到方法结束为止，这时它脱离了作用域。在这种情况下，在方法签名的参数定义前加上final关键字会导致编译器错误，这也是我喜欢在方法参数前加上final的原因之一。对于我来说，在方法中声明一个新的局部变量是更加清晰且可读的方式，因为它只能在方法中使用。更为重要的是，作为代码的读者，我不知道是开发者有意希望该参数名只是指向一个不同的值还是引入了Bug，因为将参数重新指向新的引用实际上会改变调用端的值。如果我看到有人这么写，那么我就会找代码的编写者或是通过单元测试来验证代码的意图。 　　equals(Object)与hashCode()方法的不匹配 　　虽然我认为每个Java类都应该重写toString()方法，但对于equals(Object)与hashCode()方法来说却并不这么认为。我觉得只有在需要这些方法的场合下才应该重写类中的这两个方法，因为他们的存在暗示着其设计与开发某种程度上的完全改变。特别地，equals与hashCode方法要能满足其意图与契约（位于Object类的API文档），并且需要保持一致。大多数IDE与分析工具都会在其中一个方法重写而另一个没有重写的情况下给出提示。然而，我要确保equals与hashCode使用的是相同的属性，并且在这两个方法中属性的顺序要保持一致.更多内容请关注51testing软件测试网<br /></p><img src ="http://www.cnitblog.com/shbwf/aggbug/89049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shbwf/" target="_blank">51testing</a> 2013-12-17 13:36 <a href="http://www.cnitblog.com/shbwf/articles/89049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>