此文档是因同学们和同行们的要求,根据我(周震漪)2018年5月3日20点在 【互联网测开社群线上分享会第一期】群内与大家一起分享的主题“ISTQB®/CSTQB®的前世今生”的录音整理编辑而成。
欢迎大家在保持内容正确的前提下转载。
活动组织者:王斌
分享者和作者:周震漪(ZHOU Zhenyi)
【1】大家好,我叫周震漪(ZHOU Zhenyi)。首先要感谢这次活动的组织者王总(王斌)为我们大家提供了这么好的一个平台,大家才有这个机会,在这个平台交流一些专业、技术上的问题和共享经验、也可讨论一些大家感兴趣的话题。这次也是一个尝试,我也是在前几天在网上与王斌聊天,被他分配了这个任务,不过我们都觉得这是个不错的一个想法、也是有价值的活动。我今天晚上跟大家分享的主题就是刚才王总(王斌)所提的“ISTQB/CSTQB的前世今生!”。
【2】今天讲的主要有五个方面的内容:
第一部分,我是谁何许人也?
第二部分,介绍一下ISTQB/CSTQB,因为整个ISTQB是我回国后参与引入的,所以可能比大家了解的更多也更早些。
第三部分,给大家介绍一下ISTQB的知识体系,目的是让大家能够更好的了解一下ISTQB能够给我们带来什么?他的亮点是什么?
第四部分,重点给大家介绍一下在ISTQB整个知识体系的基础级部分,这部分也是整个体系的基础,我们所说的高楼大厦平地起。如何从平地来建造大厦,这个平地的基础对整个大厦非常重要,会给大家从几个方面,几个关键要素来讲解。
最后一部分,是跟大家一起来探讨如何有效和高效地进行测试。
【3】第一部分:我是谁? 我叫周震漪(ZHOU Zhenyi),上图的照片距今已有近10年了。今天在此的很多同学和同行们都认识我,我也看了一下此群内的名单,有很多老熟人,可能因为我在ISTQB/CSTQB已经工作了十多年了,而且也发现今天在我们的这个群里潜伏了很多测试专家、很多都是非常资深测试老兵。另外,今天还有一部分是从高校来的,所以这也给我造成了很大的压力,到时候还请这些老兵们,在最后的提问和回答问题环节上帮帮我,帮我一起回答大家所提的问题。
【4】这是我的个人小广告了,有我的电话、微信和邮箱信息等。主要目的是大家在学习ISTQB和工作过程中,如遇到困难或碰到问题,或者有什么好的建议、想法、经验,我们可以一起来探讨和交流,一起学习一起进步。另外,我的微信里经常会发布一些ISTQB/CSTQB和我公司的活动信息,大家如有兴趣和有时间,也可选择参加。从我的微信也可获得很多与软件测试、与软件质量保障有关的信息,相信很多同学可能会感兴趣。
【5】接下来给大家介绍一下ISTQB和CSTQB,有很多同学都在问,它们之间有什么区别?是什么关系?它们只是第一个字母有区别,I是国际的,C是中国的,ISTQB是国际软件测试资质认证委员会,而CSTQB则是ISTQB在中国(包括港台澳和任何属于中国的地方)的唯一分会机构,我也是CSTQB的主要发起人之一,也一直为CSTQB工作了十多年,主要负责管理、专家工作组、所有工作件的质量把关等。
ISTQB是个非盈利性的组织,成立于2002年,注册在比利时。ISTQB里的专家都是自愿在为全球的软件测试事业奉献。ISTQB的资料(包括大纲、模拟题、学习资料、调研报告等)都可供大家免费在网上下载,为个人的学习和工作所用。如果大家觉得更愿意看中文资料,觉得中文资料更容易理解,则可以从我们CSTQB网站上下载相关本地化的文档,同样也是免费供个人学习和工作使用。这里也要感谢我们CSTQB的专家工作组成员的辛勤劳动。另外,ISTQB这套体系是与国际标准和规范紧密相连的。例如,我们的ISO 29119 就是专门为软件测试所制定的标准,这个标准的制定者或编写者很多都是ISTQB的专家成员,我们中国CSTQB的专家组成员陈耿先生也参与了29119的编写工作(MBT部分),我发现他今天也潜伏在我们群内。另外,TMMi 测试成熟度模型集成,它是一个比较著名的测试过程改进方法,在TMMi说明中强调了所有术语都是继承了ISTQB的术语,要成为TMMi专家或评估师就必须掌握和获得ISTQB至少基础级认证。又如,在ISTQB内所讲述的质量也是与ISO 9126(现被 ISO 25010 替代)质量模型保持一致。又例如,汽车控制软件测试常会用到的标准ISO 26262,据说也在对软件测试部分重新计划由ISTQB专家们进行改写。也就是说,我们在学习这套体系过程中已经“不知不觉”在与国际标准和规范接轨了。
这里,ISTQB也仅仅只是收集、整理、完善并系统化测试领域的知识。这些知识是我们全人类所共有的,不是说ISTQB创建了这些知识,ISTQB只是创建了学习和考核体系。所以不管我们认可或排斥,它都在那里,不会影响它被全球的软件测试工程师们所普遍接受。
我们不仅可以从这些知识库里吸取养分,让我们能站在巨人的肩膀上,使我们的软件测试更专业。并且在这个基础上要有我们自己的创新,能够对ISTQB,对全球的知识库贡献我们的内容,我们的智慧,让世界能听到我们中国的声音。
另外。对我们中国软件测试人员来说,现在正是一个非常好的时期,为软件测试业的发展提供了很好的环境。首先,国家重新提倡“脱虚向实”,倡导脚踏实地摞起袖子干的实干精神。另外,国家也强调了要从“数量大国”向“质量大国”转变,质量强则国家强。只要中国按照这个政策发展,那么在中国,软件测试以及软件质量保障就不会“死”。相反,软件质量保障和软件测试会越来越被重视。
【6】上图中可以看出,ISTQB在全球范围已经做的非常成功,已经真正体现出了国际化。大家可以看到这张全球地图中的深蓝色的地方都是认可ISTQB,把ISTQB作为考核软件测试人员的标准,这些深蓝色的国家已经达到一百一十七个国家,ISTQB在全球有57个分会,中国也是其中之一。假如你已经获得这张证书,也就是说在这一百一十七个国家内都是认可的,承认这一张证书。在全球已经有七十多万的人员通过了认证。我们中国截止2017年五月份的数据统计是已经达到了一万两千多人。
【7】有很多同学会问,我不学ISTQB不是也挺好吗?甚至有同学说,我们不懂测试技术不是也测试的挺不错吗?这里的问题是,我们学了这套体系后能给我们带来什么价值?能在哪些地方帮助到我们?这也是我们很多同学所关注的。
有些同学已经对ISTQB已有所了解,觉得这个认证(考试)很严格,而且价格也很贵,内容也很广,那么他就更想要了解为什么。
ISTQB有很多的亮点,由于时间关系只能简单讲一下。一个是它的独立性,ISTQB不受任何国家和政府、团体、大公司和宗教的操控。这在ISTQB章程中有明确规定。二是ISTQB和它的这张证书是国际化的,刚才已经看到了有一百一十七个国家认可这张证书。另外,它的知识体系同样也是国际化的,刚才也讲到了,它跟国际上的很多标准规范都是非常吻合,基本都是保持了一致。今天也有很多高校的老师在场,我们也希望能更好的与高校、职业学校、专业的培训机构合作,我们能够提供完整的理论体系,也能够提供和帮助建设有效的测试实验室。假如有兴趣,可以加我私聊。
【8】我们知道和了解了一些有关ISTQB最基本信息后可能面临另外一个问题,为什么ISTQB会成功?它的含金量和价值是什么?同样由于时间关系,我就从ISTQB的知识体系入手来给大家简单的阐述。大家可以看到图8,在这个PPT里最下面一层是整个体系的基础(基础级),高楼大厦平地起,红圈里面就是ISTQB的基础级。这个基础级对整个体系来说是非常重要,主要体现在如下几方面:
在基础级使用全球统一的术语和大纲,建立正确的软件测试和质量保障的理念,正确理解软件测试的概念。有了这些,你就可以有效地与同行们进行沟通和交流,不至于鸡鸭对话各说各的,说了大半天相互都无法正确理解。在一些合作项目中,特别是国际合作中,大家可以想象,如果连术语、概念、理念都不统一,又如何能保障我们软件产品的质量?
下面我们一起看一下ISTQB 基础级的内容。
【9】我们来看看这个作为ISTQB基础的基础级模块内容。假如谁说,这个基础级很高大上,包含很多新技术和新方法,也有很多新的理念,那他肯定是在瞎掰、肯定是在吹牛。在基础级仅仅只是如前所说的统一术语、统一理念和统一概念。另外,他就像是一根珍珠项链的穿线,把我们在工作中所需的这些知识和重要点当作珍珠被串连到一起,变成一串漂亮的珍珠项链,成了一个较完整体系。
很多人学了ISTQB的基础级后感慨,哎呀,现在让我一下子觉得眼前一亮,以前很多没搞清楚的问题,现在都清晰了,以前经常只是在为工作而工作,但现在学了ISTQB的基础级以后,对整个测试体系有所了解,也觉得有意义了。我们都理直气壮地说我们是软件测试工程师,相信很多同学与我一样在接触ISTQB前对自己作为一名合格的专业软件测试工程师或软件质量保障人员总有些心虚,缺少很多知识和认知。其实,ISTQB的基础级就是在帮我们还账,补上了以前应该掌握的内容。正确的理念和概念、测试与开发的关系、测试的全生命周期(组件测试、集成测试、系统测试、验收测试、维护测试)、测试的基本过程;测试技术,包括黑盒、白盒、基于经验、基于缺陷等;测试类型包括功能测试、动态测试、静态测试(静态分析、评审)等;还有测试管理,包括风险管理、缺陷管理、度量等,最后还介绍了测试过程中可能使用的工具内容。这里,正确的理念和概念、统一的术语是基础,测试技术又是保障我们有效测试的条件,而有效的测试管理是我们进行高效测试的保障。
今天有很多测试老兵在,看一眼都知道,没有什么新的内容,都是些经典的东西,但整个系统确实是非常好的体系,能把这些东西都串成了一个较完整的知识体系,这已经是非常伟大,非常了不起。
【10】大家看到这张图觉得很有趣,这是ISTQB基础级的宣传图。它是告诉我们,基础级仅仅只是个开始,把你引入了测试大门。如果大家有兴趣,以后可以组织线下的学习交流。今天,这次活动的组织者王总(王斌)要我趁这个机会能给大家讲讲成功的故事。当然,成功的故事很多,我就讲一个我遇到的、对我来说很有意义一个故事:
这是一个真实的故事,发生在中国南方的一家较著名的日资企业(不在上海)。约在一年前,我去给这家日企做ISTQB的基础级企业内部培训,当时给我印象比较深刻的就是学员大部分都是女孩,而且学生们在大学所学的专业也是五花八门,尽管都已经做过多年的测试工作,但还是对软件测试基础知识知道的不多,培训过程中她们的学习相当努力,尽管这样,还是有个别人考试不及格,后来补考通过了,这不是故事的关键。关键是去年又要我们去给他们做高级的ISTQB培训,是高级的测试分析师(TA)和高级的测试经理(TM)模块的培训。高级的TA又是我在去年年底去他们公司做的企业内训,TM安排在今年(还没去做)。当时给我感觉有些奇怪,一是ISTQB高级的内训本来就不多,而且日企也不是太景气,可他们一下就订了二场高级内训。所以去年年底的培训期间,他们请我吃饭时我就直接提出了这个问题,他们的部长停顿一刻后告诉了我如下一件事。
事情还是从日本总部的领导来电说起,那是在这家日企的ISTQB基础级内部培训结束后,这家日资企业的本地中国领导接到了日本总部领导的来电,来电问起在中国的日资企业是否有变化,中国日企领导说没有变化啊。接着日本总部的领导又问起,中国日企测试部是否有变化?中国日企领导觉得有些奇怪,但还只能回答说也没有变化。然后日本总部领导单刀直入地说道:不应该啊,以前你们测试部做测试的执行,都是被动的去执行,也不懂测试的技术和方法,我们总部如何写测试用例,你们就如何去执行。可近期,经常有你们的反馈,指出我们测试用例的错误,以及还提出很多改进的建议。发现你们测试团队的技术大有长进。听到这里,当地领导脸上抽筋的肌肉才放松了下来,并告诉了日本总部的领导,他们以前确实只是按日本设计的测试用例执行,执行后将结果和一些疑难杂症都反馈给日本总部,由他们分析并确认,但是这样的话,还是会有很多问题,测试工程师的积极性不高、对自己测试的任务不知道具体如何而来?为什么这么做?更谈不上去发现问题和完善,而且还经常会因此而出错。中国日企领导在日本时听日本的测试工程师提起过ISTQB,所以回国后就找到了ISTQB在中国的分部CSTQB,并邀请滔瑞公司(我)给他们做了一期基础级的培训,当时也是抱着试试看的态度,没想到还真有效果。
最后与我一起吃饭的部长说道,所以我们的领导才会很慷慨地决定,继续ISTQB的高级培训,因为这个培训确实给他们带来了价值。
【11】刚才我们已经大概了解了基础级的内容,实际上,前面的图【9】上显现的内容只到今年年底为止,计划中在今年(2018年)年底会做较大调整,同时也会给CSTQB带来巨大的工作量,例如修改后大纲的本地化、所有考题的修改(模拟题和真题)、教材和讲义的调整和修改。这也是组织者要我讲讲以后的变化的一部分,这个调整已经进入了Beta版,新内容也更契合现在的实际情况、更完善。新大纲做了如下的调整:
第一,减少了第5章测试管理的内容,更多内容会转移到高级测试经理模块。第二,增加了第3章里的评审内容,减少了静态分析的内容,更多静态分析的内容转移到高级技术测试分析师(TTA)模块。第三,在第4章测试技术内容中,增加了测试技术的内容,但是减少了白盒测试的内容,这对看到白盒测试有恐惧感的同学是个好消息,更多的白盒测试内容转移至高级技术测试分析师(TTA)模块。第四,增加了敏捷测试的内容。
另外,在即将发布的新ISTQB基础级大纲中广泛使用 ISO/IEC/IEEE 29119国际标准,以及使用ISO/IEC 25010 来替代老的标准ISO 9126,这也体现了新大纲的与时俱进。
【12】 现在我们又回到了ISTQB知识体系,高楼大厦平地起,这个知识体系都是从基础级开始,然后我们可以走经典的路线(中间一栏),从ISTQB基础级(FL)到高级(高级测试经理TM、高级测试分析师TA、高级技术测试分析师TTA),再到专家级(EL)。在高级模块内经常有同学会问,这三个模块(TM、TA、TTA)有什么区别?其实,高级测试经理模块比较容易理解,主要讨论测试管理的那些事、技术和方法,也是三个模块中内容最多的一个。剩下的是与测试技术有关的,但测试技术所涉及的内容实在太多,只能把他们分成了二大块(TA和TTA),TA主要包含了黑盒测试技术内容,包含了功能测试内容(不包含安全性测试)以及属于非功能测试的易用性测试。而TTA主要包含了白盒测试内容,基于质量属性的测试(非功能测试,不包含易用性,但包含安全性测试),另外还包含了静态分析。这里可以看出,作为测试分析师(TA)更靠近用户,而作为技术测试分析师(TTA)更靠近开发人员。
在知识体系的左边是敏捷测试,敏捷是个很好的东西,我也非常赞同敏捷的理念,但敏捷也要保障敏捷开发的软件产品的质量,软件产品也还需要后期的维护,我们坚决反对把敏捷作为降低软件产品质量以及后期难以维护的托词。这里,ISTQB所做的是与敏捷开发人员和客户/用户一起来保障敏捷产品的质量。在敏捷测试基础级强调的是敏捷的一些基础知识以及要注意的内容,到了敏捷测试高级模块里,主要讨论如何从组织层面和技术层面保障敏捷开发的软件产品质量。
在知识体系的右边是ISTQB与专业或领域有关的测试,在不远的未来我们会有很多的模块供大家学习,也可在工作过程中作为参考。例如,安全性测试,又如测试自动化、易用性测试,易用性测试这是我一直非常感兴趣,也是非常重要又容易被忽略的测试。还有基于模型的测试(MBT),今天好像陈耿也在群内,他是CSTQB这个模块的专家工作组组长。又例如,汽车控制软件的测试、移动应用测试等。这些内容构成了ISTQB专业或领域有关的测试模块,它告诉我们,在这些方面如何有效和高效地进行测试,要注意些什么。我也希望能有更多同学参与我们CSTQB工作组的工作,为中国的软件测试事业贡献一份力量。更希望能通过ISTQB向全世界发出中国的声音。
【13】这是一张统计表,统计了七十多个国家的三千多名测试工程师们的反馈。没有夸张,而且是非常中性,也是很符合实际情况。这里涉及如下的问题反馈:ISTQB对我来说是有价值的?ISTQB是我引以为骄傲的?ISTQB在我找工作或升职中有帮助?ISTQB学习和认证是一件值得做的事?与我现在怎样进行测试没有任何关系?可以发现,ISTQB不能解决所有问题,但是对有效和高效的测试确实起到重要作用。
【14】最后一张PPT讨论的内容是如何有效和高效进行测试。我们测试的内容实在太多了,今天还在与同学讨论,当我们还没进入软件测试领域时,总觉得软件测试很容易、很简单,不就是敲敲键盘吗,不就是去执行测试用例吗。但是一旦进入到测试领域后,大呼上当,马上会发现这个软件测试领域的水太深,测试人不仅要懂得IT的基本知识,例如,要搭建测试环境、使用各种测试相关的工具(例如,缺陷管理工具、测试分析工具)等等。还要掌握测试技术和方法,了解测试的最佳实践。大家不要以为自己已经掌握了一种两种测试技术就可以啦。实际上,这是一个非常错误的概念,每一种测试技术或方法都只能在某个方面帮助到我们,每一种技术和方法也有其局限性。例如,等价类划分和边界值方法,它们仅仅只是在帮助我们选择测试输入数据。但我们的测试很多情况下还要考虑逻辑关系、逻辑的组合、数目巨大的配置、状态、状态转换、路径等等。而且任何一种技术或方法也只能发现这一种方法所能发现的问题类型。你要保障软件产品的质量,你就要去掌握更多的技术和方法,才能发现更多的问题。另外。就算使用这种方法,你是否能很好地使用这种方法?或者用到了极致(达到100%覆盖)?这又是一个大大的问号。我们开发了很多很多的测试用例,但是这些测试用例是否真的有用吗?不是冗余的?你是否真的检查过了?如果没有方法论,没有理论的指导,也许你的测试项目也能完成,也许你的测试对象也没有出现问题。但我们只能说,那只是你的运气不错!而且你走不远飞不高。在保障有效测试的基础上,我们还要考虑高效,这就涉及测试过程改进和有效管理。
当我们的测试项目具有一定的规模和复杂度时,测试项目的最大瓶颈和最大问题可能就在测试管理上,如何有效的管理,测试过程、测试的度量、模型、工具、风险等。这就提出了一个更高的要求,我们的测试过程如何有效的进行改进?这又是一个很大的课题。另外你会发现,在测试过程当中所发现的问题有百分之八十左右都是与需求有关。假如我们的需求都是一塌糊涂,那我们的测试在干什么?你会发现你在做无用功!这些都是跟我们的测试质量密切关联的。所以我们说,要进行有效的,并且在有效的基础上进行高效的测试不是那么容易的事。我们需要不断的去学习,不断的去进行探索。所以,今天我也非常高兴能够跟大家一起交流和学习。以后也请我们的组织方王总(王斌)能经常组织这些活动,给我们提供更多的学习和交流机会。
今天,我分享的内容就到这里结束了,接下来是我们的“问和答”阶段。另外,申请一下啊,在这个群里面有很多测试老兵们,也帮我一起回答同学们提出的问题。
【15】好,谢谢大家,我的这个分享内容就到此结束了。
大家有什么问题,尽管提。我不一定能回答所有的问题,假如回答不出的话,我也会去学习。假如回答不出的话,也希望其他的同学一起来讨论、一起来回答。再次谢谢大家!