软件测试中的理论

软件测试知识:

为什么要测试?

(1)代码是人写的,难免会出错

(2)软件本身就会存在问题,非正常运行也会问题

(3)环境会影响软件出现问题

(4)软件测试活动是保证软件测试质量之一

测试的定义什么?(重点)

制造业定义:以检验产品是否满足需求为目标

软件行业定义:

a、验证软件的正确性

b、发现软件中的缺陷(找bug)

测试的基本原则:

1、测试是从用户的角度去测试;(用户故事测试)

2、测试不仅测试是软件本身,(比如:测试环境,配置,网络等)

3、软件外在可用,不代表软件没有问题(比如:aap能下载安装,点击就闪退)

4、软件测试是没有完成正确,只有更加完美

5、测试是永远测不完的

6、测试应尽早介入(比如:建房,开始就介入测试就可以发现更多问题,等)

7、2/8原则, (80%的错误集中在20%的区域)比如:

8、杀虫剂效应

9、测试尽量选择第三方测试

10、测试活动的依赖对象(功能测试,性能测试,安全测试等)

软件生命周期?

指的是软件从产生到报废的整个过程,是一种时间的概念。

软件生命周期包括哪些阶段?

(1)问题引入或定义
(2)可行性分析(涉及经济,政治,法律,技术)
(3)项目招投标
(4)项目立项
(5)需求分析
(6)开发阶段(设计,编码,测试)
(7)维护

软件测试按查看代码划分

1、黑盒测试

定义:黑盒测试也是功能测试,测试中把被测试的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据

比如: 计算器当作黑盒子:输入1+2=输出:3结果 就是对

2、白盒测试

白盒测试又称结构测试,透明测试,逻辑驱动测试,或基于代码测试。

白盒测试是指打开盒子去研究里面的源代码和程序结果

3、灰盒测试

灰盒测试是介于白盒测试和黑盒测试之间一种,灰盒测试多用于集成测试阶段,不仅关注输入,输出的正确性,同时也关注程序内部的情况。

b/s架构和c/s架构(重点)

(1)bs: 浏览器------服务器(web)

b:broeser 浏览器

s:server 服务器

bs的应用:

论坛,百度,知乎,豆瓣,csdn,博客园

