Monkey

软件测试方法的分类

∥☆過路亽.° 提交于 2020-04-21 04:43:16
软件测试分类: 划分为:黑盒测试、灰盒测试、白盒测试 黑盒测试:也称为功能测试、数据驱动测试、或者基于规格说明的测试,测试这不需要了解程序内部情况,只知道程序的输入和输出和系统的功能,这是从用户角度对程序进行的测试。 白盒测试:也称为结构性测试、逻辑驱动测试或者基于程序本省的测试,它重于程序内部结构和算法,通常不包括功能和性能指标,白盒测试是一种基于对源码的控制结构、处理过程等进行分析,检查程序内部处理是否正确,包括异常处理、语句结果,分支,循环结构等,白盒测试一般是以单元或者模块为基础; 白盒测试主要测试方法为: 1、语句覆盖:使程序中的每个语句至少都被覆盖一次 2、判定覆盖:使程序中每个判定至少为真或者为假各一次 3、条件覆盖:使判定中每个条件获得各种可能的结果 4、判定/条件覆盖:同时满足判断覆盖和条件覆盖 5、条件组合覆盖:使的每个判定中条件的各种可能组合至少出现一次。 灰盒测试: 是基于程序运行时外部表现同时又结合程序内部逻辑结果来设计用例,执行程序并采集程序执行信息和外部用户外部接口结果的测试技术,这种测试技术介于黑盒测试和白盒测试之间,灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率,错误发现和错误案例分析的效率(接口测试属于灰盒测试)。 划分为:静态测试与动态测试 静态测试:不运行代码

网站优化的艺术与科学之工具和基础知识

时光毁灭记忆、已成空白 提交于 2020-04-17 14:10:09
【推荐阅读】微服务还能火多久?>>>   最近在阅读一本网站优化的书,名叫《 深入理解网站优化:提升网站转化率的艺术与科学 》,本书是对网站优化的4个学科(Web分析、网站易用性、在线营销和网站测试)的最佳实践。网站优化是一门新颖的艺术,结合前面这四门学科完成对网站的测试和分析,更好地吸引和转化访问者。   实施本书中的最佳实践和测试思路,就能以多种方式改进网站:吸引访问者,使他们经常回到网站中,改进转化率和成功的其他度量因素,最终改进在线业务的财务收入。 一、工具 1)Web分析工具   1、免费和便宜的分析工具: Google Analytics , KISSmetrics , Clicky 。   2、企业级Web分析工具: Adobe Analytics , CoreMetrics , WebTrends 。 2)转化目标   转化目标是一种度量网站目标的方法,度量的指标是为了这些目标而转化的访问者数量。常用的网站类型的转化目标如下所列。 网站类型 转化目标 在工具中建立的目标 电子商务 产品订单 订单完成页面 客户挖掘 生成线索 表单完成/感谢页面 社区 会员注册 新会员确认页面   如果你的网站类型没有基于页面的具体转化目标(例如媒体网站),也可以选择几种其它的目标度量方式,例如网站停留时间或每次访问的页面数。  

操作系统第三次实验报告——有名管道(FIFO)

痴心易碎 提交于 2020-04-16 17:04:33
【推荐阅读】微服务还能火多久?>>> 0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 掌握进程间通信管道的编程。 2 实验内容 在服务器上用VIM编写一个程序:创建一个命名管道,创建两个进程分别对管道进行读( read_fifo.c) 和写( write_fifo.c) 。给出源代码 给出运行结果,并分析 3 实验报告   3.1 编写写管道程序(write_fifo.c) 1 #include<unistd.h> // write,read,close,access 2 #include< string .h> // memset 3 #include<errno.h> // errno 4 #include<fcntl.h> // open,O_WRONLY,O_RDONLY 5 #include<stdio.h> // printf,sscanf 6 #include<stdlib.h> // exit 7 #include<limits.h> // PIPE_BUF 8 9 #define MYFIFO "/tmp/myfifo" // 有名管道文件名 10 #define BUFES PIPE_BUF 11 12 int main( int argc, char * argv[]) 13 { 14 int fd,n; 15 char buff

