软件测试基础

软件是控制计算机硬件工作的工具

 

 

软件产生过程:

1.需求产生(需求方、产品经理)

2.需求文档(产品经理)

3.设计效果图(UI设计师)

4.产品开发(研发人员)

5.产品测试(测试人员)

6.部署上线

软件测试:使用技术手段验证是否满足使用需求

软件测试的目的:减少软件缺陷Bug,保障软件质量

测试主流技能:

  1. 功能测试(测试主要验证程序的功能是否满足需求)
  2. 自动化测试(使用代码或工具代替手工,对项目进行测试)
  3. 接口测试—工具、代码实现(使用代码或工具验证程序中的接口是否访问正常)
  4. 性能测试-工具、代码实现(模拟多人使用软件,查找服务器缺陷)

就业方向:

1.功能测试+接口测试

2.功能测试+性能测试

3.功能测试+web自动化

常见测试分类:

1、按测试阶段划分:

1.单元测试

(又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试结构出发设计测试用例 。多个模块可以平行地独立进行单元测试 针对程序源代码进行测试)

2.集成测试

(又称组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分; 针对模块之间访问地址进行测试)

3.系统测试(对整个系统进行测试包括功能、兼容、文档等测试)

4.验收测试

(验收软件是否符合用户需求的测试;主要分为内测、公测,使用不同人群来发掘项目缺陷)

α测试:

1、Alpha是内测版本

2、通常只在软件开发者内部交流

3、一般而言,该版本软件的bug较多,普通用户最好不要安装

β测试:

1、Beta是公测版本,是对所有用户开放的测试版本

2、这一版本通常由软件公司免费发布,用户可从相关的站点下载

3、通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。

γ测试:

Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了,与即将发行的正式版本。

 

2、按代码可见度划分:

1.黑盒测试:不关注源代码,针对程序UI功能进行测试(源代码不可见,UI功能可见)

2.灰盒测试:针对程序部分代码进行测试(接口)(部分源代码可见,功能不可见)

3.白盒测试:针对程序源代码进行测试(全部代码可见,UI功能不可见)

3、按是否运行分类:

1.静态测试

不运行软件,静态的观察软件是否符合预期

2.动态测试

运行软件,在运行过程中测试

4、按是否自动化:

1.手工测试

通过测试工程师手工对软件进行测试

2.自动化测试

通过编程写代码,通过程序自动化测试软件是否有bug

5、其他分类:

1.冒烟测试

对软件最基本的流程和工作做一个粗略的测试,看最基本的流程是否能跑通

测试拿到研发的第一个版本,一般先冒烟

2.回归测试

当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试

3.随机测试

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分

4.探索性测试

一边了解和学习项目,一边测试项目

探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统

 

质量模型:(衡量一个优秀软件的维度)

1.功能性:适用性、准确性、互操作性、保密安全性、,功能数量、功能正确实现、错误处理情况

2.性能(效率):时间特性、资源利用性,服务器每秒处理请求数、服务器硬件配置是否满足

3.兼容性:

浏览器:谷歌、IE、火狐、欧朋、苹果

操作系统:

Win系统:wind7、wind8、wind10、其他

手机:分辨率、品牌、系统、网络、其他

4.易用性:易理解性、易学性、易操作性、吸引性,简洁、友好、流畅、美观

5.可靠性:成熟性、容错性、易恢复性,无响应(出现无响应)、卡顿(响应时间慢)、死机(系统崩溃)

6.安全:传输加密、存储加密

7.可移植性:网站数据迁移,适应性、易安装性、共存性、易替换性

8.可维护性:易分析性、易改变性、稳定性、易测试性

软件开发模型的介绍:

1、瀑布模型(重点):

1.需求分析(研发分析需求说明书,判断需求的可实现性)

2.概要设计(用到具体的技术点,大致模块划分)

3.详细设计(详细到可以为编码做支持,类和类关系,类的设计,函数设计,各个接口的细节,数据表的关系,字段关系)

4.编码(依托于详细设计进行编码操作)

5.软件测试

6.软件维护(上线后也是需要持续维护)

特点:

线性模型:每一步都是按顺序来执行

文档驱动:每一步都有文档产出

优点:

开发的各个阶段比较清晰

当前一阶段完成后,只需关注后续阶段

缺点:

依赖于早期的需求调查,不适应需求的变化。

风险往往延至后期才显露,失去及早纠正的机会

2、快速原型模型(了解):

一边确定需求,一边实现

优点:

避免瀑布模型的缺点,可以适应早期的需求变化

缺点:

适合小型项目

3、螺旋模型(了解):

 

 

特点:

引进了风险分析活动

优点:

螺旋模型很大程度上是一种风险驱动的方法体系

缺点:

采用螺旋模型需要具有相当丰富的风险评估经验和专门知识

 

测试模型:

1、V模型(重点):

从研发的瀑布模型来的

 

 

 

 

优点:

(1)测试V模型即包含了底层测试又包含了高层测试

(2)每个步骤都是文档驱动的

缺点:

(1)当需求变更时将会导致阶段反复,返工量非常大,模型灵活性比较低

(2)和研发瀑布模型一样,不能适应需求的改变,灵活性比较低

2、W模型(认识):

测试伴随整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。

 

 

优点:

(1)强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试

(2)更早地介入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复

缺点:

(1)使用起来技术复杂度高,对于需求和设计的测试要求高,实践起来困难

 

测试流程:

1.需求评审(确保各部门需求理解一致)

2.计划编写(测什么、谁来测、怎么测)

3.用例设计(验证项目是否符合需求的操作文档)

4.用例执行(项目模块开发完成开始执行用例文档实施测试)

5.缺陷管理( 对缺陷进行管理的过程)

6.测试报告(实施测试结果文档 )

测试用例(Test Case):

定义:为特定的目的而设计的一组测试输入、执行条件和预期结果的文档

1.用例:用户使用的案例

2.测试用例:是为测试项目而设计的执行文档

3.测试用例的作用:防止漏测、实施测试的标准

4.用例设计编写格式:

 

 

 

 

 

 

用例编号:项目_模块_编号

用例标题:预期结果(测试点)

模块/项目:所属项目或模块

优先级:表示用例的重要程度或者影响力P0~P4(P0最高)

前置条件:要执行此条用例,有哪些前置操作

测试数据:操作的数据,没有的话可以为空

测试步骤:描述操作步骤

预期结果:期望达到的结果

例子:

 

 

 

 

 

posted @ 2022-09-27 23:56  liuchun玲  阅读(57)  评论(0编辑  收藏  举报