测试理论
软件的定义:
一系列按照特定顺序组织的计算机数据和指令的集合。
软件=数据+指令+文档
软件分类
一:根据应用场景分类
1、工具类软件、游戏型软件、媒体型软件、电商型软件等
二:根据软件架构分类
1、单机版软件:office、红警
2、分布式软件:
C/S架构软件:客户端需安装专门软件,如QQ、微信
B/S架构软件:客户端为浏览器,如百度、hao123
软件测试的定义
通过人工或自动化的方式来验证软件的实际结果与用户需求是否一致的过 程。
软件测试的原则
原则一:测试显示软件存在缺陷
原则二:穷尽测试是不可能的
原则三:测试尽早介入
原则四:缺陷集群性(2/8原则)
原则五:杀虫剂悖论
原则六:测试活动依赖于测试内容
原则七:没有错误是好是谬论
开发模型
一:瀑布模型
定义:将软件生命周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品的项目
需求分析(需求说明书)
系统设计(系统设计书)
程序设计(程序设计书)
编码(程序清单)
测试(测试报告)
运行及维护(维护报告,改进的系统)
测试模型
V模型:
优点:它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述 了这些测试阶段和开发各阶段的对应关系
W模型:
测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功 能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早得发现 问题。
软件测试的流程
测试准备阶段:
项目立项、需求分析、需求评审
测试计划阶段:
编写测试计划、计划评审
测试设计阶段
提取测试点、编写测试用例、用例评审
测试执行阶段
冒烟测试、执行测试用例、提bug、回归测试
测试完成阶段
验收测试、编写测试报告、项目上线
软件测试的分类
一:按技术划分
黑盒测试:
把被测试的软件看做一个黑盒子,我们不去关心盒子里边的结构是什 么样子,只关心软件的输入数据和输出结果
白盒测试 :
是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的 测试方法
灰盒测试:
一种基于程序运行时的外部表现同时又结合程序内部结构来设计测试 数据的测试方法
二:按阶段划分
单元测试:
对一个模块、一个函数或者一个类来进行正确性检验的测试方法
集成测试:
单元测试后,将单独的模块按照设计要求组装成为子系统或系统,作 为整体进行测试的测试方法
系统测试:
集成测试后,将硬件、软件看作一个整体,对系统的功能及性能的总 体测试
验收测试:
系统测试后以用户测试为主,或有测试人员共同参与检验软件质量的 测试方法
三:按内容划分
功能测试:
根据产品操作描述和需求文档,测试一个产品的特性和可操作行为是 否满足用户需求的测试方法
性能测试:
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系 统的各项性能指标进行校验的测试
兼容性测试
app
Android/IOS版本
厂商
型号
分辨率
屏幕:全屏、水滴屏、刘海屏、曲面屏、折叠屏、双面屏
web
浏览器:四类,根据浏览器内核(78)
按其他划分
冒烟测试、随机测试、安全性测试、探索性测试、回归测试、Alpha测试、Beta测试
随机测试:随机测试主要是根据测试者的经验无需测试用例对软件进行功能和性能抽查的测试方法
安全性测试:通过不同的测试方法,检验程序、网络、数据库安全性的测试方法
探索性测试:碰到问题时能随机应变,强调测试人员的主观能动性明确整体的测试计划的测试方法
Alpha测试:俗称内测,α测试。内部环境下的测试;开发人员或测试人员在现场
Beta测试:俗称外测、公测,β测试。生产环境下的测试;开发人员和测试人员都不在现场