Android Intent相关

亡梦爱人 提交于 2020-04-15 17:33:17
【推荐阅读】微服务还能火多久?>>> //当打开新的页面, 然后返回主屏幕后, 再次打开应用不保留新打开的页面 Intent intent = new Intent(MainActivity.this,secondActivity.class); intent.setFlags(intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); //Intent 跳转的两种方式 Intent intent = new Intent(MainActivity.this,secondActivity.class); startActivity(intent); 第二种 : Intent intent = new Intent(); //第一个参数为包名, 第二个参数为包名加将要跳转的页面的名称 ComponentName componentName = new ComponentName("com.lanyu96" , "com.lanyu96.SecondActivity"); intent.setComponent(componentName); startActivity(intent); Intent 当点击按钮 跳转到 拨号页面 Intent intent =new Intent(); intent.setAction

Python memory profiler 上手实践

岁酱吖の 提交于 2020-04-12 07:31:16
为什么 相比起 C ,Python 有自己的内存管理,不需开发者自己管理内存。虽然方便,但有时候,我们可能会遇到内存占用过高,内存泄漏,甚至 OOM 的情况。这时,就需要我们做内存诊断,了解自己的代码:内存主要被分配在哪里,是否有无法释放的内存,又有多少内存会很快被释放,进程在高峰时占用多少内存,在低谷时占用多少内存。 怎么办 要了解进程的内存使用情况,我们可能首先会想到使用 TOP 命令,查看进程内存的使用情况。TOP 命令能够实时查看到进程对各种资源的使用情况,也是我们经常会使用的Linux命令。而在 Python 中,通过 psutil 模块也能很好的获取到这些信息。 这两个工具十分的强大,但是也很基础。TOP命令不方便从更多的维度诊断问题,比如难以从时间维度诊断内存,只能统计当前整个进程的内存使用情况,与代码脱离。而 psutil 十分强大,可以和代码结合,但是对逻辑代码侵入性太强,比如想在某个函数前后统计内存的使用情况,就需要在原有代码的基础上插桩,产生不必要的耦合,而不侵入逻辑代码则又和使用命令行没有太大区别。 这个时候,有经验的朋友可能会想到 line_profiler。line_profiler 是用于对函数进行逐行分析的模块,只需要通过装饰器,就可以计算出函数内每一行代码的执行时间,以提供时间维度的性能诊断。那么在内存维度上,是不是也有类似的模块呢?bingo

有人用 3D 打印部件 6 小时救了 10 个新冠病人,但搞不好还要吃官司

这一生的挚爱 提交于 2020-03-23 19:20:37
3 月,跳不动了?>>> 雷锋网AI 源创评论讯,上周四,意大利北部伦巴第大区布雷西亚省基亚里的一家地方医院,紧急需要一种呼吸设备上用于吸氧的特殊阀门,以帮助因为冠状病毒来到 ICU 的病人。 这个阀门的价格是 10000 欧元,约合 77000 元人民币。然而价钱不是问题,问题是没货,阀门的原始制造商无法在短期内供货。[1] 这家医院通过当地报纸发布了求救电话,引起了米兰 Fablab 创始人 Massimo Temporelli 的注意。[2] 他人在米兰,没法赶过去,于是找到了基亚里附近的一家 3D 打印创业公司 ISINNOVA ,这家公司的创始人克里斯蒂安·弗拉卡西(Cristian Fracassi)马上响应,并一起探讨解决方案。[3] 【雷锋网注:图为 Massimo Temporelli 的脸书,描述了整个过程 】 他们最开始想寻求原始制造商的帮助,共享相关的 3D 文件,结果不仅遭到了拒绝,而且还威胁涉及专利侵权。 人命关天,克里斯蒂安继续前进,从头开始创建 3D 文件。他带领着员工对零件进行测量,定尺寸,重新设计,然后使用了三种不同技术(FDM、SLS、SLA)进行 3D 打印。 6 个小时之后,3D 打印的阀门出来了,制作成本是 1 欧元,也就是原来成本的万分之一。 【雷锋网注:3D 打印公司克里斯蒂安的团队,在 6 小时之内完成了任务】 他最初生产了 10

