软件测试的生命周期:
过程: 测试计划 → 测试设计 → 测试开发 → 测试执行 → 测试评估
软件测试过程一般有4个步骤:单元测试、集成测试、确认测试、系统测试。
单元格测试又称模块测试,是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。
集成测试也叫做组装测试或联合测试。在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
确认测试的任务是验证软件的功能和性能及其他特性是否与用户的要求一致。
系统测试时将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际或者模拟运行使用环境下,对计算机系统进行一系列测试。其目的在于通过与系统需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。
负面测试(NegativeTesting):
负面测试属于功能测试,用于验证软件不执行其不应该完成的工作。这一步骤主要依赖于错误猜测,需要依靠测试设计者的经验判断可能出现问题的位置。适合的技术有:错误猜测、边界值分析、内部边界值测试、状态转换测试。
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。此外还是化妆品的名字。
质量管理
质量管理质量管理是指在质量方面指挥和控制组织的协调的活动。 质量管理,通常包括制定质量方针和质量目标以及质量策划、质量控制、质量保证和质量改进。
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST(Ajax开发,关心的只有GET请求和POST请求 )。
GET与POST方法有以下区别:
(1) 在客户端, Get 方式在通过 URL 提交数据,数据 在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(3) 安全性问题。正如在( 1 )中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get ;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post 为好。
(4) 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说, GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。 POST 请求就不那么轻松了。 POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了(比方说文章下面出现一条注解)。
事务:由一个或多个执行、完成的语句组成,以组的形式提交或回滚。当前事务结束,另一个事务开始。
在JDBC中,事务默认是自动提交的,即每执行一条语句,就是一个事务。
事务特性:ACID特征,Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)。
原子性:指整个事务是不可以分割的工作单元。只有事务中所有的操作执行成,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该回到执行事务前的状态。
一致性:指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对于银行转账事务,不管事务成功还是失败,应该保证事务结束后两个转账账户的存款总额是与转账前一致的。
隔离性:指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
持久性:指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
事务各个特征的实现手段:
原子性:日志
一致性:日志
隔离性:锁机制
持久性:日志
事务隔离级别(5级):
0:TRANSACTION_NONE
1:TRANSACTION_READ_UNCOMMITTED
2:TRANSACTION_READ_COMMITTED 防止脏读
4:TRANSACTION_REPEATABLE_READ 防止不可重复读
8:TRANSACTION_SERIALIZABLE 防止 幻影读
Oracle支持2种:2和8,默认为2.
并发环境中的几种情况:
脏读:一个事务在提交前可以看到另一个事务的行为,则出现脏读。一个事务读到了其它事务没有提交的数据;
不可重复读:一个事务通过SQL读取数据后,有其它事务立刻作了DML操作,并且提交了,然后第一个事务通过相同的SQL语句再次读取,所得的数据和第一次读取的数据不一致的情况。
要点:同一个事务,同一语句,在多次读取过程中,所得到的结果不一致的情况。
如何防止:在执行SELECT语句时加上for update子句
幻(影)读:基本理解同不可重复读。
区别:
不可重复读:指某些列的值的不同,
幻影读:指表的总记录数量上的不同。
如何防止:锁表,代价很高。
//隔离级别:未授权读取、授权读取、可重复读取、序列化