软件测试概论第一章

软件测试概述

软件测试的目的

把尽可能多的问题在产品交给用户之前发现并改正

确保最终交给用户的产品功能符合用户的需求

确保产品完成了所承诺或公布的功能

确保产品满足性能和效率的要求

确保产品健壮和适应用户环境

建立软件质量的信心,度量和提高被测软件的质量。

立场不同测试目的不同,从开发者和用户两个角度出发

软件测试的原则

优点

分布性强,客户端零维护,业务扩展简单方便,通过增加 页即可增加服务器功能,开发简单,共享性强

缺点

个性化特点明显降低,无法实现具有个性化的功能要求

客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低

c/s架构

C/S架构全称为客户端/服务器体系结构

三层架构

在三层架构中,需要使用到额外的中间件,这意味着客户端请求需要通过该中间层进

入服务器,服务器的响应首先由中间件接收,然后再接收到客户端。中间件存储所有

业务逻辑和数据通道逻辑,中间件提高了灵活性并提供了最佳性能。

三层结构被分成三个部分,即表示层(客户层),应用层(业务层)和数据库层(数

据层)。客户端系统管理表示层,应用程序服务器负责应用程序层,服务器系统负责

监视数据库层。

软件测试过程主要内容

软件生命周期模型

一 什么是模型

模型被用来描绘人们所关注的现实或想法的某个方面。模型是一种简化。它是对

现实的解释——把与解决问题密切相关的方面抽象出来,而忽略无关的细节。

模型是一种工具,它把庞大、复杂、零乱的信息通过抽象简化这样的整理,让人

更容易理解。

二 软件开发模型

典型的软件开发模型有:瀑布模型、快速原型模型、螺旋模型、演化模型

瀑布模型定义:

瀑布模型(Waterfall Model)是一个项目开发架构,开发过程是通过设计一系列阶段

顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反

馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进

行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称

的由来.

优点

1)设计上的灵活性,可以在项目的各个阶段进行变更

2)以小的分段来构建大型系统,使成本计算变得简单容易。

3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

4)随着项目推进,客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交

互。

5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

缺点

很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。风险分析师分析的风险不正确的情况下,可能造成大的损失。

软件开发增量模型

是强调软件在发布不同的版本时,每次都多发布一点点,是软件功能数量渐增地发布

的过程。

软件测试模型

V模型

V模型示意图(重要)

优点:

开发伴随着整个开发周期,需求和设计同样要测试;
   更早的介入测试,可以发现初期的缺陷,修复成本低;
   分阶段工作,方便项目整体管理。
缺点:

开发和测试依然是线性的关系,需求的变更和调整,依然不方便;
   如果没有文档,根本无法执行w模型;对于项目组成员的技术要求更高!

H模型(了解)

H模型示意图

img

H模型的优点:
  >开发的H模型揭示了软件测试除测试执行外,还有很多工作;
  >软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;
  >软件测试活动可以尽早准备、尽早执行,具有很强的灵活性;
  >软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的。

H模型的缺点:
  >管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;
  >技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;
  >测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;
  >对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱。例如:你分了一个小的迭代,但是因为人员技能不足,使得无法有效完成,那么整个项目就会受到很大的干扰。

敏捷开发模型

敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于”非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。

DevOPS

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

它的出现是由于行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208248 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月1日
下一篇 2022年2月1日

相关推荐