做大数据测试过程中遇到的那些问题

发表于:2017-11-28 15:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing    来源:51Testing软件测试网采编

  问1:软件测试和Java大数据哪个更好?
  答:1、软件测试工作即为测试人员,所需要做的就是将程序员写出的程序进行各种测试案例的测试,流程测试、自动化测试都是测试人员应该掌握的技能
  2、Java大数据,感觉对于没有3-5年工作经验的人来说的话属于谈空话了,这个设计的技能比较高深,而且得根据实际需求来进行分析与制定相应的开发策略
  请问什么是大数据测试和疲劳强度测试?
  大数量测试,其实就是用大批量数据来进行测试,我们需要用一定的脚本代码或者是工具,帮我们生成大量可用的测试数据。比如说:编写sql脚本(存储过程)在数据库端直接生成、编写程序代码生成(实际上也是要写sql)、使用批量数据生成工具(DataFactory、PL/SQL Developer、TOAD等都可以)、使用工具录制业务参数化之后长时间运行来生成。举个例子:你需要测试一个注册功能,需要提供手机号码以及注册名以及密码,那么你如果要做大数据量测试,要提前准备好很多有效的手机号以及注册名、密码,最少是百万级数据。这个我们柠檬班有专门讲百万测试数据的公开课,欢迎关注!专门教大家如何去准备大批量的测试数据。 疲劳强度测试隶属于压力测试范畴,指的的是服务器在长时间下持续接受大批量的用户请求操作。这个设计到软件和服务器的稳定性。
  问2:大数据技术APP测试上面如何应用?
  答:都说现在是大数据时代,各行各业在运用大数据上获得效率提升或者精确度提升,可是测试仿佛还是老样子,在APP测试行业有没有我不了解的大数据应用呢。
  数据获取手段、数据处理技术的改进导致"大数据"爆发。测试行业对于大数据的应用也是很多的,比如TestBird在做测试时是基于大量的数据基础的,对于测试的分析和bug探索效果都能有很大的提升。
  当然,在测试技术上,也有很好的大数据运用例子。比如你可以通过大数据统计点来写测试用例。产品需要快速迭代,又要保证版本质量不下降,就必须做到精准测试的用例精简。
  也就是统计用户行为预埋下的点,用户使用次数的数据稳健并且有迹可循,测试路径就非常的清晰明朗。
  问3:如何快速建立自己的大数据库进行大数据测试?
  答:数据的建立不是短时间内就能完成的,它需要一个长期的数据积累、沉淀、分析等形成一个庞大的数据库,它是一个很大的概念。
  问4:Hibernate进行大数据量性能怎么测试?
  答:在项目中使用Hibernate进行大数据量的性能测试,有一些总结,
  1) 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。
  2) 对大数据量查询时,慎用list()或者iterator()返回查询结果,
  1. 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。
  2. 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时,Hibernate才调用查询将对应的对象初始化,对于大数据量时,每调用一次查询都会花费较多的时间。当结果集较大,但是含有较大量相同的数据,或者结果集不是全部都会使用时,使用iterator()才有优势。
  3. 对于大数据量,使用qry.scroll()可以得到较好的处理速度以及性能。而且直接对结果集向前向后滚动。
  3) 对于关联操作,Hibernate虽然可以表达复杂的数据关系,但请慎用,使数据关系较为简单时会得到较好的效率,特别是较深层次的关联时,性能会很差。
  4) 对含有关联的PO(持久化对象)时,若default-cascade="all"或者 "save-update",新增PO时,请注意对PO中的集合的赋值操作,因为有可能使得多执行一次update操作。
  5) 在一对多、多对一的关系中,使用延迟加载机制,会使不少的对象在使用时方会初始化,这样可使得节省内存空间以及减少的负荷,而且若PO中的集合没有被使用时,就可减少互数据库的交互从而减少处理时间。
  什么叫n+1次select查询问题?
  在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录
  问6:如何利用大数据进行网络攻击检测?
  答:这个要搭建相应的检测系统,当然也要和相应的大数据服务商对接,需要有算法的计算等等
  问7:请问针对OJ上的大数据测试,求大神给测例?
  答:请问针对OJ上的大数据测试,求大神给测例? 测例希望全面,离奇……
  对于菜鸟,该如何检查代码错误呢?
  特别是逻辑错误,能通过题目和自己的小测例,但是不能通过大数据测试。
  可以在网上寻找标准程序(一般都会有),如果没有的话写一个可以确保正确的暴力代码,然后写一个随机生成数据的程序,用一个bat文件,不断的造小数据让自己的代码和标算(暴力)跑,校对答案。(以上方法俗称对拍)
  bat 文件如下
  :1
  make_data
  a
  a_
  fc a.out a_.out
  if errorlevel==1 pause
  goto 1
  a为你的程序的名称,a_为标算或暴力,fc如果不能使用可以去C盘里找出来,然后放到程序边上。
  由于数据是随机生成的,所以如果代码有明显的漏洞,很容易就拍出来(尤其是一些细节上的问题),当然也有代码在随机数据的情况下表现的非常好,但是会被构造的数据卡掉,可以尝试构造极端的数据来进行测试。
  总的来说对拍对的代码不一定就是正确的,遇到错误时最好还是先再理一遍自己的思路,跟着自己的代码走一遍,确认思路没有错之后再使用对拍。
  问8:大数据测试(测试人员)的书籍或博客推荐?
  最近几年大数据技术比如hive,spark很热门,相关的技术介绍和数据分析的书籍也很多。但是作为一名互联网测试从业者,自己目前几乎没有看到过相关的测试技术书籍(测试人员)。下份工作想往这方面发展,不知道大家有没有相关的书籍或者博客推荐。有没有相关从业人员能分享一下关于大数据测试的方法框架或学习思路,感激不尽。
  答:大数据分析其实没有那么玄乎,对于测试来说你可以这样分解一下。首先大数据分析=一个计算器,只不过可能是一个性能功能很强大的计算器;如果把计算器视作黑盒,那么你可以沿用构造输入,验证输出的模式来制作测试用例。但输入部分如何构造海量数据,如何随机插值这就需要你自己研究了。其次如果我们关注计算器本身,那么涉及到的一般就是性能测试。所以目前好像并没有在大数据分析上分化出一个独立的测试分支。
  一般来说大数据领域并没有说对应传统软件开发那样的测试岗位,或者相关的职能。如果说框架测试,或者部分分布式存储的读写测试,其实一般的大数据平台开发工程师来胜任,来做框架的初期选型调研,或者一些分布式文件系统的读写性能测试等等。总的来说,这个模块相对较少相关的需求,即使有,偏集群运维的数据开发工程师也是可以做的,所以应该是没有专门的测试岗位的。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号