大数据的测试思维与探索

随着大数据时代的跨入,对测试人员的要求又提升到了一个新高度,这个高度让一部分测试人员感到措手不及,甚至对未来产生了迷茫。

1、如何做到与时俱进

2、如何让自己成为一个优秀的测试人员

3、如何转变自己的思考方式

4、如何让技术能够有一个质的飞越

……

每一个测试人员在这个时代都应该认真思考,但仅仅思考并不能解决所有问题,如何做才是关键。

1、大数据思维

大数据,已经成为了一个时代的代名词,当今的互联网属于大数据时代。大数据时代的到来,颠覆了以往对数据的惯性思考方式。保证数据质量、软件质量、测试质量、数据利用率、数据使用场景等,都需要重新换一个角度,站在更高的高度进行全方面的思考。这种思考方式称为大数据思维,即从数据的应用场景切入,思考如何挖掘数据本身的价值,并将其转变为市场价值。

在具有大数据思维之前,需要引发对大数据定义的一个思考,到底什么才能称之为大数据?大数据具有三个维度的定义: Volume, Velocity, Variety,而字面上对于大数据的理解,简单来说就是具备很大的数据量,很大很大的数据量。这就又引出了另外一个问题:多大的数据才能算大数据呢?随着技术不断的进步,回望5年、10年前,我们曾经认为已经足够大的、以GB衡量的数据量,现在已经不能够称之为大数据了;也许用不了几年,TB、PB、EB、ZB,甚至于YB都会成为过去式。既然我们不能够在数量上对大数据进行一个定义,那么就需要从另一个角度去重新思考大数据,那就是数据思维,拥有了数据思维,便拥有了大数据的思考方式,也就拥有了大数据。

思维是思想层面的、是意识层面的,如果连思维方式都不具备,那么空有再强的技术也是无用。一切技术都是为业务服务,脱离业务的技术一文不值。这句话在大数据时代的今天,仍然适用,并且会一直适用下去。在普惠大数据中心,每天都面对着海量数据,如何去应用这些数据,如何将数据实现它应有的价值,是最重要也是最需要思考的问题点之一,只有懂得数据的应用场景与方式,才能够明白数据的重要性,才算是真正跨入大数据思维的门槛。

数据思维,直指问题核心,即解决问题的思维。在企业中,作为一名技术人员,就是围绕着解决问题而进行思考,为此必须要深入需求、了解数据建模、懂算法,一切思考都是为了解决问题,将数据实现它应有的价值。

只有真正掌握了核心思想,才能够更好、更强、更深的提高数据的使用率,因此我们不再以数据量的大小来定义大数据的含义,而是如何使用数据,这便是我们的测试思维、数据思维、质量思维、价值思维。

传统测试思维

以产品需求为最根本依据,无论测试用例的书写还是用户场景的设计全部依照固定的产品需求来进行。

示例:

传统测试在产品需求确定完毕后,那么用户使用场景已经固定。假设此次测试的产品是一个传统的电商网站业务,按照用户的使用行为我们首先要做的就是注册页面功能的测试,以黑盒用例设计模式为用例设计思想对输入框等进行功能性测试、然后进行的是性能测试以及安全测试。

大数据测试思维

以从数据的应用场景挖掘市场价值为最根本的依据,测试人员以质疑的方式针对模型进行测试,同时可以对任何数据使用方式提出合理化建议。

示例:

知识图谱项目的测试,关系创建如下:(具体关于知识图谱相关知识请参阅公众微信号中《知识图谱的应用》文章)

以上知识图谱描述的事实(Fact)是张三是李四的父亲,那么在测试过程中如果测试人员认为张三是李四的父亲(is_father_of)的关系形容并不够精准,那么我们可以提出自己认为更精准的关系描述,或者是说张三或李四是否具备单独成为一个实体的条件,(当然在提出质疑前一定是已经进行过深层次的考虑过,并且能够给出解决方案的建议,我们坚决抵制无解决方案的质疑)对一切质疑、对一切思考,让一切变的合理,在质疑与思考中不断的成长。

