软件测试基础理论及测试分类

  1. 什么是软件

软件=计算机程序+程序所用到的数据+有关的文档资料

  1. 系统软件和应用软件

应用软件:比如qq,微信

系统软件:比如windows操作系统、数据库

  1. C/S架构和B/S架构

C/S架构:client-server,必须要安装一个客户端才能使用的软件,

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

B/S架构:browser-server,只需要一个浏览器就可以访问服务

优点:只需要更新服务器就可以

  1. 软件测试是什么

定义:使用人工和自动化的手段来运行某个程序,其目的在于是否满足规定的需求或弄清预期结果与实际结果之间的差别。

目的:1)为了发现错误(找到bug)

2)检测产品是否符合需求(提高质量)

3)提高用户体验

比如:使用qq发现了一个错误,是否属于软件测试? 不是,目的是为了交流,不是为了发现问题

  1. 软件测试的分类

1)按测试的阶段分:

单元测试:对模块/函数进行的测试(对代码的测试,执行者:开发)

集成测试:把多个模块/函数组装到一起进行的测试(对代码的测试,执行者:开发)

系统测试:计算及程序结合外设+网络等其他元素进行的测试,不仅测试程序还结合其他要素(执行者:测试人员)

验收测试:以用户为主,用户对软件进行验收

Alpha测试:把用户请到开发方进行的测试,测试环境受开发放测试,测试人员较少,测试时间集中,执行者:测试人员、用户、公司内部人员

beta测试:测试环境不受开发方控制,测试人较多,时间不集中

两者区别:测试场所不一样,一般先做Alpha测试,在做beta测试

2)按测试技术划分(是否查看代码)

黑盒测试:只关注外部输入与输出,不关注程序内部的逻辑

白盒测试:既要关注内部的逻辑具体实现,也要关注外部的输入与输出

灰盒测试:同时关注内部逻辑+外部输入输出

3)被测对象是否运行划分

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

静态测试:不需要运行被测系统(界面检查、文档检查)

4)按不同的测试手段划分

手工测试:点点点

自动化测试:代替手工,工具/代码

5)按测试包含的内容划分

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

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

安全测试:系统安全的测试(sql注入)

兼容性测试:被测系统在不同测试环境下是否正常

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

性能测试:某个特定时间,用户数量剧增,软件是否正常

其实正常的测试应该按照内容来测,先测试功能、界面,然后考虑系统的安全性、兼容性、易用性,最后看一下系统的性能,这些方面过了之后,系统上线也就差不多了

6)其他测试

冒烟测试:在进行正式的测试之前对主要核心功能进行的测试

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

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

灰度测试:部分人能看到更新的内容,根据反馈在对所有人进行发布

A/B测试:AB的两种功能都是可用的, 投放的用户群体无差别,让用户选择更受欢迎的功能,后期可能是A上线,也可能是B上线

你可能感兴趣的:(功能测试)