软件测试基础理论

软件基础的理论

一, 什么是软件产品

它是一个逻辑产品,没有实体,包括程序,文档和数据,需要通过终端设备才能体现出来功能和作用

二, 软件产品的中间过程文档

客户需求

产品需求

需求规格

项目计划

版本计划

技术选型报告

竞争对手调研报告

概要设计

详细设计

测试计划

测试方案

测试用例

测试报告

缺陷跟踪单

三, 完成软件的角色有哪些

产品经理(PM):需求调研,客户对接,输出需求文档

项目经理(PM):项目计划,进度把控,重大事件决策,人员调度,风险管理,协调团队

架构师(FD): 技术选型,技术专家,关键模块实现

程序员(FG):设计,编码,修复bug

测试工程师(TE): 找出软件中存在的bug并提交

四, 软件产品的开发过程

软件产品从最初的构思到最后的版本发行的过程

五, 常见的开发模型

瀑布模型,敏捷开发模型,V模型,W模型,X模型,H模型,螺旋模型

1,瀑布模型的流程:项目计划-需求分析-软件计划-程序开发-软件测试-集成维护

软件测试基础理论
  • 特点:线性结构,各阶段都具有里程碑的意义,文档驱动,阶段评审机制
  • 优点:提供了一个软件开发的基本框架,有利于大规模软件开发和管理,有利于开发方法和工具的使用,提高了软件的质量和效率
  • 缺点:开发时间拉得太长,错误修改成本太高了

2, V模型

软件测试基础理论

3, W模型

软件测试基础理论

4,敏捷迭代模型

站会(晨会):
三个问题: 昨天做了什么、今天要做什么、遇到了什么问题 时间控制在15分钟内
不需要实际去解决问题(会后的事情)

​ 产品负责人(PO): 指定产品发布日期和内容,有权接受或拒绝开发成果

​ 流程管理员(SM): 负责整个开发过程的流程管理,打通开发和客户之间的沟通壁障

​ 开发团队(ST): 根据规定流程完成开发工作,不同人负责不同的技术实现、工作方式不拘于形式,只要能完成目标即可.

六, 软件开发过程模型的目的

  • 使软件满足客户的需求
  • 提高产品质量,降低开发成本
  • 项目可管理,进度可控
  • 作为测试 ,运用自身的技能,尽量协助创造完美的软件

七, 软件的生命周期

需求-设计-编码-测试-维护-升级-废弃

八, 软件质量的定义:反应实体满足或隐含需要的能力的特性总和

九, 软件质量模型

六大特性: 功能性,可靠性,易用性,效率,维护性,可移植性

(1) 功能性: 功能性是指当软件在指定条件下使用,软件产品满足明确和隐含要求功能的能力

(2) 可靠性:在规定的时间下,规定的条件下完成规定功能的能力

(3) 易用性:易理解,易学习,易使用,吸引用户

(4)效率性:对于资源利用情况,软件提供适当的性能的能力

(5)维护性:四规定,在规定条件下、规定时间内、使用规定方法或工具修复规定功能的能力

(6)可移植性:从一种环境迁移到另一种环境的能力

十, QA和QC的区别

(1) QA:主要从事事先的质量保证活动,以预防为主,减少降低错误的发生的几率

(2) QC:主要从事事后的质量检查活动,期望发现并报告问题

(3) QA偏向与质量管理体系和维护,质量培训,认证体系审核,QC便向与质量检测和控制

(4) QA的工作涉及全流程所有部门,范围较广,QC主要集中在质量检验这一方面

十一, CMMI:软件能力成熟度模型综合

(1)分为五个等级

  • 第一级:初始级
  • 第二级:受管理级
  • 第三级:已定义级
  • 第四级:定量管理级
  • 第五级:持续优化级

(2)PA:过程域(一类实践的集合)

(3)Goal:目标

(4)Practice:实践

软件测试的基础理论

一, 为什么要进行软件测试

为了通过软件测试,尽可能减少bug,保证软件质量

二, 软件测试的定义

为了发现软件中的缺陷而执行程序或系统的过程

三, 软件测试的目的

以最少的人力物力发现软件中的缺陷和潜在的问题,满足客户的需求

四, 软件测试的原则

  • 测试应该追溯到需求
  • 尽早测试,不断测试
  • 穷尽测试不可能,需要及时终止
  • 80%的bug来源于20%的模块
  • 程序员避免检查自己的程序(不代表不用自测)
  • 要有计划的,有目的的进行测试
  • 测试用例既要正向用例,也需要反向用例
  • 要彻底检查用例的执行结果(查看相关联的模块结果)
  • 保存测试过程中的相关文档和数据,为项目管理提供依据

