null是一个非常非常特殊的类型,对于每一个测试人员都要十分小心null的存在的可能性.同时null也让很多RD头疼,甚至连Java的设计者都成人null是一个设计失误.这篇文章,测者想聊聊这个让很多人不喜欢的null. null 到底是怎样的存在 在Java中有基本类型和引用类型,但是null却不属于上述两种,我们即不能声明一个变量为null类型,也不能将变量转换为null.null的引用是唯一一种null正确的表达方式.但是null却可以转换成任何一种引用类型. public class M…
测者的测试技术手册:AI的自动化单元测试 谈新技术:AI的自动化单元测试    …
Java的Override和OverloadOverride重写:子类对父类的允许访问的方法实现过程重新编写,但是 不可改变返回值和入参.重弄写的规则: 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么 在子类中重写该方法就不能声明为protected. 父类的成员方法只能被它的子类重写. 声明为final的方法不能被重写. 声明为static的方法不能被重写,但…
java中有一个返回子列表的方法: public list<E> subList(int fromIndex, int toIndex){       subListRangeCheck(fromIndex, toIndex,size);       return new SubList(this , 0, fromIndex, toIndex); } 返回一个fromIndex为起点,toIndex为终点(不包含终点)的子列表.从上实现代码中可以看到,先检查一下单签的fromIndex和to…
揭开java method的一个秘密:巨型函数 相信,很多人都不知道Java的Method的上限为64K.本文将超过这个上限的函数叫做巨型函数. 巨型函数的问题 1.如果代码超过了这个限制,Java编译器就报"Code too large to complier"的错误. 2.代码并没有超过64K的限制,但是在运行时由于其他工具或者library使得对应的代码超过了64K的限制,那么Java会给我们一个java.lang.VerifyError的错误. 巨型函数是怎么来的 如下一些仅仅…
问题 最近在不断地学习和探索EvoSuite框架的时候,在生产JUnit单元测试框架后,出现如下问题: Exception: Caused by: org.evosuite.runtime.TooManyResourcesException: Loop has been executed more times than the allowed 10000 at org.evosuite.runtime.LoopCounter.checkLoop(LoopCounter.java:115) at…
今天遇见了一个奇怪的问题,在IDE中run unit test,全部cases都成功了,但是后来通过mvn test运行case确保错了.在寻求原因的同时也找到了对应的解决方法. Run Unit Test和Maven test的区别 差异1:在IDE中通过选中单元测试路径,点击右键选择run test和点击maven中的test是有区别的.在Maven执行测试的过程中,是不允许测试cases访问其他项目的测试类和其他项目的resources下文件的.也就是说,在a/src/test/java下…
Enum的简介 枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型. 在java语言中,枚举类型是一个完整功能的类,允许开发者给枚举类型添加方法和属性,同时也可以提供接口.同时Java也为Enum提供了高质量的实现,比如comparable和Serializable接口. * 其中:Comparable 是排序接口,如果一个Java类有这个接口,那么只能说明这个类支持排序.即然实现Comparable接口的类支…
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Yourkit的支持. 前期准备 本次所有内容的例子可以通过测者公众号后台,回复evo_mvn关键字获取下载地址 解压到自己的工程目录,在 Tutorial_Maven的示例目录运行如下命令: mvn compile 完成compile后代码中的classes的编译字节码放到target/classes目录下.在示例代码中…
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Yourkit的支持. 生成的测试cases的运行依赖 由EvoSuite生成的测试cases需要EvoSuite框架的runtime包支持才能进行测试,因此要在工程中加入如下的Maven依赖 <dependency>  <groupId>org.evosuite</groupId>  <a…
EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Yourkit的支持. 随着单元测试的AI化,衡量单元测试的标准变得尤其重要,那么分析单元测试的代码覆盖率是一种行之有效的方法.Cobertura 是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率.Cobertura提供了Ant和Maven的执行方式,并且Cobe…
因为早期的翻译导致了override和overwrite的解释及理解混乱,需要重新梳理这几个词及相关内容. 转自:http://blog.csdn.net/lzhang007/article/details/7960950 一 overload:是重载的意思,这没啥能混淆的了,就是在同一个类当中,为了增加通用性,写了很多方法,这些方法只有一个要求,参数的数量和类型不同,但返回值和方法属性必须相同,否则不属于重载, 比如:1.public class Parent{ public int add(…
相信,很多人都不知道Java的Method的上限为64K.本文将超过这个上限的函数叫做巨型函数. 巨型函数的问题 1.如果代码超过了这个限制,Java编译器就报"Code too large to complier"的错误. 2.代码并没有超过64K的限制,但是在运行时由于其他工具或者library使得对应的代码超过了64K的限制,那么Java会给我们一个java.lang.VerifyError的错误. 巨型函数是怎么来的 如下一些仅仅是一些可能导致出现巨型函数的常见情况,还有很多其…
Screenplay模式 Junit的Screenplay 举例 Actor theReceptionist =newActor().with(WebBrowsing.ability()) theReceptionist.attemptsTo( Go.to(findOwnersScreen.url()), Search.forOwnersWith(EMPTY_SEARCH_TERMS), Count.theNumberOfOwners() ); assertThat( theReceptioni…
问题出现: 即使对于一个经验丰富的开发人员来说,方法重载和方法覆盖的区别都能让他犹豫一下, 对于新手来说,经常容易弄混淆. 有没有比较深入浅出的理解方式,能让人过目不忘,用起来还能有条件反射般的速度呢? 其他人是怎么做的: 写类似比较的博客非常之多,无非也就是分开介绍,然后比较区别. 好像也有效果,前提是要理解,完了还要不时拿来复习,保持记忆不被遗忘. 可以这样理解: override 更准确的翻译应该是推翻,重写. overload 更准确的翻译应该是过载. 如果你不是新手,看到这个解释的时候…
本文分享基于字节码种子生成有效.可执行的字节码文件变种,并用于 JVM 实现的差别测试.本文特别提出用于修改字节码语法的classfuzz技术和修改字节码语义的classming技术.上述变种技术系统性地操作和改变字节码的语法.控制流和数据流,生成具有丰富语义的字节码变种.进一步地,可以在多个 JVM 产品上运行生成的字节码变种,通过 JVM 验证或执行行为的差异以发现 JVM 缺陷乃至安全漏洞.本文整理自陈雨亭在 2018 年 12 月 22 日 GreenTea JUG Java Meetu…
觉得有些内容还是挺实用的,就转了 1. 概述 随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,所以我在这里对web的测试方法和采用的测试技术进行总结,便于内部交流. 测试方法尽量涵盖web程序的各个方面,测试技术方面在继承传统测试技术的技术上结合web应用的特点. 相关的测试和实现技术也有着很大的关系,由于本公司使用J2EE体系,也许例子中只有JAVA平台可以使用,.NET平台…
转自:https://blog.csdn.net/qq_29277155/article/details/92411079 一.全球面临软件安全危机 2010年,大型社交网站rockyou.com被曝存在SQL注入漏洞,黑客利用此漏洞获取到3200万用户记录(包括E-mail.姓名及明文形式的密码). 2015年,英国电话和宽带供应商TalkTalk被一名15岁的黑客利用SQL注入漏洞进行攻击,四百万TalkTalk客户的姓名.地址.出生日期.和信用卡/银行详细信息被黑客窃取. 2018年,台湾…
1.界面测试 现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印象是很重要的.如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了.很多人认为这是测试中最不重要的部分,但是恰恰相反界面对不懂技术的客户来说那相当关键,慢慢体会你会明白的. 方法上可以根据设计文档,如果够专业的话可以专业美工人员,来确定整体风格页面风格,然后根据这个可以页面人员可以生成静态的HTML,CSS等甚至生成几套不用的方案来讨论,或者交给客户评审,最后形成统一的风格的页面/框架.注意不…
Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++.Java和Python,其中Python主要用于编写各种工具程序.然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍.          一.生成目标语言代码.      下面…
本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术.高级技术(并发测试.mock/fake.竞争条件测试.并发测试.内/外部测 试.vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助.原Slide访问需要自己搭梯子.另外这里也要吐槽一 下:Golang官方站的slide都是以一种特有…
豆豆手册 □ BSD手册 □ Linux手册 □ 数据库手册 □ 编程开发手册 □ WEB开发手册 □ 软件应用手册 □ 网络技术手册 □ GNU手册 在线手册 首 页 BSD手册   ·FreeBSD Handbook 简体中文版 ·NetBSD Internals ·NetBSD 指导手册 ·FreeBSD Porter 手册 ·FREEBSD 使用者手册 ·FreeBSD 5.x 架设管理与应用 ·FreeBSD 6.0架设管理与应用 ·OpenBSD FAQ中文版   Linux手册  …
接上篇续,依据_软测基础体系:<依据不同的测试对象,选取适合的方法,按照设计的流程完成测试工作,检验整个过程是否达到测试的目的>.“学以致用”,实践于工作职责 常见面试题: —— 诸如以下问题,在求职过程中,如何整理回答思路呢? 做了单元测试,为什么还需要做产品系统测试和业务测试 给你1张银行卡,如何测试 在过往的工作中,如何保障被测模块的质量 在过往的工作中,你除了负责系统功能业务测试?还做过自动化.性能测试么? 重点依托以下2方面: 1)软测的目的是保障质量,那应该如何来评估质量?    …
转载: Java 性能优化手册 - 提高 Java 代码性能的各种技巧 Java 6,7,8 中的 String.intern - 字符串池 这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整. 字符串池 字符串池(有名字符串标准化)是通过使用唯一的共享 String 对象来使用相同的值不同的地址表示字符串的过程.你可以使用自己定义的 Map<String, String> (根据需要使用 weak…
Web渗透测试漏洞手册及修复建议 0x0 配置管理 0x01 HTTP方法测试 漏洞介绍: 目标服务器启用了不安全的传输方法,如PUT.DELETE等,这些方法表示可能在服务器上使用了 WebDAV,由于dav方法允许客户端操纵服务器上的文件,如上传.修改.删除相关文件等危险操作,如果没有合理配置dav,有可能允许未授权的用户对其进行利用,修改服务器上的文件. 修复建议: 1.关闭不安全的传输方法,只开启POST.GET方法. 2.如果服务器不使用 WebDAV 可直接禁用,或为允许webdav…
内容简介 开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法.<算法技术手册>讲解了许多现有的算法,可用于解决各种问题.通过阅读它,可以使您学会如何选择和实现正确的算法,来达成自己的目标.另外,书中的数学深浅适中,足够使您可以了解并分析算法的性能.较之理论而言,<算法技术手册>更专注于应用.<算法技术手册>提供了高效的代码解决方案,使用多种语言进行编写,让您可以轻松地将其应用于特定的工程当中.通过<算法技术手册>,您可以:· 解…
为什么要测试?1.软件非正常运行或自身缺陷会引发问题2.代码和文档是人写的,难免会出错3.环境原因影响软件(内存不足,存储,数据库溢出等)4.软件测试活动是保证软件质量的关键之一 什么是测试?软件行业:1.验证软件的正确性2.发现软件中的缺陷(bug) 如何做一个成功测试?能发现前所未有的错误的测 试 软件生命周期? 指软件从产生到报废的整个过程,是一种时间概念. 通常软件生命周期包括哪些阶段?1)客户问题引入或定义 ? 2)可行性分析(涉及经济(商业论证),政治, 法律,技术等) ? 3)项目…
摘要:本文介绍了SCA技术的基本原理.应用场景,业界TOP SCA商用工具的分析说明以及技术发展趋势:让读者对SCA技术有一个基本初步的了解,能更好的准确的应用SCA工具来发现应用软件中一些安全问题,从而帮助提升软件安全质量. 1.什么是SCA SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别.管理.追踪的技术.我们知道在当今软件开发中,引入开源软件(注1)到你的项目中,避免重复造轮子是大家都再熟…
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领域其他技能的学习. [在原先<学好Java之我见>的基础上重新整理而成] Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”.“倚天剑”. Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助. 1. 思考一下 学习Java之前,先别…
本文其实是一篇招聘贴,不管你以前是做开发还是测试,都欢迎加入我们的小组. 2014年阿里巴巴的共享业务事业部有很大变化,共享的测试团队也做了一些调整,我不再担任共享业务的测试经理,但是仍然会留在共享测试团队,组建一个名为“稳定性测试&技术创新”的小组,这个小组在组织架构上,独立于会员平台.商品平台.交易平台这些基础业务测试组之外,但是要承担整个共享的稳定性质量责任,工作重点是围绕基础业务的稳定性,做一些测试技术相关的工作. 共享的稳定性质量关系到全网的业务,这份工作责任重大,极具挑战性.共享业务…