程序测试

项目开发文档模板

谁说胖子不能爱 提交于 2020-01-14 08:48:05
1 引言 1.1 编写目的:阐明编写详细设计说明书的目的,指明读者对象。 1.2 项目背景:应包括项目的来源和主管部门等。 1.3 定义:列出本文档中所用到的专门术语的定义和缩写词的愿意。 1.4 参考资料:   ● 列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源   ●项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册   ● 文档所引用的资料、软件开发的标准或规范。 2 总体设计 2.1 需求概述 2.2 软件结构:如给出软件系统的结构图。 3 程序描述 3.1 逐个模块给出以下说明:   ● 功能   ● 性能   ● 输入项目   ● 输出项目 3.2 算法:模块所选用的算法。 3.3 程序逻辑:详细描述模块实现的算法,可采用:标准流程图;pdl语言;n-s图;判定表等描述算法的图表。 3.4 接口   ● 存储分配   ● 限制条件 3.5测试要点:给出测试模块的主要测试要求。 来源: https://www.cnblogs.com/zijinguang/archive/2008/10/23/1318008.html

rootkit后门检查工具RKHunter

巧了我就是萌 提交于 2020-01-13 09:11:28
rootkit后门检查工具RKHunter https://www.cnblogs.com/cp-miao/p/6141025.html ---恢复内容开始--- rkhunter简介: 中文名叫”Rootkit猎手”, rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。 rkhunter的官方网站位于http://www.rootkit.nl/,目前最新的版本是rkhunter-1.4.2。 rootkit是什么? rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root 权限登录到系统。 rootkit主要有两种类型:文件级别和内核级别。 文件级别的rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序

白盒用例测试程序/go实现

