软件测试分类与软件生命周期与测试流程

一、什么是软件?

软件=程序+数据+文档

软件分为系统软件和应用软件

系统软件:为其它应用软件提供环境如windows、linux、macos、数据库mysql、驱动程序、java语言系统编译环境等

应用软件:解决某个具体需求而开发的软件如QQ、微信等APP

面试题:软件测试的对象有哪些?程序+数据+文档

应用软件架构:C/S架构、B/S架构

C/S:客户端服务器架构,需要安装客户端才能使用的产品,eg:微信、qq

缺点:升级更新时,客户端与服务端都需要更新,比如超市收银系统,每次更新每台电脑都需要重新安装客户端,有分店的情况下比较耗费人力物力财力

B/S:浏览器-服务器架构:只需要安装一个浏览器就可以使用

优点:只需要更新服务器就可以,用户主动性比较高,比如淘宝、京东

二、软件测试的定义

软件测试:使用人工或自动化手段来运行测试某个系统的过程,其目的在于检查软件是否满足规定的需求或弄清预期结果与实际结果之间的区别

规定的需求:即用需求规格说明书

面试题:我们为什么要测试?测试的目的是什么?

软件测试是为了发现程序或软件存在的代码或者逻辑错误(找到bug)

软件测试是为了检验产品是否符合用户需求(提高质量)

软件测试是为了提高用户体验(提高用户体验)

三、软件测试的分类

按测试阶段划分:

单元测试:主要是测试程序代码(多个模块/函数组成),为的是确保各个单元模块被正确的编译,对代码进行的测试,一般由开发人员完成

集成测试:把模块/函数组放在一起进行测试,测试软件单位之间的接口是否正确,数据能否正常传递,比如注册和充值两个功能是否连通

系统测试:计算机程序结合外设+网络等其他元素进行的测试,根据测试用例进行完成的系统测试,测试软件功能,性能是否符合用户需求,在系统运行中是否存在漏洞

验收测试:用户对软件进行验收

alpha测试:测试环境受控,在公司内由用户或者非技术人员进行测试,内测版本内测版本,bug很多,alpha版不能流出公司

beta测试:测试环境不受控,公测版本,测试人较多测试时间不集中,通过alpha测试的版本,开放给大众(潜在客户),目的是解决测试工程师无法模拟所有客户使用环境的问题。

按测试技术划分:白盒测试、黑盒测试、灰盒测试

黑盒测试:只关注输入输出是否正确,不需要关注程序内部实现逻辑,功能测试(系统测试)

白盒测试:关注程序内部逻辑的具体实现是否正确,代码测试(单元测试)

灰盒测试:既关注代码逻辑也关注功能实现,白盒+黑盒(多用于集成测试阶段)

按测试对象是否运行来划分:静态测试、动态测试

静态测试:界面测试、文档测试,代码走查

动态测试:运行被测系统而进行的测试

按不同测试手段划分:手工测试(点点点)、自动化测试(工具写代码)

按测试包含的内容划分:功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试

功能测试:验证软件的业务功能是否符合需求

界面测试:被测系统与原型图是否一致

安全测试:对被测系统的安全性进行测试(对帐号进行多次输入用户名密码,是否允许输入,sql注入)

兼容性测试:被测系统在不同的测试环境下是否正常运行(淘宝b/s) 浏览器:IE/Chrome/firefox

易用性测试:被测系统的各个功能是否操作方便,是否容易理解、是否容易上手

性能测试:B站、微博(热搜导致崩溃)、淘宝(双十一用户剧增)

其他测试:冒烟测试、回归测试、探索性测试(测试思维)

冒烟测试:再进行正式测试前对主要核心功能进行的测试,一般由开发或测试主管进行

回归测试:开发对存在问题的功能进行修改后,再一次进行的测试

探索性测试:根据自己的项目经验来进行的随意测试(测试思维)

四、软件的生命周期

1、瀑布型生命周期模型(基本淘汰)

问题定义及规划-需求分析(可行性分析)-设计-编码-测试-运行维护

需求分析阶段:输出需求规格说明书(原型图)

瀑布模型特点:自上而下、有顺序性

缺点:测试介入较晚、回溯成本较高、测试周期比较长

2、V模型(解决瀑布模型问题)

 V模型:测试什么时候介入?需求阶段介入

3、软件生命周期各个阶段

立项——需求分析(引入缺陷最多)——设计、编码、测试——发布——运行维护(发现缺陷最多)——淘汰

问题定义及规划:确定软件开发的目的及可行性,制定项目总体开发计划

需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求,输出需求规格说明书(SRS)终版(原型图),提交评审

设计:把需求分析得到的结果转换为软件结构和数据结构,形成系统架构

        概要设计:主要是架构的实现,指搭建架构、表述各模块功能,模块接口连接和数据传递的实现等事务

         详细设计:对概要设计中表述的各模块进行深入的分析,其中需要包含数据库的设计说明

编码:按照详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码

软件测试:在软件设计完成后要经过严格的测试,以发现软件在在整个设计中存在的问题并加以修正,测试方法主要有黑盒和白盒两种,建立详细的测试计划并严格按照计划执行

运行维护:软件维护是软件生命周期中持续时间最长的阶段,不断对软件去做升级维护以适应用户的需求

4、敏捷开发模型(常用)

是一种以人为核心、迭代、循序渐进的开发方式,强调以人为本,专注于交付对客户有价值的软件,是一个用于开发和维持复杂产品的框架,就是把一个大项目分为多个相互联系,但也可以独立运行的小项目,并分别完成,在此过程中软件一直处于可用的状态

特点:快

弱化文档作用,通过人与人之间的沟通来实现需求分析,比如每天的站立会

5、软件测试工作流程(重点)

 测试计划:测试工作统筹安排(测试内容、哪些人、任务分配、测试环境、工具、时间安排)---测试负责人/组长

编写测试用例:具体怎么来进行测试的文档

软件上线标准?测试用例执行率达到100%,一二级bug修复率100%,三四级bug修复率达到95%

发布流程:开发打包测试通过的版本,给负责部署的运维或者开发,部署到生产环境

开发环境:开发写代码的环境

测试环境:测试人员进行测试的环境(1个或1个以上)

预发布环境:(UAT环境)验收测试进行的环境

生产环境:真实的用户使用环境

笔试题:
        软件生命周期包含哪些阶段?你们的开发模型是什么?

        立项-需求分析-设计(概要设计-详细设计)-编码-测试-发布-运行维护-淘汰

        我们的开发模型是敏捷开发

        测试流程包含那些阶段?

需求分析-测试计划-用例设计-用例评审-搭建环境-冒烟测试、系统测试(用例执行)-提交缺陷-回归测试-测试报告

面试题:
        你们公司的开发流程是怎样的?

        立项-需求分析-开发计划-概要设计-详细设计-代码编写并自测-提交测试

        测试流程是怎样的?各阶段输出什么东西?

        需求分析---根据需求规格说明书输出测试点文档

        用例设计--测试用例文档

        执行测试--缺陷报告

        评估测试--测试报告

        开发环境、测试环境、生产环境是什么?你在测试环境后台添加的数据和信息,能在生产环境看得到吗?

        开发环境:开发写代码的环境

        测试环境:测试人员进行测试的环境

        生产环境:真实用户使用的环境

        看不到,各个环境是独立的,数据不互通的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值