软件测试分类(软件测试基础知识)
2016-05-05 20:58
295 查看
软件测试是为了发现错误而执行程序的过程。
软件测试要经历三个阶段的测试:
1>开发测试:系统的设计人员和程序员
2>发布测试:测试小组对一个系统的完整版本进行测试,然后发布给用户
3>用户测试:用户可能是内部营销组织,决定软件是否可以投放市场/发布版本等;用户也可能是客户正式测试一个系统,已决定是否应该从系统供应处接收或是进一步开发
用户测试包括:
α测试:用户+开发小组
β测试:用户,公司外部展开测试
接受测试:客户
软件开发流程:软件立项→可行性研究→需求分析→概要设计→详细设计→编码实现→单元测试→集成测试→系统测试→验收测试→运行维护
软件测试步骤:获取测试需求→编写测试计划→制定测试方案→开发与设计测试用例→执行测试→提交缺陷报告→测试分析与评审→提交测试总结→准备下一个版本的测试
软件测试的分类:
按照开发阶段划分:
①单元测试:单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试。
②集成测试:在单元测试的基础之上,将所有模块进行有序的、递增的测试。集成测试是检测程序单元或部件接口之间的关系,逐步集成符合概要设
计要求的部件或整个系统。每个系统提交集成测试时要进行冒烟测试。
冒烟测试又称为版本验证测试。主要是验证软件的基本功能是否正常。当我们拿到一个软件时首先要进行的是冒烟测试,如果冒烟测试不通过那么下面就可以不用测了。比如我们测试搜狗输入法时,它不能正确地安装,那么接下来的功能就可以不用测了。
③系统测试:系统测试是针对软件产品系统进行的测试,主要验证整机系统是否满足了系统需求规格的定义。系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素结合在一起,在实际运行的环境下,对计算机系统进行的测试。系统测试的种类一般有以下几种:
1)恢复测试:就是采取人工干预方式使软件出错,而不能正常工作,来检验系统的恢复能力。比如突然断电。
2)安全测试
3)强度测试
4)性能测试
5)其他的一些测试
冒烟测试和系统测试大多数公司都是一起进行的了,要说区别就是确认测试一般是在模拟环境下,一般是开发环境,系统测试是真实的环境。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。
冒烟测试冒烟测试(smoke test)在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为Smoke Test。在很多情况下,做Smoke Test是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。Smoke Test优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。
④验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试和评审,决定是否接收或拒绝系统。
1)对产品说明书的验证,验证系统是否和产品说明书中定义的一致,虽然前面的测试也验证的规格说明书,但是验收测试对产品说明书的验证时最严格的。如果软件有明确的用户,这时用户将会参与到验收测试中,按合同逐一检查。
2)用户界面和可用性测试,好的界面应符合这7个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性和实用性。
3)兼容性测试:主要是与硬件兼容、软件之间的兼容、数据之间的兼容。
4)可安装和可恢复测试
5)文档测试
按照测试技术划分:
①白盒测试:清楚了解程序结构和处理过程,检查是否所有的结构和路径都是正确的,检查软件内部动作是否按照设计说明的规定正常运行。
优点:白盒测试能发现程序的隐患,如内存泄漏、误差累计问题。
②黑盒测试:完全不考虑程序内部结构和处理过程,通过软件外部表现来发现缺陷和错误,只检查程序是否按照需求规格说明书的规定正常实现。
缺点:即使软件输入和输出都是正确的,也不能说明软件就是正确的,如负负得正,只有白盒测试才能发现真正的原因。
③灰盒测试:介于白盒测试和黑盒测试之间,关注输出对于输入的正确性,同时也关注内部表现,但但不像白盒测试那样细节/完整,只是通过一些表征性的现象、事件来判断内部的运行状态。
④静态测试:对软件中的需求说明书、设计说明书、源程序代码等进行非运行的检查,静态测试包括:走查、代码风格与规则检查、需求确认等。
静态测试既可以手工检查也可以使用自动化工具,如检查代码的Jtest、C++ Test等
⑤动态测试:通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。
按照测试类型分类:
①功能测试:通常采用黑盒测试,测试软件的功能是否符合功能性需求
②性能测试:在正常和负载下的状况
③安全性测试:防止非法入侵
④易用性测试:测试是否易用,主观性比较强,盐根据很多用户的测试反馈信息
⑤兼容性测试:与各种平台的兼容性
软件测试要经历三个阶段的测试:
1>开发测试:系统的设计人员和程序员
2>发布测试:测试小组对一个系统的完整版本进行测试,然后发布给用户
3>用户测试:用户可能是内部营销组织,决定软件是否可以投放市场/发布版本等;用户也可能是客户正式测试一个系统,已决定是否应该从系统供应处接收或是进一步开发
用户测试包括:
α测试:用户+开发小组
β测试:用户,公司外部展开测试
接受测试:客户
软件开发流程:软件立项→可行性研究→需求分析→概要设计→详细设计→编码实现→单元测试→集成测试→系统测试→验收测试→运行维护
软件测试步骤:获取测试需求→编写测试计划→制定测试方案→开发与设计测试用例→执行测试→提交缺陷报告→测试分析与评审→提交测试总结→准备下一个版本的测试
软件测试的分类:
按照开发阶段划分:
①单元测试:单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试。
②集成测试:在单元测试的基础之上,将所有模块进行有序的、递增的测试。集成测试是检测程序单元或部件接口之间的关系,逐步集成符合概要设
计要求的部件或整个系统。每个系统提交集成测试时要进行冒烟测试。
冒烟测试又称为版本验证测试。主要是验证软件的基本功能是否正常。当我们拿到一个软件时首先要进行的是冒烟测试,如果冒烟测试不通过那么下面就可以不用测了。比如我们测试搜狗输入法时,它不能正确地安装,那么接下来的功能就可以不用测了。
③系统测试:系统测试是针对软件产品系统进行的测试,主要验证整机系统是否满足了系统需求规格的定义。系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素结合在一起,在实际运行的环境下,对计算机系统进行的测试。系统测试的种类一般有以下几种:
1)恢复测试:就是采取人工干预方式使软件出错,而不能正常工作,来检验系统的恢复能力。比如突然断电。
2)安全测试
3)强度测试
4)性能测试
5)其他的一些测试
冒烟测试和系统测试大多数公司都是一起进行的了,要说区别就是确认测试一般是在模拟环境下,一般是开发环境,系统测试是真实的环境。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。
冒烟测试冒烟测试(smoke test)在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为Smoke Test。在很多情况下,做Smoke Test是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。Smoke Test优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。
④验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试和评审,决定是否接收或拒绝系统。
1)对产品说明书的验证,验证系统是否和产品说明书中定义的一致,虽然前面的测试也验证的规格说明书,但是验收测试对产品说明书的验证时最严格的。如果软件有明确的用户,这时用户将会参与到验收测试中,按合同逐一检查。
2)用户界面和可用性测试,好的界面应符合这7个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性和实用性。
3)兼容性测试:主要是与硬件兼容、软件之间的兼容、数据之间的兼容。
4)可安装和可恢复测试
5)文档测试
按照测试技术划分:
①白盒测试:清楚了解程序结构和处理过程,检查是否所有的结构和路径都是正确的,检查软件内部动作是否按照设计说明的规定正常运行。
优点:白盒测试能发现程序的隐患,如内存泄漏、误差累计问题。
②黑盒测试:完全不考虑程序内部结构和处理过程,通过软件外部表现来发现缺陷和错误,只检查程序是否按照需求规格说明书的规定正常实现。
缺点:即使软件输入和输出都是正确的,也不能说明软件就是正确的,如负负得正,只有白盒测试才能发现真正的原因。
③灰盒测试:介于白盒测试和黑盒测试之间,关注输出对于输入的正确性,同时也关注内部表现,但但不像白盒测试那样细节/完整,只是通过一些表征性的现象、事件来判断内部的运行状态。
④静态测试:对软件中的需求说明书、设计说明书、源程序代码等进行非运行的检查,静态测试包括:走查、代码风格与规则检查、需求确认等。
静态测试既可以手工检查也可以使用自动化工具,如检查代码的Jtest、C++ Test等
⑤动态测试:通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。
按照测试类型分类:
①功能测试:通常采用黑盒测试,测试软件的功能是否符合功能性需求
②性能测试:在正常和负载下的状况
③安全性测试:防止非法入侵
④易用性测试:测试是否易用,主观性比较强,盐根据很多用户的测试反馈信息
⑤兼容性测试:与各种平台的兼容性
相关文章推荐
- react爬坑记16---reflux
- 【HUSTOJ】1053: 字符图形9-数字正三角
- OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测
- hdu2059
- 如何利用Github Pages展示自己写的项目
- JSP语法
- 激光雕刻机改良日记(一)
- vim 使用
- C语言内存分配方式
- POJ 2142 The Balance
- UVA 531Compromise
- Linux 之 rsyslog 系统日志转发
- TabHost便签的用法
- spring从头开始(一)
- 解决android中listview中嵌套checkbox滑动时checkbox状态改变问题
- 排序算法java 二 --基数排序、归并排序
- linux下指令集
- The type java.lang.Object cannot be resolved It is indirectly referenced ...
- Shell中的while循环【转】
- H5 适配 动画animation js touch