做好测试的前提便是需要这种思维方式,直指问题本身,站在一定高度的思考。

2、高效快速的计算

具备了数据思维、思考的高度及方式还远远不够,从技术的角度来讲,这只是实现了我们如何使用数据的功能、如何使用数据来应对企业各类需求、为企业创收的最基本要求。做到了最基本的要求之后,如何能够应对大的并发、高效的计算是之后要面临的一个重要挑战。

· 如何利用好每一块内存区域?

jvisualvm、jconsole结合底层命令等观察内存堆栈区域与类对象内存占用生命周期变化。

· 如何高效的使用cpu的计算能力?

cacti、zabbix、lepux等集群监控应用进程cpu利用率、内存、IO、网络等服务器资源以及打点计算类运行时间。

· 如何从技术以及业务角度优化我们的应用程序架构?

渗透学习业务以及扩大知识面,将业务场景与应用程序架构相结合。

· 如何利用最少的资源去提升我们代码工作的效率?

极限优化我们的程序代码,优化每一个算法,不断的向上抽象,代码模块化,以最少的代码实现我们的业务场景。

· 如何保证我们的代码质量?

CodeReview、CodeStyle、结对编程、TDD多层机制保证代码质量。

......

思考着每一个变慢的可能,思考着如何应对某一天突发的数据量暴增该采取的应对方案。

不断的思考、不断的准备、不断的进步,为现在面临的问题提供最优的解决方案,为将来可能面临的问题进行预估,做好应急方案。

一个优秀的测试人员要习惯变化、拥抱变化并且适应变化,要有危机意识与未来的规划能力,只有这样才能够在危机突然来临时,有足够的方案去选择、应对;即便是没有预估到某一类危机,也拥有了足够多的思想准备与方案准备,不至于措手不及与惊慌失措,以最少的时间成本最快地去解决问题。

3、安全

如何在错综复杂的网络环境中保障自己数据的安全性已经成为了一个世界性的课题,网站宕机、瘫痪等问题的影响范围远远不能与数据丢失对客户所造成的伤害相比,伤害客户的行为就是损害公司利益的行为。

国内知名网站被拖库的事件大大地伤害了一批用户,在这方面用户是脆弱的,被伤害了也许这辈子就再也不会回来了(当然垄断行业就不说了)。为此需要一直从安全的角度进行思考:如何做到不被拖库、一旦被拖库后黑客能够看到哪些信息;以此来保护用户以及企业的利益。

在如此开放的网络平台上,为保证安全性,所有的测试人员需要不停地扮演着各种角色,黑帽子、白帽子,不停的演练攻防,自己与自己博弈,既是攻城者又是守城者。感受着不同格式的数据流在程序中流转、提防着不同的数据可能会给应用程序带来的危害。可以伪装成身份合法的用户来进行访问(csrf身份伪装,其实我们是间谍),也可以变身成为大批量的攻击者以蛮横的方式来对网站进行访问,如同古代攻城般,进行纯力量的碰撞(ddos最野蛮的攻击模式),变换攻击手法,变换不同的身份,乐衷于此,在此中体会那一份独属于测试人员的乐趣。

不过这些手法已经属于比较大众的攻击手法,测试人员的荣誉则是探索到还未普及、周知的手法,这需要永不止步的前进和努力。

信息爆炸的社会,技术的进步也是飞速的。ddos、xss、csrf、sql注入等等攻击手法五花八门,只有不断的学习,不断的成长,不断的进步才能够保证与时俱进。

4、结语

大数据时代已经进入了高速发展的时期,这个时代对测试人员的要求与以往都有所不同,不仅仅是技术,更多的是前面提到的数据思维,只有抓住了问题核心才能够从根本上解决问题。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180106B0RPJM00?refer=cp_1026

相关快讯

扫码关注云+社区