- 软件测试定义
- 软件测试作用
- 软件测试原则
- 软件测试对象
- 软件测试级别
- 软件测试方法
- 软件测试流程
- 软件质量
- 软件架构
软件测试定义:
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试作用:
发现软件中存在的缺陷
测试记录过程的数据,为决策者提供数据
测试降低同类产品开发风险
软件测试原则:
测试是证明软件存在缺陷
不能进行穷尽测试
存在缺陷群集现象(28定理,20%的核心功能使用80%的测试人员)
测试应尽早介入
测试应避免杀虫剂原则(同例不能重复使用多次)
不存在缺陷谬论
软件测试对象:
软件测试对象为:功能主体+使用说明书+配置数据
需求分析阶段测试对象为:各种需求说明书
软件架构阶段测试对象为:API接口文档
编码实现阶段测试对象为:源代码(白盒测试、单元测试)
测试级别:
单元测试【UT】:☞组成主体功能的最小底层代码结构,一般为类、函数、组件等
集成测试【IT】:☞将多个单元测试对象集成,验证集成的桥梁
系统测试【ST】:☞由测试人员充当用户对功能主体进行验证,细分为:功能测试、兼容性测试、安全测试、性能测试。
验收测试:分为三类,内测、公测、UTA测试
常见测试方法:
按测试对象分:
白盒测试:通过外表看本质,测试对象为底层代码,
黑盒测试:仿佛测试黑匣子,只能看到表面,即测试软件主体功能是否可用。
按测试对象是否可运行分:
静态测试:测试对象不能运行。
动态测试:将测试对象运行起来进行测试。
按测试手段分:
手工测试:测试人员手动进行测试。
自动化测试:手写测试脚本进行测试和使用自动化测试框架进行测试。
软件质量:
软件质量的特性:
功能性:软件需求满足用户的显式和隐形功能
易用性:易于用户的学习和上手
可靠性:软件必须要实现需求的功能
效率性:类似于软件性能
可维护性:软件出现问题时经过维护后可正常使用
可移植性:软件可以跨平台使用
测试流程:
1.需求分析:
核心目的:理清我们需要设计什么
需求来源:规格说明书,api文档,净瓶分析
2.设计用例:
用例就是用户为了测试软件某个功能执行的操作过程
设计用例有方法
3.评审用例:
对当前用例进行添加和删除
4.配置环境:
环境:当前被测对象运行所需要的环境,需要具有配环境的能力
环境分类:操作系统+服务器软件+数据库+软件底层代码的执行能力
5.执行用例:执行测试之前需要进行冒烟测试,冒烟测试核心师对功能主体执行流程进行验证,若冒烟有问题,则直接退回
6.回归测试以及缺陷跟踪:
回归测试:测试人员对提交给开发的bug进行再次测试
缺陷跟踪:测试发现bug需要一直跟踪
7.输出报告:
将当前测试过程中产生的数据进行可视化输出。
8.测试结束:
将测试过程产生文档进行整理
软件架构:
软件架构是指导软件开发的思想。
B/S:brower,server
C/S:client,server
架构比较:
标准:B/S架构两端都是用成熟产品,B/S显得成熟一些,
效率:C/S中的client可以分担数据处理,效率较高,
开发成本:C/S需要开发client端,相对成本较高。