五, 软件测试的对象

程序,文档,数据(不同阶段,测试对象也会不同, eg: 需求阶段测试, 测试对象就是需求文档)

六, 软件测试分类的划分标准

  • 按阶段:单元测试, 集成测试, 系统测试, 验收测试
  • 程序是否运行: 动态测试, 静态测试
  • 是否查看代码: 白盒测试, 黑盒测试, 灰盒测试
  • 其他: 兼容测试, 安全测试, 回归测试, 冒烟测试, 随机测试, app测试, 接口测试

七, 单元测试UT(Unit Testing)

  • 对软件的最小组成单元(方法,模块,类) 进行的测试, 主要测试单元内部的数据结构,逻辑控制,异常处理
  • 驱动模块:调用其他模块的模块
  • 桩模块:被其他模块调用的模块

八, 集成测试IT(Integration Testing) 系统集成测试SIT(System Integration Testing)

  • 集成测试也叫组装测试,是属于灰盒测试一种,一般通过接口测试来进行系统集成,包括系统内部接口和外部接口
  • 集成测试的方式:非增量式,增量式
  • 非增量式:一次性集成所有模块
  • 增量式:

  • 自顶向下—从顶层模块向下层模块集成

  • 自底向上—从底层模块向上层模块集成

九, 系统测试测试 S T(system testing)

将已经集成好的系统与硬件环境,网络和其他元素整合到一起进行一系列的组装和确认

是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作

功能测试、安全性测试、配置测试、易用性测试、安装测试、文档测试、稳定性测试、可靠性测试、兼容性测试、性能测试、压力测试、容量测试、负载测试、并发测试、高可用测

十, 验收测试 U A T (User Acceptance Testing)

在已经完成单元,集成和系统测试之后进行的测试主要是为了确保软件的功能是否满足合同和客户需求文档所提的要求

测试类型:黑盒测试(验收测试)

验收测试分类:

  • 非正式验收: α测试,β测试
  • 正式验收:按照完整测试流程进行测试(测试计划、测试方案、用例选择、测试报告,以及其他所有的中间过程文档)

十一, 白盒测试 W B T(White Box Testing)

把一个程序看成一个透明的盒子,主要对程序本身进行测试,包括内部结构,数据和逻辑

白盒测试用例的设计方法:

  • 逻辑覆盖(语句覆盖,条件覆盖,判定覆盖,条件/判定覆盖,条件组合覆盖)
  • 路径覆盖

十二, 黑盒测试 B B T(Black Box Testing)

也叫功能测, 据驱动测试, 是站在用户的角度,主要关注的是软件的功能和性能是都满足需求

用例设计方法:

  • 等价类划分法
  • 边界值分析
  • 场景法
  • 错误推测法
  • 判定表驱动
  • 因果图法
  • 正交实验法

十三, 灰盒测试 G B T(Gray Box Testing)

灰盒测试介于白盒与黑盒测试之间,以接口测试为主,主要关注接口的输入输出测试,应用在集成测试阶段

十四, 兼容测试 C T(Compatibility Testing)

包括三类兼容:

  • 硬件兼容:设备(同一品牌得不同机型,不同品牌)
  • 软件兼容:操作系统(不同的操作系统,同一系统操作系统的不同版本),浏览器(不同品牌,同一品牌的不同版本),数据库,分辨率,网络环境,应用软件之间的兼容
  • 数据兼容: 产品的不同版本之间的数据兼容,不同软件之间的数据兼容
  • WEB兼容性测试的侧重点:
  • 操作系统兼容性测试
  • 浏览器兼容性测试
  • 分辨率兼容性测试
  • C/S兼容性测试的侧重点:
  • 操作系统兼容性测试
  • 客户端版本服务器版本兼容性测试

十五, APP测试

专项测试:安装测试(覆盖安装,),卸载测试(清除数据,不清除数据),事件交叉(切换到其他引用然后再切回来),网络环境(移动玩络,无网络,WiFi网络,弱网),终端设备(手机型号,屏幕尺寸,分辨率,操作系统,系统版本),升级测试,降级测试,耗电量,手机发热量

十六, 回归测试 (Regression Testing)

bug修复完成后进行的测试,主要检验bug是否修复完成, 有没有引起其他问题

回归策略: 全量回归、基于风险的回归、只回归修改部分

十七, 冒烟测试 (Build Verification Testing)

开发提测后,首先要进行的测试,主要测试系统主流程、基本功能、核心功能是否能正常使用