(2)cs架构: 客`户端-----服务器(app)

c:client 客户端

s:server 服务器

cs应用:抖音 ,微信,qq,快手,酷狗

区别:

(1)bs 不需要更新,直接通过浏览器输入网址进行访问;

     cs需要下载客户端才能使用,需要定期更新;

(2)bs 架构对服务器性能要求高,

      cs架构客户端能分摊部分性能压力

(3)bs 不会占用存储内存,

      cs会占用存储内存

优缺点:

(1)bs优点:不需要安装直接访问, 服务器好维护,信息量比较大,资料多

     bs缺点:安全性不高、信息容易泄露,容易病毒

(2)cs的优点:手机携带方便,操作简单,上传下载相对较快,安全性高

             缺点:需要安装,升级,更新,维护,服务性相对来说难维护

===============================================

•软件测试从杯具开始
• 需求测试:制作杯子的使用说明书
• 界面测试:外观
• 功能测试:杯子是否漏水等,以及能否喝到里面的水
• 安全性测试:制作材料是否对人体有伤害
• 可靠性测试:杯子从高处落下的损坏程度
• 可移植性测试:在不同地方不同环境是否正常使用
• 兼容性测试:除了装水外是否支持装其它液体
• 易用性测试:使用是是否烫手等
• 压力测试:不断对杯子施加重量

===============================================

人员架构:

ceo 首席执行官

cto 首席技术官

pm 项目经理

职责:管理项目,负责项目的进展,工作的安排,从开发一款项目软件,直到系统上线:

比如:一个影票系统、一个微信、一个抖音、一个qq

产品经理:

职责:负责公司的产品,了解客户的需求,把客户的需求整理好成一个需求文档,提供给开发和测试,需求就是产品输出。

业务:专门了解需求

开发经理:

职责:管理开发人员,安排开发任务

开发:(也称程序员)

分为两种:前端开发,后端开发

前端开发: 对页面的布局,前端代码的编写 如html、css、js等

后端开发:负责代码逻辑(python,java,c++,c,php,shell,.net等)

测试经理:(测试主管,测试组长)

职责:管理测试人员,安排测试任务

测试人员:我们学习去应聘的岗位(测试工程师,软件测试工程师)

只要任务:编写测试用例,执行用例

运维:

职责:负责公司环境, 维护环境,

测试用例:用例标题,用例标号,前置条件,用例步骤,预期结果,优先级

v模型的四个阶段:

(1)单元测试

单元测试:

是指验证软件单元是否满足详细设计文档的规格,能正确的执行,主要是对代码的测试.

单元测试也是最小的测试单位;
在工作中单元测试一般情况是开发自测,如果需要测试进行单元测试,对测试的技术要求非常高,必须要懂开发语言;

理解:单元测试,课本上有10个单元一本书(一单元测试)

(2)集成测试

集成测试是指多个单元组合验证软件是否满足概要设计文档的规格,能正常执行,主要是模块与模块之间的数据交互。

理解:课本上有10个单元(有2个单元或2个单元模块以上测试,比如期中考试1-6单元)

(3)系统测试

系统测试是指把软件进行正常运行,对整个软件系统进行测试,验证这个系统能正常的运行,主要是测试一个整体业务的流程。

理解:课本上有10个单元(测试1-10 单元综合测试)

(4)验收测试

验收测试是指:站在用户角度去对软件进行测试,验证系统满足用户需求;

验收测试测试分为两种:alpha测试(α) 和 bete测试(β)

α测试是内部验收测试
β测试是客户方测试

α测试和β测试区别:

1、α测试测试地点:是在自己公司 ;β测试一般在客户方

2、α测试都是内部人员进行测试,开发在现场及时发现问题,及时解决;

   β测试是在客户方的员工测试,发现问题在反馈给开发在解决

3、α测试测试时间短,技术人员比较集中;

  β测试测试时间较长,测试人员不集中;

需求(简称:srs) 产品输出

全称:软件需求规格说明书

1、用户需求

类型:一个文档;

内容:对整个项目的设计、框架、功能、模块的描述

2、概要设计 (开发输出)

简称:(HLD)

类型:文档

内容:架构的初步设计文档,使用说明什么类型数据库,架构的描述,设计,模块的名称

(可理解为:盖房子的大概设计,基本框架结构)

3、详细设计

简称(LLD)

类型:也是一个文档

内容:针对功能具体的实现,模块的具体实现,具体设计,架构的具体描述,

(可理解为:房子的具体的装饰设计)

测试经理编写测试计划 (重点)

测试计划:(内容:测试目的,背景,范围,测试准入,测试准出,环境和资源,测试任务和测试进度,风险及风险管理,测试交付文档)

准入:

开发:需求分析报告,需求规格说明书,概要设计说明书,详细设计说明书,版本说明书及开发自测报告;

测试:写好测试计划,测试用例通过,测试环境搭建好

准出:

a.用例100%执行

b.0bug

c.输出测试报告

测试报告:

内容:测试目的,测试范围,测试背景,测试实施日期,测试人员,bug 清单,用例清单,测试结

根据讲解的H模型:梳理(重点记)

产品拿出需求规格说明书(srs);召开需求会议,分析需求,熟悉需求;测试负责人拿到需求开始编写测试计划;安排测试任务,各自编写测试用例;编写完用例后在对用例进行评审(有组内评审,有交叉评审);评审通过以后,导入到用例管理工具中;在搭建好环境(运维或测试人员);开发开发完也要进行提测(达到准入);测试将代码包部署到环境中;在进行冒烟测试,冒烟测试通过(如果冒烟失败,就打回版本),就进行sit1系统集成测试,将所有测试用例都执行一遍;有bug提交给开发,开发修改,再提交代码包;进行第二次sit系统集成测试,也要冒烟测试,冒烟测试以后就开始进行sit2系统集成测试,测试中发现的bug,提交给开发,开发修改,再提交第三次代码包,进行第三sit系统集成,以此类推,直到测试用例100%执行,0bug(达到测试准出),输出测试报告;通知uat验收,验收通过;封装版本,打包,准备线上数据,上线,线上测试,线上测试通过,上线成功。(如果线上有bug根据影响程度判断:影响大就回退版本,如果影响小,备注好下一个版本解决)

冒烟测试:测试当前版本的主流程,从中选取一部分主要功能的测试用例执行

===============================================

测试经理编写测试计划 (重点)

测试计划:(内容:测试目的,背景,范围,测试准入,测试准出,环境和资源,测试任务和测试进度,风险及风险管理,测试交付文档)

备注:测试用例的来源:

a、冒烟测试用例

b、验证上一个版本提交bug的用例

c、测试与bug有关联的模块用例

d、你认为可疑的测试场景和测试用例

e、测试补充的测试用例和测试场景

================================================

敏捷开发模型(重点)

敏捷开发模型是一个新型模型适应快速需求变化,交付周期比较短,轻量级的开发模式。

时间:一周,两周,一个月

产品拿到一个需求,开发一周,测试编写用例,第二周测试去测试,开发修改,修改好就上线

================================================

增量开发模型

项目被分为一系列的增量,每一个增量都交付整个项目需求中的一部分功能,需求按优先级进行划分增量的交付。

如:买家版,卖家版, 商家版, ,先买家版,

================================================

迭代开发 模型(重点)

项目被分为大量的迭代过程,一次迭代就是一个完整的开发流程,也是一个可以发布的可执行的产品,输入软件开发周期中最终产品的一个子集。

如:拍拍,微信、qq

===============================================

posted @ 2024-07-10 09:22  藕丝鲜芋  阅读(47)  评论(0)    收藏  举报