软件测试基础理论知识

一、测试思维角度及详解(重点

1、需求测试

        需求:就是一个文档,制作商品的需求(全称:软件测试需求规格说明书,简称srs)

        需求:出自产品,产品根据客户要实现的功能,将内容整理成文档,给到开发和测试,开发就根据需求编辑代码,测试根据需求写用例

        测试需求:需求是否合理,需求有没有错别字,需求是否规范,需求是否是唯一,是否冗余

        案例水杯:测试制作水杯的说明书

2、界面测试(ui测试)

        界面测试也是外观测试,也称为ui测试

        测试界面:测试形状,颜色,大小,类型,布局、格式,风格,控件位置等

        案例水杯:水杯的颜色,形状,大小等        

3、功能测试

        功能测试定义:指对产品软件的各个功能进行验证,验证产品是否达到客户要求。

        案例水杯:喝水、装水,制冷,保温等

4、兼容性测试

       案例水杯:装水,装油,装醋等

        软件兼容:操作系统:win10,win11,mocos、ios、andriod等

        浏览器:谷歌,uc、ie等

5、性能测试

        a、压力测试(也叫破坏性测试)

        定义:有一个临界点,突破临界点,查看系统运行状态

        案例水杯:一个杯子能装5升水,直接倒入6升,查看状态

        b、负载测试

        定义:有一个临界点,慢慢地接近临界点,查看系统运行状态

        案例水杯:一个杯子能装5升水,倒入4升,4.5升,4.8升,5升查看状态

6、安全测试

        案例水杯:制作材料是否有毒,烫伤

        软件安全:金额、用户信息、病毒,木马,加密、权限

7、可靠性测试

        定义:在规定条件下,可持续的寿命的最长时间。(通常使用各种设备模拟不同的场景,比如高温,低温的情况,加速反映产品在环境中使用的状态来验证)

        案例水杯:装200oc度的水

8、可移植性测试

        定义:指对设计程序与硬件,软件之间的兼容性测试组合

        软件是否录到指定的软件或硬件上运行,由于结构不一样,导致某一类型上的软件不能再另一个计算机上运行。

        例:电脑配置: 16g  258   cpu  2.8   运行腾讯会议

               电脑配置: 4g  258   cpu  2.0   无法运行腾讯会议        

9、易用性测试

        定义:指是否方便使用,可以理解为:易学性,易操作性

        案例水杯:logo,吸管、背带、被套、过滤网、隔热层等

        软件易用性:中英翻译、字体调整大小,说明书、分辨率的修改、颜色切换等

二、计算机基础知识

1、硬件:

        输入设备、输出设备、运行器、控制器、存储器

        硬件的五个部分:运行器(cpu),控制器(主板),存储器(硬盘),输入设备(键盘,鼠标),输出设备(显示器,音响)

2、软件:

        qq、微信、腾讯会议,滴滴、美团

3、pc机:

        指的是个人电脑(超级计算机、小型机、大型机、工作站)

4、物理机:

        物理机是相对虚拟机而言的实体计算机的称呼,物理机提供给虚拟机以硬件环境,也是称为寄主。

5、虚拟机:

        一个物理机虚拟出来机器

6、便携机:

        笔记本电脑

7、os :

        操作系统

        windows10(x,xp,7,8 ,11),macos系统,llinux系统,安装系统,鸿蒙系统,ios系统、塞班系统等

8、共享:

        共享资源,共享数据,共享信息

9、备份:

        在拷贝一份资料,比如备份系统,备份数据

10、还原:

        使用备份的数据还原(恢复数据)

11、路径:例:E:\app\apapium222

        文件夹:appium

        文档:dd.txt

        目录:apapium222

12、bs架构和cs架构(重点

        bs :浏览器====服务器(web)

                b:broeser  浏览器

                s:server  服务器

        bs的应用:百度、csdn、论坛、知乎

        cs :客户端====服务器(web)

                c:client 客户端

                s:server服务端

        cs的应用:抖音、qq、微信、美团、酷狗

        区别:

        1)bs不要更新,直接网址访问,cs  需要下载客户端,需要定期更新

        2)bs 对服务器性能要求高,cs 客户端能分摊部分性能压力

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

        优缺点:

        bs 优点:无序安装、服务器好维护、信息量比较大、资料多

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

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

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