android压力测试命令monkey详解

折月煮酒 提交于 2020-03-02 20:13:34
这篇文章主要介绍了android monkey命令详解,Monkey 就是SDK中附带的一个工具,该工具主要用于进行压力测试,需要的朋友可以参考下 一、Monkey 是什么? Monkey 就是SDK中附带的一个工具。 二、Monkey 测试的目的? :该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。 三、Monkey 测试的特点? Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。 四、Monkey 命令详解 1).标准的monkey 命令 [adb shell] monkey [options] <eventcount> , 例如: adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。 上面只是一个简单的例子,实际情况中通常会有很多的options 选项 2).四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项 1:常用选项 --help:打印帮助信息 -v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。 2:事件选项 -s

如何在C ++中初始化私有静态成员?

让人想犯罪 __ 提交于 2020-02-28 00:51:10
在C ++中初始化私有静态数据成员的最佳方法是什么? 我在头文件中尝试了此操作,但它给了我奇怪的链接器错误: class foo { private: static int i; }; int foo::i = 0; 我猜这是因为我无法从类外部初始化私有成员。 那么最好的方法是什么? #1楼 对于以后这个问题的观众,我想指出,您应该避免 monkey0506的建议 。 头文件用于声明。 头文件将针对每个直接或间接 #includes .cpp 文件进行一次 .cpp ,并且任何函数之外的代码都将在程序初始化时运行在 main() 之前。 通过输入: foo::i = VALUE; 在头文件中, foo:i 将为每个 .cpp 文件分配值 VALUE (无论是什么),并且这些分配将在运行 main() 之前以不确定的顺序(由链接器确定 main() 进行。 如果我们在其中一个 .cpp 文件中 #define VALUE 为其他数字怎么办? 它将编译良好,并且在运行程序之前,我们将无法知道哪一个获胜。 绝对不要将执行的代码放入标头中,原因与您从未 #include .cpp 文件相同。 包含卫士(我同意您应该始终使用)来保护您免受不同的伤害:同一头文件在编译单个 .cpp 文件时多次间接 #include d #2楼 如果使用标题防护,也可以将分配包括在标题文件中。

架构师内功心法,只是单纯听说过的原型模式详解

房东的猫 提交于 2020-02-27 02:55:51
一、原型模式的应用场景 你一定遇到过这样的代码场景,有大量的getter、setter赋值的场景。例如这样的代码片段: private SafetyStockMessage createKafkaMessage(SafetyStock safetyStock, HttpServletRequest request) { SafetyStockMessage safetyStockMessage = new SafetyStockMessage(); safetyStockMessage.setId(safetyStock.getId()); safetyStockMessage.setProvinceCode(safetyStock.getProvinceCode()); safetyStockMessage.setRequestId(CodeConstants.REQUEST_ID); safetyStockMessage.setRequestIp(CodeConstants.REQUEST_IP); safetyStockMessage.setSerial(IdMakerUtil.make32Id()); safetyStockMessage.setStockMax(safetyStock.getStockMax()); safetyStockMessage

Disable system-level events on Android monkey

扶醉桌前 提交于 2020-01-03 07:23:06
问题 While monkey testing my app % adb shell monkey -p com.foo.bar --throttle 1000 -v 14400 I notice that it accesses various system settings on my device like audio control and taking screen shots. According to http://developer.android.com/tools/help/monkey.html, this is the way it was meant to behave. The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. Is