导语:这是一位工作于世界上最伟大软件公司的软件测试工程师,他拥有一流的软件测试技术,曾多次在微软美国总部的工程卓越( Engineering Excellence)和工程论坛(Engineering Forum) 做技术演讲,同时也被微软全球技术大会(TechED 2010、 2011)、中国软件技术大会和ChinaTest 2012软件测试大会特邀做讲师或评委。为此CSDN记者对这位技术大牛进行了专访并发表成文,希望大家看完后,尤其是开发者和产品经理能对软件测试有个全新的了解,同时也能认识到软件测试对研发的重要性。转自项目管理者联盟
Bill Liu,现任职于微软美国总部Windows Azure部门,主管身份验证管理、网络负载均衡和域名服务等模块的测试和质量管理的工作。 之前工作在服务器和工具部门,负责微软中小型企业解决方案的产品测试和努力提高测试工具及测试平台的易用性和有效性。对软件测试、质量控制和流程管理以及测试自动化有着深刻理解,为多个大中型企业提供敏捷测试和测试自动化实战培训和咨询,并受邀与多个企业和高校做技术交流, 编有《详解微软Windows Azure云计算平台》一书。项目经理圈子
我愿化身沟通之桥项目管理者联盟
提问:请和大家介绍下你及所从事的工作。PgMp.mypm.net
Bill Liu:首先感谢CSDN安排这次专访,提供这么一个宝贵的机会和国内的朋友交流。我是Bill,目前在微软美国总部Windows Azure部门负责管理软件测试和质量管理工作。我负责的工作包括网络基础架构、网络负载均衡、域名服务以及身份验证和管理。项目管理论坛
在此之前是在服务器和工具部门,负责微软中小型企业解决方案的产品测试和提高测试工具以及测试平台的易用性和有效性。而在加入微软之前,我是在俄克拉荷马大学学习并获得计算机硕士学位,本科则在国内南开大学获计算机学士,毕业后在南京软件公司做过几年系统集成软件开发工作。
提问:根据介绍你毕业一开始是在国内软件公司做系统集成软件,是什么原因促使你加入到出国留学大潮中?在国外工作这么久了,你认为美国公司和中国公司最大的不同在哪?转自项目管理者联盟
Bill Liu:其实当时原因很简单,就是想尝试不同的人生经历。毕业后在国内软件公司工作的几年时间,虽然工作比较稳定也还不错,但静下来时总感觉有点迷茫,不知道自己未来在哪?未来的五年,十年又会向哪里发展?而那个时候,周围又有几个朋友在办理出国,于是很自然地就加入了他们的行列。项目管理者联盟
我觉得就软件公司来说,个人感受比较深的是美国公司总的来说更看重对员工的培养。比如微软有非常完善和成熟的员工帮助成长体系,包括培训、职业发展规划和路径。其实很多美国公司都认为员工只有成长,公司才能持续发展,这让员工真实感受到“员工是公司最大的财富”。另外他们也非常看重个人技术能力,通过技术来赢得别人尊重,通过技术来管理和领导下属。bbs.mypm.net
提问:你经常奔波于中美两地做技术交流,实际上你也比较忙,为什么这么喜欢做技术分享?希望借此带来什么?bbs.mypm.net
Bill Liu:我记得在2010年首次回国参加在北京举办的微软全球技术大会,介绍微软云计算产品和技术。演讲结束后很多人围着我问更多的问题,他们中很多人实际上有较深的了解,但是感觉很多人的技术和知识普遍比较“死”或呆板。我回美国后也继续在和国内的人交流,同时我也想明白很多:其实国内很多技术并不落后,因为互联网的原因,他们很容易获得相关知识,不像以前那样信息闭塞。但他们的获得渠道基本上是文章、书籍、博客或微博,缺少面对面的交流。要知道光看别人的文章只能看到写出来的东西,文章背后的东西却看不到,很容易造成知其然不知所以然。所以就开始做起技术交流,希望自己可以在云计算和软件测试方面成为中美之间的一座桥梁,通过面对面的交流,不仅诠释和分享技术,更重要的是传递技术背后的思想,文化和背景。项目管理者联盟
提问:你和方国伟共同编写了《详解Windows Azure云计算平台》一书,在这本书中,你都做了哪些贡献?在编写过程中有什么难忘的回忆吗?项目管理者联盟
Bill Liu:这本书是国内第一本全面介绍windows Azure的专业书籍。我和方国伟起初并不认识,当时我们都打算写一本有关Windows Azure的书籍,我们在联系出版社的时候被电子工业出版社的编辑牵上了线。于是我们从头开始考虑、策划、组织、编写和审阅该书,我编写了这本书约40%的内容。bbs.mypm.net
写书的感觉是“痛并快乐着”。我写作功底较差,以前从来没想过会写书。写作基本上是在晚上和周末进行的,中间几度想放弃,但是想到国内极缺一本全面和系统介绍Azure的书籍,也就咬牙坚持下来。另外写作过程中为了保证质量,确保技术的精确性和书籍的可读性,我们经常交换草稿,把自己当读者,然后从读者角度提出修改意见。项目管理者联盟
隔离技术让Windows Azure足够安全项目管理者联盟
提问:Windows Azure在全球部署了多少个数据中心?微软是如何屏蔽不同账户的信息和资源使用互不泄露和冲突?项目经理博客
Bill Liu:Azure在全球共有8个数据中心,其中美国有4个,欧洲两个,亚洲两个。之所以是两个:一是为了负载均衡;二是为了互相备份。项目管理者联盟
微软是如何屏蔽不同账户的信息和资源使用互不泄露和冲突,这个问题问的非常好。很多用户在使用云计算之前,就担忧他们的数据是否安全?用户共享资源是否会互相受影响?其实微软在这方面做了很多工作,来确保用户安全并且共享之间不受影响。这主要使用隔离技术,包括物理隔离和逻辑隔离。物理隔离是指不同用户的数据和应用运行在不同机器和数据库中,使得彼此不可以访问也互不干扰。逻辑隔离使用更为普遍,虽然不同用户与数据运行和保存在同一台机器及数据库里,但是运用了用户标识符把彼此很好的分隔开来。另外还有节流技术——根据用户的配置来分配相应大小资源,比如CPU内核数量、内存大小和网络带宽等,如果用户实际使用量达到预定值,系统就会对其节流,从而保证一个用户不会耗尽系统所有资源,而不影响其他用户正常使用。www.mypm.net
提问:能不能简单介绍下云计算常用应用设计有哪些?项目管理者联盟
Bill Liu:云计算给广大架构师和开发人员带来了新的挑战。根据应用服务的具体特征,常用的设计架构有软件+服务,也就是把应用架构成基于服务的模型,还有异步松耦合,也就是把复杂应用服务模块化,模块之间使用异步通信,这种架构使得每个模块可以独立弹性伸缩,从而充分利用云计算所提供的优势。另外容错也是架构云计算应用时必须要考虑的一方面,使得应用服务有能力处理系统错误。项目管理者联盟
优秀软件测试工程师修炼之道项目管理者联盟
提问:如何做一名优秀的软件测试工程师?他至少具备哪些技术能力?bbs.mypm.net
Bill Liu:软件测试工程师首先是一个软件工程师,也就是说他必须具备软件工程师的基本技术能力,比如对计算机结构系统(硬件,操作系统,内存,网络等)基本了解,再有就是算法数据结构,以及开发编程能力,最后就是对所工作领域的技术掌握。有了这些基本技术后,下面要掌握一些测试技术,比如黑盒白盒、等价类、边界值、功能测试、性能压力测试和安全性测试等。除了必须懂得技术硬技能外,要想成为一名优秀的软件测试工程师还必须有很强的软技能,这包括对产品质量的热情和沟通协调能力等。其中对产品质量的热情和专注尤为重要,因为兴趣是最好的老师,只有对所做的工作充满热情,你才会从平庸变成卓越。blog.mypm.net
提问:怎么才能进行有效地探索性测试?另外很多优秀的软件测试工程师都能敏锐地嗅到bug,你认为如何训练这方面能力?项目管理者联盟
Bill Liu:探索性测试不仅需要对产品熟悉,还需要掌握开发产品采用的技术,最后就是自己经验的积累,这三者缺少一个都很容易把探索性测试变成漫无目的的测试。因为探索性测试是边运行测试、边了解产品和边设计新的测试。它根据当前测试步骤产生的结果,加以分析判断,然后使用策略决定下一步会最有可能发现产品中的bug。我曾写过一篇介绍探索性测试的文章,那里面用猜数字的游戏来解释探索性测试,猜数字的第二步也就是根据第一步猜的结果,来决定猜下一个数字所使用的策略非常重要。没有好的策略就会变成乱猜,而策略就需要你对游戏的规则、数字的特征以及二叉树查找等知识的积累和掌握。pmp.mypm.net
|