软件测试定义及分类

软件的定义: 软件是计算机程序、程序所用的数据以及有关文档资料的集合 软件的分类 1:系统软件:生成,准备或执行其他程序所需要的一组文件与程序。如操作系统Wi

软件的定义:

软件是计算机程序、程序所用的数据以及有关文档资料的集合

软件的分类

1:系统软件:生成,准备或执行其他程序所需要的一组文件与程序。如操作系统Windows,数据库oracle,驱动程序,java语言系统编译环境

2:应用软件:计算机为了解决某些具体问题而购买,开发,研制的各种程序或软件包。如APP,QQ,微信

软件测试的对象

测试相关的程序,以及与程序用到的数据和有关文档资料

应用软件的两种架构形式:

B/S架构:

        Browser-server,客户无需安装客户端,使用浏览器即可访问服务

优点:每次更新服务器端即可,无需更新浏览器,用户主动性较高

缺点:过分依赖网络,没有网络时无法使用服务

C/S架构:

Client-server,需要安装客户端才能使用

缺点:每次更新,都需要更新服务端与客户端

优点:可以缓存部分数据到本地,缓解服务器端压力.某些功能在没网时候也可以正常使用

q:淘宝属于什么架构?

a:淘宝web端属于B/S架构,App端属于C/S架构。

软件测试定义:

使用人工和自动手段来运行和测试某个系统的过程,目的在于检测它是否满足规格需求,检验预期结果和实际结果之间差别

软件测试目的:

1):发现软件存在的代码或者业务逻辑错误

2):检验产品是否满足用户需求

3):提高用户体验

软件测试分类:

       <1>按测试阶段划分:单元测试,集成测试,系统测试,验收测试

  1. 单元测试(UT):主要测试程序代码,为的是确保个单元模块被正确的编译,比如具体到某模块的测试,也有具体到类、函数、方法的测试等。通常由开发完成
  2. 集成测试(IT):单元测试后,将各个单元合成完整的体系,测试软件单位之间的接口是否正确,数据能否正常传递。比如说注册和充值这两个功能是否连通.比如接口测试。测试/开发完成
  3. 系统测试(ST):把软件系统搭建起来后,按照软件需求规格说明书中的要求,测试软件性能功能等是否满足用户需求。(根据测试用例,进行完整的系统测试)测试完成
  4. 验收测试(UAT):主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,确定软件达到预期效果(用户对软件进行验收)测试完成

备注:UAT测试分为正式验收测试,非正式验收测试(Alpha测试,Beta测试)

正式验收测试:部分用户,对该产品进行一个非常详细的测试,且有具体的测试流程

Alpha测试:用户在模拟正式环境(测试环境下进行测试)

Beta测试:用户在生产环境进行测试

 

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

1.白盒测试(结构测试/逻辑驱动测试)-单元测试

把测试对象看做一个打开的盒子,掌握内部代码逻辑

2.黑盒测试(功能测试/数据驱动测试) -功能测试

不关心内部代码逻辑实现,比对数据输入后,比对输出结果与预期结果差距

3.灰盒测试-接口测试

介于白盒黑盒之间,了解部分逻辑,不如白盒了解内部代码逻辑详细完整,但比黑盒更关注内部程序逻辑

<3>按被测试对象是否运行划分:静态测试、动态测试

1.静态测试

测试不运行是的部分,根据文档如产品说明书,对软件进行检查审阅

2.动态测试

运行软件来检验软件的动态行为和结果正确性

<4>按不同测试手段互粉:手工测试、自动化测试(功能自动化、性能自动化)

1.手工测试:

利用测试人员手动逐条输入测试数据,比对观察结果

2.自动化测试:

利用自动化工具代替测试人员输入测试数据,执行测试用例

<5>按测试内容划分:功能,界面,兼容性,安全,性能,易用性

1.功能测试:

保证软件功能的正常

2.界面测试:

检验软件的UI界面显示正常

3.安全测试:

模拟非授权内部或外部人员,尝试各种方式对被测软件发起入侵(sql注入攻击,跨站脚本攻击,DDOS(分布式拒绝服务攻击)),检测系统是否存在安全漏洞

4.兼容性测试:

模拟不同设备不同浏览器不同系统不同版本等条件下,软件的兼容性包含硬件与软件

5.易用性测试:

功能可以正常使用,模拟用户操作体验,看操作是否符合用户操作习惯呢

6.性能测试(负载测试,压力测试):

性能测试:模拟正常,峰值,异常条件下测试系统的性能指标

压力测试:并发不变,查看持续一段时间后服务器状态

负载测试:增大并发,查看服务器状态

q:测试旧版本在不强制升级情况时依然能正常使用属于什么测试?

a:功能测试.功能测试中包含强制升级测试与非强制升级测试,非强制升级测试时需要测试旧版本功能依旧可以正常使用,因此应为功能测试

<6>其他测试:冒烟测试,回归测试,探索性测试/自由测试

冒烟测试:

测试软件基础功能是否可以正常使用

回归测试:

开发将bug修复后,验证缺陷是否被修复,保证修复的缺陷不会重现。同时测试所有可能影响的功能点,验证修复未对其他相关功能产生影响。推荐使用自动化跑批处理所有回归测试用例

探索性测试:

发挥测试人员主观能动性,对可能存在缺陷的功能点设计执行测试用例

作业Q&A:

      Q1:什么是软件测试?软件测试目的是什么?

 A1:软件测试指使用自动或手动手段执行和测试软件的过程

软件测试目的:

       1:发现软件中存在的代码或业务逻辑错误

       2:检验软件是否符合用户需求

       3:提高用户体验

Q2:软件测试分类有哪些?

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

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

3:按不同测试手段互粉:手工测试、自动化测试(功能自动化、性能自动化)

4:按测试内容划分:功能,界面,兼容性,安全,性能,易用性

5:其他测试:冒烟测试,回归测试,探索性测试/自由测试

Q3:什么是黑盒测试?

A3:不关心内部代码逻辑实现,比对数据输入后输出结果与预期结果差距的测试

 

标签: 软件测试 淘宝