十八, 随机测试 (Monkey测试 Ad_hoctesting)

通过adb monkey 生成随机事件,发送到移动设备中,模拟随机操作,主要针对Andriod端的app测试

Original: https://www.cnblogs.com/cn-zhouchao/p/16556811.html
Author: 小胖子学编程
Title: 软件测试基础理论

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622395/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 当你想静下来的时候,你就可以静下来。

    当你想静下来的时候,你就可以静下来。1,2年前,我有时还在为当时选的专业恼悔,因为继续教育是同事推荐的,最后同事给我的消息是,他在疫情后去其他公司,做人工智能的公司,拿月薪20K,…

    数据库 2023年6月11日
    089
  • API开放平台网关需要做什么?

    首发于公众号:BiggerBoy欢迎关注,查看更多技术文章 怎么搭建API开放平台网关? API的全称是应用编程接口(Application Programming Interfa…

    数据库 2023年6月11日
    0103
  • MySql 事务隔离级别简述,以及为什么互联网项目用:读已提交(Read Commited)这个隔离级别

    MySql 事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommitted) 是 是 是 读已提交(read-committed) 否 是 是 可重…

    数据库 2023年6月16日
    095
  • 红黑树添加删除

    上一篇写了234树对比红黑树,和红黑树某些情况需要调整的原因,这篇就只写红黑树的添加和删除 红黑树 JAVA技术交流群:737698533 性质 每个节点要么红色要么黑色 根节点是…

    数据库 2023年6月16日
    054
  • centos7更改中文

    这是在CentOS7中设置,CentOS6的是在 .etc/sysconfig/i18n 配置文件下。在root用户下操作,使用 locale 命令查看语言环境,看到 LANG=e…

    数据库 2023年6月14日
    090
  • 【Java代码之美】 — Java11新特性解读

    1.背景 美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本。非常值得大家的关注,可以通过下面的地址进行下载: h…

    数据库 2023年6月6日
    0105
  • Mysql的知识梳理

    数据准备: –建表 create table customer_jia(CID int(4), Cname varchar(20), Csex varchar(2), …

    数据库 2023年5月24日
    0117
  • centos 自己常用命令

    tar 1. 使用tar压缩文件 tar -zcvf test.tar.gz ./test/ 该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz 如果不…

    数据库 2023年6月11日
    082
  • StoneDB完成华为鲲鹏国产处理器适配认证!

    近日,一体化实时 HTAP 数据库 StoneDB 与华为鲲鹏 920 已完成并通过相互兼容性测试认证,取得 KUNPENG COMPATIBLE 证书及认证徽标的使用权。 该认证…

    数据库 2023年5月24日
    090
  • 实现一个简单的Database2(译文)

    前文回顾:实现一个简单的Database1(译文) 译注:cstsck在github维护了一个简单的、类似sqlite的数据库实现,通过这个简单的项目,可以很好的理解数据库是如何运…

    数据库 2023年6月11日
    0106
  • 操作系统(学习笔记)

    操作系统(学习笔记) PCB=process control block=进程控制块,用于存储进程相关信息,以便进程切换; GDT=global descriptor table=…

    数据库 2023年6月14日
    081
  • zabbix监控配置流程

    1.0 zabbix监控配置流程详细 管理角度: 开发 由开发人员提供监控指标来监控 运营 让其找开发要监控指标 运维 直接加 配置角度: 创建主机 创建主机组并加入主机 添加监控…

    数据库 2023年6月14日
    0100
  • 学会Linux,看完这篇就行了!

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/797ab07d.html 你好,我是测试蔡坨坨。 对于测试同学来说,Linux基本属于必学必会内容,招…

    数据库 2023年6月11日
    082
  • MySQL之SQL语句优化

    即优化器利用自身的优化器来对我们写的SQL进行优化,然后再将其放入InnoDB引擎中执行。 移除不必要的括号 select * from x where ((a = 5)); 上面…

    数据库 2023年5月24日
    079
  • 记一次stormOOM异常的产生与解决

    最近这段时间开始了一个新项目,项目使用rabbitMQ存储采集数据,通过storm对rabbitMQ中的数据进行实时计算,将结果存入到rabbitMQ的另一个队列中,再由另外一个s…

    数据库 2023年6月6日
    081
  • MySQL高可用架构搭建实战

    前言 对于 MySQL 数据库作为各个业务系统的存储介质,在系统中承担着非常重要的职责,如果数据库崩了,那么对于读和写数据库的操作都会受到影响。如果不能迅速恢复,对业务的影响是非常…

    数据库 2023年5月24日
    0113
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球