软件和测试关系
- 软件和测试
- 1.软件的基本组成
- 软件产生的过程
- 2.软件测试的原理
- 2.1测试的分类
- 软件测试技能
- 软件测试阶段分类
- 按代码可见度划分
- 2.2质量模型
- 2.3测试流程
- 3.测试用例设计
软件和测试
1.软件的基本组成
软件:用于控制硬件工作的工具。
软件分为:应用软件、系统软件。
软件应用都是由三个主体构成
页面客户端->代码服务器->数据服务器
->
代码服务器->
页面客户端->:请求
->
:响应
软件产生的过程
需求方+产品经理->需求产生
产品经理->需求文档
UI设计师->设计效果图
研发人员->产品开发
测试人员->产品测试
最后由开发人员进行上线部署。
2.软件测试的原理
软件测试就是使用技术手段验证软件是否满足使用需求。
目的:为了保证软件质量,减少软件的缺陷。
2.1测试的分类
软件测试技能
1.功能测试:主要是为了验证软件功能是否满足需求。
2.自动化测试:使用工具或代码代替手工,来进行测试。
3.接口测试:使用工具或者代码对服务端提供的接口进行测试。
4.性能测试:使用工具或代码模拟吞吐率来查找服务器的缺陷。
软件测试阶段分类
1.单元测试:针对程序的源代码进行测试。
2.集成测试:又称为接口测试,针对模块与模块之间访问地址进行测试。
3.系统测试:对整个系统进行测试包括功能、兼容、文档等进行测试。
4.验收测试:主要分为内测、公测、用于不同的人群来发掘项目缺陷。
按代码可见度划分
1.黑盒测试:只针对软件的功能或者UI进行测试。
2.白盒测试:源代码透明,单元测试。
3.灰盒测试:看部分源代码,集成测试。
2.2质量模型
衡量一个优秀软件的维度。
- 功能性
- 性能
- 兼容性
- 易用性
- 可靠性
- 安全性
- 可维护性
- 可移植性
例:
1.开发一款游戏,要求有10个主功能
2.游戏支持网页端、App端
3.游戏上线后预计每日,20W用户在线。
使用8种分类来分析这个例子。
功能性:需求(10个功能,功能详情)、测试(功能数量10个、功能正确处理、错误处理情况)
性能:需求(20W用户在线)、测试(服务器每秒处理请求数、服务器配置是否满足)
兼容性:需求(支持网页端、App端)、测试(浏览器的兼容、操作系统、手机分辨率、品牌、系统、网络)
易用性:需求(用户体验感)、测试(简洁、友好、流畅、美观)
可靠性:需求(可响应、可使用,卡顿情况,死机)、测试(可响应、可使用,卡顿情况,死机)
安全性:需求(对隐私数据进行保密)、测试(网络传输保密、数据存储保密)
可移植性:需求(数据可迁移)、测试(网站数据迁移、软件数据迁移)
可维护性:需求(保证数据可维护)、测试(出现问题容易查找)
2.3测试流程
需求评审->计划编写->用例设计->用例执行->缺陷管理->测试报告
1.确保各部门对需求理解一致
2.测什么?怎么测?谁来测?
3.验证项目是否符合要求的操作文档
4.项目模块开发完毕开始执行设计好的测试用例
5.在测试过程中出现的缺陷进行管理追踪
6.测试过程中的结果记录文档
3.测试用例设计
1.等价类法
将测试数据中具有某种共同特征的数据集合,对这个集合进行划分。
2.边界值法
选取正好等于、刚好大于、刚好小于边界的值作为测试数据。
3.判定表法
是一种以表格形式表达多条件逻辑判断的工具。
4.场景法
也称为流程图法,是使用流程图描述用户的使用场景、然后通过覆盖流程路径来设计测试用例。
5.错误推断法
根据以往的测试经验推测系统可能出现的问题。
根据经验列举出可能出现问题的清单,根据清单推测问题,发现缺陷。