13、软件分类

        单机软件:一般指的是不收费,不需要联网的软件

        享软件共:一般指的是不收费,部分收费,如wps

        开源软件:公开的软件,代码公开,开发,也不收费

        商业软件:都是收费的,把软件当作一个商品交易

14、人员的架构

        ceo 首席执行官

        cto 首席技术官(负责技术)

        pm  项目经理

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

        产品经理:(需求就是产品输出)

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

        人员:产品,业务员  

        主要收集信息,整理资料

        开发经理:

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

        开发:前端开发,后端开发

        前端开发:对页面的布局,前端编写(html,css,js等)

        后端开发:负责代码逻辑实现;(java、python,c++,c,php)

        在公司后端开发多,前端开发少 :大概比例1:5

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

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

        测试人员:(软件测试工程师,测试工程师)

        职责:熟悉需求、编写用例、执行用例

   总结:测试小组基本人员架构:项目经理,测试经理,产品经理,测试人员,开发人员,运维(负责公司环境搭建,维护环境)

三、软件测试基础理论(重点

1、软件测试

        测试定义:以检验产品是否满足需求为目标。

        软件测试定义:a、验证软件的正确性    b、发现软件中的缺陷(bug)

2、为什么测试?

        a、软件运行本身就会出问题

        b、代码和文档师人写的,人难免会出错

        c、环境会影响软件出现问题

        d、软件测试活动是保证软件质量的活动之一

3、测试用例:

        包含字段:用例编号,用例标题、前置条件,用例步骤,预期结果,优先级。

4、测试计划:

        包含测试目的、测试背景、测试范围、测试准入准出、人力资源配置、测试环境配置、测试任务与进度、风险及风险管理,测试交付档案。

5、测试报告:

        包含测试目的、测试范围、测试背景、测试实施日期、测试人员、bug清单、用例清单、测试结果。

6、软件的生命周期:

        a、指的师软件从产生到报废的整个流程 

        b、软件生命周期包含哪些阶段:

        1)客户引入问题或定义

        2)可行性(涉及经济,商业,技术)

        3)项目招投标

        4)项目立项

        5)需求分析

        6)开发阶段(开发,测试,上线)

        7)维护

