1.软件测试的定义
使用人工操作或软件自动运行的方式来检验它是否满足规定的需求
弄清预期结果与实际结果之间差别的过程
预期结果:用户的预期结果
实际结果:软件的实际运行结果
软件缺陷:预期结果与实际结果之间的差别
2.软件测试的目的
(1)把尽可能多的问题在产品交给用户之前发现并改正
(2)确保最终交给用户的产品功能符合用户的需求
a)确保产品完成了所承诺或公布的功能
b)确保产品满足性能和效率的要求
c)确保产品健壮和适应用户环境
(3)建立软件质量的信心,度量和提高被测软件的质量
3.软件测试的原则
4.测试人员应具备的素质
5.常见软件系统架构
(1)B/S架构(Browser/Server,浏览器/服务器模式)
B/S系统架构图
B/S架构的几种形式
第一种:客户端-服务器-数据库
第二种:客户端-web服务器-应用服务器-数据库
第三种:客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库
(2)C/S架构(客户端/服务器体系结构)
是一种网络体系结构,其中客户端是用户运行应用程序的PC端或者工作站,客户端要依靠服务器来获取资源。C/S架构是通过提供查询响应而不是总文件传输来减少了网络流量。它允许多用户通过GUI前端更新到共享数据库,在客户端和服务器之间通信一般采用远程调用(RPC)或标准查询语言(SQL)语句。
C/S架构的类型
a.一层架构
在此类型C/S架构设置中,用户界面,营销逻辑和数据逻辑存在于同一系统中。但是由于数据差异导致难以管理。例MP3播放器,MS Office都属于单层应用程序。
b.两层架构
在这种类型中,用户界面存储在客户端机上,数据库存储在服务器上。数据库逻辑和业务逻辑在客户端或服务器上归档,但需要进行维护。胖客户端瘦服务器体系结构:业务逻辑和数据逻辑在客户端上收集;瘦客户端胖服务器体系结构:业务逻辑和数据逻辑在服务器上收集。
c.三层架构
在三层架构中,需要使用到额外的中间件,这意味着客户端请求需要通过该中间层进 入服务器,服务器的响应首先由中间件接收,然后再接收到客户端。中间件存储所有业务逻辑和数据通道逻辑,中间件提高了灵活性并提供了最佳性能。
三层结构被分成三个部分,即表示层(客户层),应用层(业务层)和数据库层(数据层)。客户端系统管理表示层,应用程序服务器负责应用程序层,服务器系统负责监视数据库层。
(3)B/S与C/S的对比
6.软件测试的分类
单元测试(是指对软件中的最小可测试单元进行检查和验证,测试方法:白盒测试)
单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。
集成测试(也叫组装测试或联合测试,测试方法:灰盒测试)
在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题。
验收测试(也称交付测试)
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。
不是对系统进行全覆盖测试,而是对核心业务流程进行测试。
α测试
俗称“内测”,测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
β测试
俗称“公测”,是指在一个或多个用户的场所进行的测试。beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。
7.软件测试流程
8.软件测试过程主要工作内容
(1)项目启动——确定项目组长,进行项目的前期准备。
(2)测试需求分析——以软件开发需求为基础,形成可测试的内容。
(3)制定测试计划——确定测试范围、测试策略和方法,以及对风险、日程表、资源等进行分析和评估。
(4)测试设计和开发——制定测试的技术方案、设计测试用例、选择测试工具、写测试脚本等,并且进行评审。
(5)测试实施和执行——建立或设置相关的测试环境,准备测试数据,执行测试用例,并提交发现的缺陷。
(6)测试结果的审查和分析——分析测试结果,确定产品质量,提供发布依据。
9.软件测试模型
(1)V模型
(2)W模型
(3)H模型