北城以北 提交于 2020-01-12 09:03:49
简单介绍一下白盒测试: 源码公开,清楚传参、返回值和处理逻辑; 我们在测试一个方法或者接口时,通过传入合法或者非法的参数,并且抽选一些具有代表性的值作为测试用的合法传参,通过模仿正常请求,检测方法或接口内部的异常。 周末没事,又想学习一下go,最近又老写bug,所以就想到用go写一个测试进程,实现白盒`用例`测试 用到的数据结构简单介绍一哈: 用Clinet表示一个正常的客服端, ClientPool是一个Client连接池,复用客户端与服务端的套接口连接( 即在http请求头中包含 `connection: keepAlive` ),减少了端口的开销,就可以实现100w的请求量;由于是在本地开启的服务端和客户端,如果使用短连接的话,将会有许多套接口处于` TIME_WAIT `状态,多到再无可用端口,客户端( 如将`MaxConnsPerHost`置为小于0的数值,当一次请求完成后,客服端就会主动关闭套接口 )和服务端( 如将`DisableKeepAlive` 为 false ,那么一定时间内客服端都没有发送消息给服务端,服务端将会主动关闭套接口;而将`DisableKeepAlive` 为 true的话,服务端也会在http请求应答发送完毕后,主动关闭连接 )的正常连接会受到影响从而影响了测试( 主动关闭的套接口状态会转为`TIME_WAIT`,一般情况下,在 `2ML时间内

软件测试期末复习题

故事扮演 提交于 2020-01-10 15:00:55
单项选择题:共20小题,每小题2 分,满分40分。 1.软件测试的目的:( c ) A. 避免软件开发中出现的错误 B. 发现软件开发中出现的错误 C. 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性 D. 修改软件中出现的错误 2、软件测试是采用( a )执行软件的活动。 A.测试用例 B.输入数据 C.测试环境 D.输入条件 3、导致软件缺陷的最大原因是:( a ) A.软件需求说明书 B.设计方案 C.编码 D.维护 4、在下列描述中,关于一个软件缺陷状态完整变化的错误描述是( d ) A、打开——修复——关闭 B、打开——关闭 C、打开——保留 D、激活——修复——重新打开 5、在下列描述中,关于测试与调试的说法错误的是( d ) A、测试是显示错误的行为;而调试是推理的过程; B、测试显示开发人员的错误。调试是开发人员为自己辩护; C、测试能预期和可控。调试需要想象、经验和思考; D、测试必须在详细设计已经完成的情况下才能开始;没有详细设计的信息调试不可能进行。 6、某次程序调试没有出现预计的结果,下列( b )不可能是导致出错的原因。 A.变量没有初始化 B.编写的语句书写格式不规范 C.循环控制出错 D.代码输入有误 7、软件缺陷修复的代价最高的阶段为( a ) A、发布阶段 B、需求阶段 C、设计阶段 D、编码阶段 8、不属于逻辑覆盖方法的是( d )。 A

第一周 ch01 课下测试

[亡魂溺海] 提交于 2020-01-09 00:08:51
1.Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比。(B) A .正确 B .错误 解析:Amdahl定律,该定律的主要思想是,当我们对系统的某个部分加速时,其对整个性能的影响取决于该部分的重要性和加速程度。 2.Linux中,内核虚拟内存在虚拟地址空间的低端。(B) A . 正确 B . 错误 解析:由上图可知内核虚拟内存在虚拟地址空间的最顶端而不是最低端 3.实现进程这个抽象概念需要低级硬件和操作系统软件之间的紧密合作。(A) A . 正确 B . 错误 解析:进程是操作系统对正在运行的程序的一种抽象。一个系统上可以同时运行多个进程,每个进程好像独占的使用硬件。所谓并发,是说一个进程的指令和另一个进程的指令交错执行。操作系统实现这种交错执行的机制称为上下文切换。操作系统跟踪进程运行所需的所有状态信息(也就是上下文),任何一个时刻,处理器只能运行一个进程。当操作系统决定要把控制权从当前进程转移到一个新进程时,就要进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权转交给新进程,新进程就从上次停止的地方开始执行。实现进程这个抽象概念需要低级硬件和操作系统软件之间的紧密合作 4.操作系统有两个基本功能:防止硬件被滥用;向应用供一致的机制来控制低级硬件设备。实现这两个功能相关的抽象有(ACD) A . 文件 B . 虚拟机 C

开发中的测试名词解释

醉酒当歌 提交于 2020-01-08 23:51:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 【Alpha测试】 Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试 测试环境受开发方控制 用户数量相对较少 时间比较集中 先于Beta测试 【Beta测试】 Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。 测试环境不受开发方控制 用户数量较多 测试时间比较长 【验收测试】 验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试一般在用户所在地进行,由用户验证软件产品是否满足了所有的需求的一系列的验收测试工作 验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。 【灰度测试】 灰度测试,也叫灰度发布或金丝雀发布,就是在某项产品或应用正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题。 灰度发布能及早获得用户的意见反馈,完善产品功能,提升产品质量,让用户参与产品测试,加强与用户互动,降低产品升级所影响的用户范围。 在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来 灰度发布可以保证整体系统的稳定

LNMP架构部署

杀马特。学长 韩版系。学妹 提交于 2020-01-08 23:33:30
第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777) 1.2 ②部署nginx网站服务 A.安装软件依赖包 B.创建进程管理用户 C.下载nginx软件,进行编译安装(编译安装三步曲) D.创建软链接文件 E.编写nginx配置文件 F.启动nginx服务 G.编写hosts解析文件,进行浏览器访问测试 第2章 ③部署mysql数据库服务(web服务器) 2.1 软件部署过程 A.下载mysql软件 mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz B.二进制包方式安装mysql数据库软件 2.1.1 a.解压二进制包软件 1 cd /server/ tools 2 3 tar xf mysql- 5.6 . 34 -linux-glibc2. 5 -x86_64.tar.gz 2.1.2 b.创建mysql虚拟用户 1 useradd -s /sbin/nologin -M mysql 2.1.3 c.将解压后的二进制包放置到程序目录中 1 cd /server/tools 2 3 mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5

作业4

北战南征 提交于 2020-01-07 20:34:32
第三小组: 团队成员:戴江、崔静、崔季琴、张琪、张奇 1、 Discuss your test plan 我们小组的测试计划是针对不同的阶段有不同的测试方式,就那最后一个测试计划(汇总各个队员之后的总程序)来说,主要有一下几点: (1)确定测试范围 - 问题: 测试过度 测试不足 某些阶段的测试或者某些内容的测试可以简化 当对原有系统进行修改升级时,某些测试不需要 某些测试根本不可能进行 (2) 确定测试顺序 先测优先级最高的需求 对新功能和修改功能进行测试 运用等价划分技术和边界值分析技术减少测试工作量 测试那些最有可能出现问题的地方 关注用户最常使用的功能和配置情况等 (3)确定测试方法 (4) 测试标准 入口标准:描述在开始之前需要做哪些工作 出口标准:描述在怎样的情况下可以结束测试 暂停/继续测试: 描述如果缺陷妨碍测试进行下去,会发生什么事情。如果情况很糟,无法执行计划的测试,则应暂停测试,等完成修复工作后,再完成测试工作。 通过/失败标准 执行每项测试应该有一个明确的预期结果。如果得到了预期的结果,测试就通过。否则表示测试失败。 2 、 Do we need to test until our software is PERFECT? 不是亦或是无法做到,没有程序是perfect的,就像这个世界没有完美的人一样,任何程序都是有BUG,之所以有的程序被称之为完美

进程/线程绑定到特定CPU核的linux实现(有代码有实例)

▼魔方 西西 提交于 2020-01-07 17:01:05
前言 现在计算机上的CPU大多都是多核的,有4核甚至是8核的。但是一个计算机启动之后其进程数是远远多于CPU核数的,因为操作系统会给自动调度这些进程在CPU核上轮流运行。但是对于应用程序或者进程,其性能要求较高时,可能有必要绑定该进程到指定的CPU核来运行,避免调度带来的额外开销。我自己也是因为最近的项目上有需要进程运行在指定的CPU核上的要求,所以了解了一下这项技术,并且将过程和总结记录于此。 CPU亲和性 在学习这项新技术之前,我们先来了解一下什么是CPU亲和性?所谓亲和性,就是把进程在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,也称为CPU关联性;再简单的点的描述就将制定的进程或线程绑定到相应的cpu上;在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调度到其他CPU上,如此,CPU cache命中率就低了,当绑定CPU后,程序就会一直在指定的cpu跑,不会由操作系统调度到其他CPU上,性能有一定的提高。 预备知识 在编写测试程序之前,我们先来了解一下CPU相关的宏和函数。 1.首先要想使用CPU系列函数及相关的宏,需要声明下面的宏,以告诉编译器启用这些函数 # define _GNU_SOURCE 2.声明一个cpu_set_t,然后用 CPU_ZERO()宏来初始化数据: cpu_set_t mask ; CPU

如何评测软件工程知识技能水平?

最后都变了- 提交于 2020-01-07 14:11:19
软件工程知识技能水平高低的主要体现方面 1. 开发语言:至少熟练掌握一门编程语言 2. 数据结构与算法:算法是软件工程师的重点知识结构,算法的掌握情况往往能够决定软件工程师的成长高度 3. 开发环境:熟练掌握Windows、Linux等大型主流操作系统的操作,熟练掌握编程环境配置与软件环境部署 4. 软件开发流程: 熟悉掌握瀑布模型、敏捷开发等软件工程开发的流程。了解软件开发各周期或阶段的目标以及作用。了解软件开发的一些原则技术及方法 5. 团队协作能力:队员间在各个开发环节需要沟通协作 软件工程知识技能水平测评试题 一.选择题(共40分,一题4分) 1. 软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( )不是软件开发期所应包含的活动。 A. 可行性分析 B. 需求获取和需求建模 C. 软件体系结构设计和数据设计 D. 软件集成与系统测试 答案:D 软件开发期所应包含的活动有:可行性分析、需求获取和需求建模和软件体系结构设计和数据设计。 2. “软件危机”是指( ) A. 大众不适应软件的使用 B. 软件开发相关人才过少 C. 软件开发和维护中出现的一系列问题 D. 大量黑客出现 解析:C 软件危机指的是随着软件规模不断扩大而产生的一系列开发与维护的难题 3. 下列哪个不是瀑布模型的优点( ) A. 项目提供了按阶段划分的检查点 B. 当前一阶段完成后