软件的定义
按照特定顺序组织的计算机数据和指令的集合。
软件=数据+指令。
应用场景分类
工具类软件 游戏类软件 媒体型软件 电商类软件
软件架构分类
单机版软件:红警
分布式软件:
C/S架构软件:客户端需要安装专门的软件。
B/S架构软件:客户端为浏览器。
软件测试的原则
1.测试显示软件尊在缺陷
只能证明软件存在缺陷,不能证明软件不存在缺陷只是为了降低存在缺陷的可能性
2.测试尽早介入
保证软件质量,降低风险个成本
3.穷尽测试是不可能的
软件规模越来越大,做到完全性测试是不可能的根据风险和优先级进行集中和高强度的测试
4.缺陷集群性
小部分模块包含大部分缺陷
5.杀虫剂悖论
一直使用一种方法可能无法发现新的缺陷,需要不断的提升测试方法
6.测试活动依赖于测试内容
业务的不同软件测试内部氛围不同的行业
7.没有错误是好使谬论
没有错误虽然是好的 但是如果不满足用户需求,找到和修复也作用不大
开发模型
瀑布模型
定义:软件生命周期的各项活动规定按固定顺序而连接的若干工作

优点
为项目提供了按阶段划分的检查点
缺点
完全固定 产生大量文档 增加工作量
模型是线性的,等到整个过程完毕后才能看到结果,增加了开发风险
通过强制完成日期和里程碑来跟踪各个项目阶段
不适应客户需求的变化
快速原型模型
增量模型
敏捷开发
V模型

W模型

软件测试流程
阶段名 工作内容 产出物
测试准备阶段 项目立项 ,需求分析 ,需求评审 需求文档,产品PRD
测试计划阶段 编写测试计划,计划评审 测试计划
测试设计阶段 提取测试点 ,编写测试用例,用例评审 测试用例
测试执行阶段 冒烟测试,执行测试用例,提BUG,回归测试 缺陷报告
测试完成阶段 验收测试,编写测试报告,项目上线 测试报告

软件测试的分类

按技术划分
黑盒测试
不关心盒子结构是什么样的 只关心软件的输入数据个输出结果
白盒测试
按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法
按阶段划分
单元测试
对一个模块,一个函数或类进行正确性检验的测试方法
集成测试
单元测试后,将单独的模块按照设计要求组装成为子系统或系统,作为整体进行测试的测试方法
系统测试
集成测试后, 京硬件软件看做一个整体,对系统的功能及性能的总体测试
验收测试
系统测试后,以用户测试为主,或有测试人员共同参与与检验软件质量的测试方法
按内容划分
功能测试
界面测试,冒烟测试,回归测试,业务逻辑测试,易用性测试
性能测试
压力测试:逐步增加系统负荷,知道
负载测试:系统稳定的前提下,逐步增加系统负荷达到负载极限
并发测试:是一个负载测试和压力测试的过程,增加系统负荷
兼容性测试
冒烟测试,随机测试,安全性测试,探索性测试,
alpha测试:速成内测 α测试,内部环境测试下,开发人员或测试人员在现场
beta测试 :速成外测,公测 β测试,生产环境下测试,开发人员和测试人员都不在现场