目录
1、计算机网络->协议应用提升
2、信息安全->网络攻击
3、软件工程->静态测试
4、软件工程->架构设计
4、数据库系统->范式判断
5、面向对象->面向对象的基本概念
6、面向对象->面向对象开发各阶段划分及任务
7、软件工程->白盒测试用例
8、其他
域名解析流程
<1>客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
<2>当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。
<3>如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器在返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
<4>本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级的域名服务器的地址。
<5>重复第四步,直到找到正确的纪录。
<6>本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
eg:主域名服务器在接收到域名请求后,首先查询的是本地缓存。
端口扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。
在单元测试开始时,应该对通过所有被测模块的数据流进行测试。
<1>输入参数是否与形式参数是否一致;
<2>调用模块的实参与被调用模块形参是否一致;
<3>全局变量在各模块中的定义和用法是否一致;
<4>外部输入、输出等。
MVC模式,即模型-视图-控制(Model-View-Controller)模式,它实际上是一种架构模式,是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地体现了数据层与表示层的分离。
MVC把应用程序分为3种对象类型。
<1>模型:应用问题域中包含的抽象领域知识;
<2>视图:将应用问题域中包含的抽象领域知识呈现给用户的方法;一个模型可以用于多个视图;
<3>控制器:用户界面对用户输入的响应方式。
eg:在数据库逻辑设计阶段,若实体中存在多值属性,那么将E-R图转换为关系模式时,将实体的码分别和每个多值属性独立构成一个关系模式,得到的关系模式属于4NF。
覆盖:子类重写父类的方法。
重载:一个类可以有多个同名而参数类型不同的方法。
面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。
认定对象是指:在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象。实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。
组织对象含义是:分析对象间的关系,将相关对象抽象成类,其期的是为了简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一 个对象的一部分来考虑;如房子由门和窗构成,门 和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。
描述对象间的相互作用是:描述出各对象在应用系统中的关系。如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。
eg:实现对象及其相互关系不是面向对象分析阶段需要完成的。【实现对象及其相互关系应该归为系统的实现阶段】
白盒测试常用的技术是逻辑覆盖,主要的覆盖标准有六种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。
(1)语句覆盖
语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。
(2) 判定覆盖
判定覆盖又称分支覆盖,它的含义是,不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。
(3)条件覆盖
条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。
(4)判定/条件覆盖
同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是,选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。
(5)条件组合覆盖
条件组合覆盖的含义是,选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述五种覆盖标准中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少经过一次。
(6)路径覆盖
路径覆盖的含义是,选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路径至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。
eg:通常在软件的编码活动中无需用户参与。需求分析、维护、测试都与用户有关。
软件著作权和软件作品受到《中国人民共和国著作权法》和《计算机软件保护实例》两个文件保护。