7、软件的生命周期模型

        (1)瀑布模型(淘汰)

        (2)敏捷开发模型:周期短,效率高

        (3)w模型

        (4)增量开发模型

        (5)迭代开发模型

        (6)V模型(重点)

        (7)H模型(重点)

        v模型   

         需求(简称:srs) 【产品输出】     全称:软件需求规格说明书  

        1、用户需求   

        类型:一个文档;

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

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

        简称:(HLD)

        类型:文档

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

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

        3、详细设计

        简称(LLD)

        类型:也是一个文档

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

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

        v模型的四个阶段(重点):单元测试、系统测试、集成测试、验收测试

        (1)单元测试

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

        单元测试也是最小的测试单位;

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

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

        (2)集成测试

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

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

        (3)系统测试

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

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

        (4)验收测试(重点

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

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

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

        α测试和β测试区别:

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

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

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

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

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

                                备注:

                                (1)集成测试(it)和系统测试(st)  合并成(sit测试),

                                (2)sit测试(系统集成测试), 技术测试 ;uat测试(验收测试)

                                (3)sit环境 (sit1环境,sit2环境,sit3环境);uat环境(专用来验收环境)

                                (4)环境:

                                        a.线上环境(也叫生成环境)

                                        b.测试环境:测试人员使用

                                        c、开发环境:开发人员使用

        H模型(重点

         产品开需求会议====测试和开发拿到需求===分析需求===编写测试计划(测试经理)===编写测试用例===评审用例,评审通过===将用例导入用例管理工具===搭建环境====开发提测,达到准入要求====部署项目包到环境中=====开始冒烟测试===sit1系统集成测试====有bug提交给开发===开发修改好===提交第二次代码包=======部署项目包到环境中===在冒烟测试===sit2测试===以此类推===直到达到准出要求0bug,用例100%执行===输出测试报告===通知uat测试=====uat验收通过===封装版本===等待上线===准备线上数据===上线===线上测试===测试无bug表示上线成功。

                 备注:

                  冒烟测试:测试将代码部署到环境中的首测

                  sit测试用例来源:概要设计和需求分析

8、基本测试元组

  1. 测试的标准是用户需求
  2. 测试不仅仅是单纯的软件本身的测试
  3. 软件外在没有失效不代表软件系统是可用的
  4. 软件的完美度没有完全正确的,测试只能帮助软件更加完美,更加正确。
  5. 穷尽测试是不可能的(有些条件组合非常多,穷尽测试是不可能的)
  6. 测试应该尽早介入(早期引入的问题占到整问题数目的50%以上)
  7. 二八原则(80%的缺陷或错误会集中出现在20%的区域中)
  8. 杀虫剂效应(也就是说要不断更新用例,因为反复的执行相同的测试用例将会发现新缺陷的能力几乎为零)
  9. 测试活动依赖测试对象(测试的关注点不一样,有的更多关注安全和性能的测试)
  10. 尽量选择第三方测试(避免自己测试自己开发程序)
  11. 测试流程大体流程:测试计划输出===测试分析和设计===测试实现和执行===输出测试报告===测试文档归档

四、测试用例常用术语

1.动态测试(dynamic testing):

通过运行软件的组件或 系统来测试软件

例如:一辆汽车发动并行驶测试

2.静态测试(static testing):

对组件的规格说明书进行 评审,对静态代码进行走查

例如:一辆汽车为发动未行驶,查看外观、颜色、组成部分

3.正式评审(formal review):

对评审过程及需求文档的 一种特定评审,比如:用例评审

a、组内评审(项目组中的成员:产品,开发,测试)

b、交叉评审(测试同事成员:测试a、测试b,测试c)

4、评审员(reviewer):

参与评审的人

5、度量:

测量所使用的方法或标准 (准入,准出)

准入:测试计划编写好,测试用例编写好,测试用例评审通过,环境搭建好

准出:用例100%执行,0bug,输出测试报告

性能测试:响应时间要达到3s内

6.记录员:

记录评审会议上的会议纪要

7.技术评审(Technical Review):

同行间对技术进行的评审,目的是技术实现达成共识

8.走查(Walkthrough):

由文档作者逐步陈述文档内容,以收集信息并对内容达成一致

9.复杂性(complexity):

系统或组件的设计或内部结构比较复杂,导致难以理解,维护或验证的程度

10.圈复杂度(Cycloramic complexity):

程序中独立路径的数量。

可以衡量一个组件模块的判定结构的复杂程度。

例如:软件复杂程度

圈复杂度三种计算方式:

图片

a.圈复杂=区域数

案例圈复杂度=5个区域  

b.圈复杂度=边数-节点数+2

边10-7个节点+2=5

c.圈复杂度=判定节点+1

案例:判断节点4+1=5

案例:

代码:

if(x>100&&y>500)

then

score=score+1

else if(x>=1000z>5000)then

score=score+2

流程图:

图片

复杂度

a.圈复杂度=区域数:

3个区域

图片

b.判定节点+1

2+1=3

图片

c.边数-节点+2

7-6+2=3

案例2:

代码:

(x>100&&y>500)then

score-score+1

else if(x>=1000z>5000)

)then

score=score+2

else

score=score+3

end if

控制图

图片

a.区域数=3

b.判定节点+1=3

c.8-7+2=3

11.控制流(Control Flow):

执行组件或系统的一系列顺序的路径

12.数据流(Data Flow):

表示数据对象的顺利或状态发生变化的过程

例如:状态变法:待支付==》已支付,代发货==》已发货,代签收

13.控制流图

控制流图(CFG,Controlflowgraph)也叫控制流程图,是一个过程或程序的抽象表现。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值