精准测试技术十年发展漫谈 目 录 一、背景二、精准测试的定义三、精准测试技术发展四、精准测试的专利技术五、精准测试的一分一合六、精准测试体系七、商用精准测试的无损技术八、商用精准和开源精准的区别九、精准测试成熟度五级划分十、精准测试的效能提升十一、商用精准测试的规划与发展 一、 背景 精准测试技术,是这几年比较热的一个方向。从2012年这个体系开始诞生,到现在整整历经了10年的时间。中国从国外引进了很多技术,火与不火其实在国外已经决定了。本土成长起来的精准测试路线独树一帜,它不是从国外引入,是在中国的大环境下慢慢发展起来的。从寂寂无名,到软件质量技术从业者的热情被一点点的调动起来,再到被
精准测试技术十年发展漫谈 目 录 一、背景二、精准测试的定义三、精准测试技术发展四、精准测试的专利技术五、精准测试的一分一合六、精准测试体系七、商用精准测试的无损技术八、商用精准和开源精准的区别九、精准测试成熟度五级划分十、精准测试的效能提升十一、商用精准测试的规划与发展 一、 背景 精准测试技术,是这几年比较热的一个方向。从2012年这个体系开始诞生,到现在整整历经了10年的时间。中国从国外引进了很多技术,火与不火其实在国外已经决定了。本土成长起来的精准测试路线独树一帜,它不是从国外引入,是在中国的大环境下慢慢发展起来的。从寂寂无名,到软件质量技术从业者的热情被一点点的调动起来,再到被
前言近期准备面试题时,XXE漏洞防范措施(或者说修复方式)在一些文章中比较简略,故本文根据研究进行总结,作为技术漫谈罢了。简述XXE漏洞XXE(XML外部实体注入),程序解析XML数据时候,同时解析了攻击者伪造的外部实体。XML用途是为了跨平台语言传输数据,常常用于WEB开发等。XXE漏洞攻防情况通常来说,XML文档生成时会常用到XXE和内部实体。因此开发团队根据项目需求去进行防范XXE漏洞。然而实际情况是,即使采取了防范措施(错误的方法),XXE漏洞仍然可以大行其道。有一个案例,某开发团队针对CVE-2018-20318漏洞进行了及时的修复,依照的是官方的修复方案:禁止实体扩展引用,dbFa
前言近期准备面试题时,XXE漏洞防范措施(或者说修复方式)在一些文章中比较简略,故本文根据研究进行总结,作为技术漫谈罢了。简述XXE漏洞XXE(XML外部实体注入),程序解析XML数据时候,同时解析了攻击者伪造的外部实体。XML用途是为了跨平台语言传输数据,常常用于WEB开发等。XXE漏洞攻防情况通常来说,XML文档生成时会常用到XXE和内部实体。因此开发团队根据项目需求去进行防范XXE漏洞。然而实际情况是,即使采取了防范措施(错误的方法),XXE漏洞仍然可以大行其道。有一个案例,某开发团队针对CVE-2018-20318漏洞进行了及时的修复,依照的是官方的修复方案:禁止实体扩展引用,dbFa
原文链接简介对于很多人来说,ECS只是一个可以提升性能的架构,但是我觉得ECS更强大的地方在于可以降低代码复杂度。在游戏项目开发的过程中,一般会使用OOP的设计方式让GameObject处理自身的业务,然后框架去管理GameObject的集合。但是使用OOP的思想进行框架设计的难点在于一开始就要构建出一个清晰类层次结构。而且在开发过程中需要改动类层次结构的可能性非常大,越到开发后期对类层次结构的改动就会越困难。经过一段时间的开发,总会在某个时间点开始引入多重继承。实现一个又可工作、又易理解、又易维护的多重继承类层次结构的难度通常超过其得益。因此多数游戏工作室禁止或严格限制在类层次结构中使用多重
原文链接简介对于很多人来说,ECS只是一个可以提升性能的架构,但是我觉得ECS更强大的地方在于可以降低代码复杂度。在游戏项目开发的过程中,一般会使用OOP的设计方式让GameObject处理自身的业务,然后框架去管理GameObject的集合。但是使用OOP的思想进行框架设计的难点在于一开始就要构建出一个清晰类层次结构。而且在开发过程中需要改动类层次结构的可能性非常大,越到开发后期对类层次结构的改动就会越困难。经过一段时间的开发,总会在某个时间点开始引入多重继承。实现一个又可工作、又易理解、又易维护的多重继承类层次结构的难度通常超过其得益。因此多数游戏工作室禁止或严格限制在类层次结构中使用多重
客户端开发在多种生态中生存就要熟练使用各种平台的环境和语言。回顾自己的职业生涯,涉及多个平台生态以及对应的原生编程语言。最近又用起了Dart,经常在写代码的时候要想想自己是在什么平台,用什么IDE,在写什么语言。这种情况持续了一段时间之后对编程语言有了一些想法和探索的欲望,本文不拘泥于某个语言或者特性,而是从语言的发展和历史的角度聊聊这个话题。严谨起见,本文提到的“编程语言”指的是“第三代高级编程语言”。让我们从时间维度入手来聊聊编程语言。一图胜千言。我们从目前主流的编程语言中,挑选出流行的,具有历史影响力的,按时间从上往下排序,依据类型和指导思想进行聚类,根据互相的影响使用线条指向,并补充
客户端开发在多种生态中生存就要熟练使用各种平台的环境和语言。回顾自己的职业生涯,涉及多个平台生态以及对应的原生编程语言。最近又用起了Dart,经常在写代码的时候要想想自己是在什么平台,用什么IDE,在写什么语言。这种情况持续了一段时间之后对编程语言有了一些想法和探索的欲望,本文不拘泥于某个语言或者特性,而是从语言的发展和历史的角度聊聊这个话题。严谨起见,本文提到的“编程语言”指的是“第三代高级编程语言”。让我们从时间维度入手来聊聊编程语言。一图胜千言。我们从目前主流的编程语言中,挑选出流行的,具有历史影响力的,按时间从上往下排序,依据类型和指导思想进行聚类,根据互相的影响使用线条指向,并补充
最近JetpackCompose发布了Beta版本,抽时间了解了一下Compose带来的改变和其中的一些原理。本文不会讲解具体API,只是比较随意的分享自己的一些疑问以及在探寻答案过程中的一些收获。为什么要有Compose?Android已经十年多了,传统的AndroidUIToolKit有很多历史遗留问题,而有些官方也很难修改。比如View.java有三万多行代码,比如Combobox竟然叫Spinner,再比如Button继承自Textview。同时官方的一些widget修复依赖系统升级,到达用户周期过长。通过在Jetpack中添加Compose,脱离了Android系统,代码修复可以更快
最近JetpackCompose发布了Beta版本,抽时间了解了一下Compose带来的改变和其中的一些原理。本文不会讲解具体API,只是比较随意的分享自己的一些疑问以及在探寻答案过程中的一些收获。为什么要有Compose?Android已经十年多了,传统的AndroidUIToolKit有很多历史遗留问题,而有些官方也很难修改。比如View.java有三万多行代码,比如Combobox竟然叫Spinner,再比如Button继承自Textview。同时官方的一些widget修复依赖系统升级,到达用户周期过长。通过在Jetpack中添加Compose,脱离了Android系统,代码修复可以更快