什么是软件测试
使用人工操作或软件自动运行的方式来检验它是否满足规定的需求
弄清预期结果与实际结果之间差别的过程
- 预期结果
- 指用户的预期结果
- 实际结果
- 指的是软件的实际运行结果
- 软件缺陷
- 预期结果与实际结果之间的差别
软件测试的目的
- 把尽可能多的问题在产品交给用户之前发现并改正
- 确保最终交给用户的产品功能符合用户的需求
- 确保产品完成了所承诺或公布的功能
- 确保产品满足性能和效率的要求
- 确保产品健壮和适应用户环境
- 建立软件质量的信心,度量和提高被测软件的质量。
软件测试的原则
-
缺陷的集群性举例说明:
二八原则是巴列特定律。
总结果的80%是由总消耗时间中的20%所形成的。按事情的“重要程度”编排事务优先次序的准则是建立在“重要的少数与琐碎的多数”的原理的基础上。举例说明:
80%的销售额是源自20%的顾客; 80%的电话是来自20%的朋友; 80%的总产量来自20%的产品; 80%的财富集中在20%的人手中; 20%的客户为企业带来80%的利润! 80%的客户为企业带来20%的利润!这启示我们在工作中要善于抓主要矛盾,善于从纷繁复杂的工作中理出头绪,把资源用在最重要、最紧迫的事情上。
杀虫剂悖论:用同样的程序可能测不出bug;思维固化;交叉测试
没有失效不代表系统是可用的:要符合客户需求
独立的测试团队
测试的阶段:
SIT (开发阶段) 内部的测试人员
UAT (验证阶段) 用户验收产品——第三方的测试人员
测试的过程:需求分析==>测试计划(方案)>测试用例>执行测试 ==>测试报告
常见软件系统架构
B/S架构
(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。该模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用成本。
BS分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性比C/S低、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,难以实现传统模式下的特殊功能要求。
C/S架构
C/S架构全称为客户端/服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的PC端或者工作站,客户端要依靠服务器来获取资源。C/S架构是通过提供查询响应而不是总文件传输来减少了网络流量。它允许多用户通过GUI前端更新到共享数据库,在客户端和服务器之间通信一般采用远程调用(RPC)或标准查询语言(SQL)语句。
B/S 与 C/S对比
1、客户端要求
- C/S客户端的计算机电脑配置要求较高。
- B/S客户端的计算机电脑配置要求较低。
2、软件安装
- C/S每一个客户端都必须安装和配置专用的软件。
- B/S最大的优点就是不用安装任何专门的软件,只要有一个浏览器就可以。
3、软件升级和维护
- C/S每一个客户端都要进行升级和维护。
- B/S客户端不必安装及维护。
4、安全性
- C/S一般面向相对固定的用户群,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统应采用C/S结构。
软件测试的分类
按开发阶段划分
- 单元测试:代码性的测试(国内基本没有),代码层面很小功能点的测试 ==>
是指对软件中的最小可测试单元进行检查和验证。
- 集成测试:接口测试阶段(功能之间相互独立,还未连接) ==>
也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行*集成测试*。
- 系统测试:SIT测试阶段(模块连接之后) ==>
是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。
- 验收测试:用户测试(内部/用户/第三方测试) ==>
是部署软件之前的最后一个测试操作。
按是否查看代码划分
- 白盒测试:对应单元测试(能看到内部代码) ==>
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试