模块测试

扩展阿里p3c实现自定义代码规范检查

女生的网名这么多〃 提交于 2019-12-02 08:45:55
 前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!。虽然改动很小,但就是觉得憋屈。fastjson还是挺好的,想着禁用的话太可惜,用的话又要注意安全,就想着找款工具提示下在用fastjson的时候不要打开这个特性。刚好阿里开源了p3c( https://github.com/alibaba/p3c ),一款代码规范的检查工具,有对应的ide插件,能在编码过程中对设置的规则进行提示,便打算对它进行拓展,增加对fastjson检查是否打开setAutoType特性的检查。  p3c主要包括3部分: PMD实现(p3c-pmd):使用PMD https://pmd.github.io/ 来实现代码规范检查 Intellij IDEA插件 Eclipse插件  《阿里巴巴Java开发手册》中的大部分规则都是在p3c-pmd模块中实现的,该部分也是这节研究的主要部分。 1. PMD  p3c使用了PMD。PMD是一款静态代码扫描工具,该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。PMD使用JavaCC生成解析器来解析源代码并生成AST(抽象语法树),通过对AST的检查可以直接从源代码文本层面来对代码进行检查,在PMD内部称为规则。即是否符合规则指的是

11 模块、模块的搜索顺序、__file__内置属性、__name__属性

丶灬走出姿态 提交于 2019-12-02 02:35:16
模块的概念 一个python文件就是一个模块。 模块名同时也是一个标识符,需要符合标识符的命名规则。 在模块中定义的 全局变量、函数、类 都是个外界提供的直接使用的 工具 。 模块就好比工具包,要想使用一个模块,需要先导入它。 模块的导入方式 模块在被导入时,模块中没有任何缩进的代码,会被完全执行一遍。 推荐方法 import 模块名1 import 模块名2    不推荐方法 import 模块名1,模块名2    模块的别名 模块导入后,可以给模块起别名, 别名遵循 大驼峰命名规则 。 格式: import 模块名 as 别名 部分工具导入(局部导入) 如果指向 导入某个模块中的部分工具( 全局变量、函数、类 ) ,则可以使用部分工具导入方法。 优点:导入的工具可以直接使用,无需使用 模块名.的方法调用。 格式: from <模块名> import <工具名> 工具的别名: 如果导入了两个名字相同的工具,则最后导入的会覆盖前面导入的。为了解决这个问题,也可以使用 as关键字 来给导入的工具起别名。 别名遵循 标识符命名规则 。 例如: from xh_25_测试模块1 import module_name as tools1    通过form <模块名> import * 导入全部工具(不推荐!了解即可) 通过此方法可以模块的全部工具,但是 不推荐 !

2019-2020-1学期 20192406 《网络空间安全专业导论》第三周学习总结

纵饮孤独 提交于 2019-12-01 23:31:49
第六章 低级程序设计语言与伪代码 6.1 计算机操作 我们所用的程序设计语言都必须反映出计算机能够执行的操作类型。让我们通过重述计算机的定义来开始新的讨论:计算机是能够存储、检索和处理数据的可编程电子设备。 这个定义中的操作字包括 可编程的 、 存储 、 检索 和 处理 。上一章指出了数据和操作数据的指令逻辑上是相同的,它们存储在相同的地方。这就是“可编程的”这个词的意义所在。操作数据的指令和数据一起存储在机器中。要改变计算机对数据的处理,只需要改变指令即可。 存储、检索和处理 是计算机能够对数据执行的动作。也就是说,控制单元执行的指令能够把数据 存储 到机器的内存中,在机器内存中 检索 数据,在算术逻辑单元中以某种方式 处理 数据。词语“处理”非常通用。在机器层,处理涉及在数据值上执行算术和逻辑操作。 6.2 机器语言 机器语言 :由计算机直接使用的二进制编码指令构成的语言 Pep/8:一台虚拟机 虚拟机 :为了模拟真实机器的重要特征而设计的假想机器 Pep/8反应的重要特征 回忆第5章中所说的,寄存器是中央处理器中算术/逻辑单元的一小块存储区域,它用来存储特殊的数据和中间值。Pep/8有七个寄存器,我们重点研究其中三个: 程序计数器(PC) , 其中包含下一条即将被执行的指令的地址。 指令寄存器(IR) , 其中包含正在被执行的指令的一个副本。 累加器 (是一个寄存器)。

测试一个requirejs的加载

六眼飞鱼酱① 提交于 2019-12-01 21:52:18
requirejs属性AMD规范,AMD即异步模块定义,它采用异步方式加载模块,不影响它后面的语句的执行。 优势 1.异步加载模块,不会阻碍页面的渲染 2.可保证加载顺序,可管理模块间的依赖,方便维护 3.可进行多人协同工作 必要的三个函数 define() 定义模块,响应require的调度 require.config() 设置模块与路径的映射 require() 程序的入口,包括两个参数,第一个为数组,表示依赖的模块;第二个参数为回调函数,它在当前页面指定的模块被加载完成才调用,加载的模块会以参数的形式传入该函数。 大专栏 测试一个requirejs的加载 kquote> demo 文件结构 requirejsDemo --index.html --js --clouse-2.js --main.js --requirejs.config.js --require.js 调试工具查看文件加载顺序 mian.js文件为入口文件 //加载配置文件 require(["js/requirejs.config"], function() { //加载clouse_2模块 require(["clouse_2"], function(clouse_2) { var btnModel = { name: "btnModel", click: function() { alert(this

ERP测试用例设计

旧巷老猫 提交于 2019-12-01 18:52:42
1、一般的ERP系统设计大概包括以下几方面: 功能测试 、业务流程测试、数据逻辑测试、接口测试、兼容性测试、 性能测试 、易用性测试、用户体验测试等等; 2、ERP系统测试用例分为几类来写比较好:功能用例、业务流程用例、数据逻辑用例、接口用例, 最好是把功能与流程类的测试用例分开来写; 测试用例应该从以下几个方面入手: 一、功能用例设计:相对而言比较简单,根据需求规格说明书、界面原型提取测试功能点/项, 运用等价类、边界值、错误猜测、正交表等基本用例设计方法来设计; 需要根据文档/功能点/业务的变化进行修订/细化用例,提高功能用例的覆盖度; 如:身份证输入文本框,需要用到等类、边界值等方法,需要考虑15位和18位的身份证,需要考虑末位为字母的情况等…… 二、业务流程用例设计:关键在于理解实际业务、实际应用场景,最常用的操作过程和使用方法,必要时还要考虑操作习惯; 首先,需要结合业务模型或业务流程图,同需求分析人员、业务专家共同确认实际业务流程/运用场景,整理清楚最基本最常用的业务流程和应用场景; 接着,理清用例设计思路,画出用例设计流图,确定流程用例模板和风格; 然后,运用场景法、数据流程设计法、基本路径等方法设计业务流程用例; 1、简单模块流程单一,无分支或者分支少,用例设计也比较容易,根据业务流程设计测试数据; 2、复杂模块/子系统/系统,必定会存在多个分支

测试一个requirejs的加载

陌路散爱 提交于 2019-12-01 18:42:47
requirejs属性AMD规范,AMD即异步模块定义,它采用异步方式加载模块,不影响它后面的语句的执行。 优势 1.异步加载模块,不会阻碍页面的渲染 2.可保证加载顺序,可管理模块间的依赖,方便维护 3.可进行多人协同工作 必要的三个函数 define() 定义模块,响应require的调度 require.config() 设置模块与路径的映射 require() 程序的入口,包括两个参数,第一个为数组,表示依赖的模块;第二个参数为回调函数,它在当前页面指定的模块被加载完成才调用,加载的模块会以参数的形式传入该函数。 大专栏 测试一个requirejs的加载 kquote> demo 文件结构 requirejsDemo --index.html --js --clouse-2.js --main.js --requirejs.config.js --require.js 调试工具查看文件加载顺序 mian.js文件为入口文件 //加载配置文件 require(["js/requirejs.config"], function() { //加载clouse_2模块 require(["clouse_2"], function(clouse_2) { var btnModel = { name: "btnModel", click: function() { alert(this

7可测性

女生的网名这么多〃 提交于 2019-12-01 18:32:45
1.在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相 应打印函数,并且要有详细的说明。 说明:本规则是针对项目组或产品组的。 2.在同一组或产品组内,调测打印处的信息串的格式要有统一的形式。信息串中至少要有所在模块名(或源文件名)及行号。 说明:统一的调测信息格式便于集成测试。 3.编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释。测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与卸载(通过测试开关)。 说明:为单元测试而准备。 4. 在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细 分析并优化测试用例,以提高测试效率。 说明:好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。 5.使用断言类发现软件问题,提高代码可测性。 说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。 示例:下面是 C 语言中的一个断言,用宏来设计的。(其中 NULL 为 0L) #ifdef _EXAM_ASSERT_TEST_ //

结对编程-python实现

好久不见. 提交于 2019-12-01 10:38:49
目录 软件工程结对项目:Python实现wc程序 结对项目Github地址 项目成员 项目要求 说明 需求 PSP表格 解题思路描述 设计实现 代码组织图 代码分析 代码覆盖率 测试 单元测试 回归测试 效能分析 项目总结与收获 软件工程结对项目:Python实现wc程序 结对项目Github地址 https://github.com/Fyzy/Exercises__pwd 项目成员 刘志豪 3117008744 谭万钏 3117008747 项目要求 说明 实现一个自动生成小学四则运算题目的命令行程序(也可以用图像界面,具有相似功能)。 自然数:0, 1, 2, … 真分数:1/2, 1/3, 2/3, 1/4, 1’1/2, … 运算符:+, −, ×, ÷ 括号:(, ) 等号:= 分隔符:空格(用于四则运算符和等号前后) 算术表达式: e = n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e), 其中e, e1和e2为表达式,n为自然数或真分数。 四则运算题目:e = ,其中e为算术表达式。 需求 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 将生成10个题目。 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10

软件工程自学笔记

独自空忆成欢 提交于 2019-12-01 10:18:33
软件工程自学 emmm我们专业不学习软件工程,自学一点,权当休闲。 1.概述 应对不断变化的需求 开发占比比测试和维护小得多。 1.2 软件开发的三个阶段 私人化的软件环境中,软件的水平与个人的关系很大。 专家系统:提供专业知识与服务 网格计算:云计算 软件开发的初期,一定要先花时间把需求搞清楚 可读性、可理解性越好,可维护性越好 软件开发追求一致性和标准性 技术先进,需求不清楚是中国的现状。没有技术解决不了的,但是主要问题是把需求提清楚 好的需求本身就是一种资源 维护对一个公司的信誉很重要,要考虑到开发公司的流动性 维护费:技术支持(电话、邮件)、上门解决,这是一个长期的盈利(对客户就是花费) 软件的维护是一件很困难的问题。 软件!=程序,软件是由一个完整的配置组成的,还包括文档和数据。 在软件开发的不同阶段进行修改,需要付出的代价是很不相同的。 一旦发生错误应该马上修改 开发费与维护费是两回事。签合同的时候要说好 1.3 软件工程概述 好的项目管理要尽量准时。 一种策略:快速迭代、抢占市场、尽早上架 开发目的的折中、最优化 易于维护的软件,可靠性一般也比较高 可靠性和性能是互斥的,一个是求稳,一个是性能导向的 软件工程的原则: 例如类,就是对一组有共同特性的对象的抽象 局部化:资源的声明、使用和释放应该放在同一个模块中并且应该尽量靠近 一致性:要培训员工使用公司统一的命名

测试博客

会有一股神秘感。 提交于 2019-12-01 10:18:14
复习 1 """ 2 1、接口:url+请求参数+响应参数 3 Postman发送接口请求的工具 4 method: GET 5 url: https://api.map.baidu.com/place/v2/search 6 params: 7 ak: 6E823f587c95f0148c19993539b99295 8 region: 上海 9 query: 肯德基 10 output: json 11 12 ​ 13 2、restful接口规范 14 https://api.baidu.com/v1/books?ordering=-price&limit=3 15 get|post|put|patch|delete 16 { 17 'status': 0, 18 'msg': 'ok', 19 'results': [ 20 { 21 'title': '西游记', 22 'img': ' https://api.baidu.com/media/xyj.png ' 23 } 24 ] 25 } 26 ​ 27 3、基于规范下原生django接口 28 api/books/ views.Book.as_view() 29 api/books/(?P .*)/ views.Book.as_view() 30 31 class Book(View): 32 def get(self