测试基本理论-看这篇就够了
软件测试(Software Testing):在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
一、软件的分类?
1、按照功能划分:
【系统软件】:如操作系统、数据库管理系统,各种驱动软件等;
【应用软件】:如Office、有道翻译、QQ等;
2、按照技术结构划分:
【单机版本】:如Office,画图工具等;
【C/S结构软件】:如QQ、微信等;
【B/S结构软件】:如新浪、搜狐、google等;
3、按照使用终端划分:
【PC端】:电脑版QQ等安装在电脑端的软件;
【移动端】:如手机版QQ、微信等安装在移动端的软件;
4、按照用户划分:
【产品软件】:Office、财务处理软件、360卫士等;
【项目软件】:如为企业定制的OA系统等;
5、按照开发规模划分:
二、软件测试的原则?
1、测试的标准都是建立在用户需求之上。测试人员要始终站在用户的角度去看问题、去判断软件缺陷的影响。
2、基于“质量第一”的原则。当时间和质量冲突时,时间要服从质量。
3、事先定义好产品的质量标准。有了质量标准,才能依据测试的结果对产品的质量进行正确的分析和评估。
4、尽早测试。在代码完成之前,测试人员要参与需求分析、系统或程序设计的审查工作,而且要准备测试计划、测试用例、测试脚本和测试环境。
5、穷举测试是不可能的。在测试中不可能运行路径的每一种组合,然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。
6、程序员应避免测试自己的程序。程序员可能对需求说明书理解有误则无法发现问题,测试是需要带有”挑剔性”的行为。
7、软件测试计划是做好软件测试工作的前提。在进行实际测试之前,应制定切实可行的测试计划并严格执行,特别要确定测试策略和测试目标。
8、测试用例是设计出来的,不是写出来的。需要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
9、不可将测试用例置之度外,排除随意性。避免出现漏测或重复测试的情况。
10、对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
三、软件测试的分类?
1、按照测试技术划分
(1)【黑盒测试】:功能测试。黑盒测试是以用户的角度,把被测的软件看作一个不能打开的黑盒子,着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。它只检查程序功能是否按照需求说明正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。【必须进行的】
(2)【白盒测试】:逻辑结构测试,对代码进行测试。主要看代码的逻辑、算法、结构是否正确,要求懂代码,也需要写测试用例。【不一定进行】
(3)【灰盒测试】:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
2、按是否进行代码划分
(1)【静态测试】:界面、文档、代码的测试。其中代码测试重点关注代码的规范性,一般检查变量的命名,注释的频率,编程的规范性,不需要写测试用例,一般只需要有代码审查单,与白盒测试是不一样的,经常把白盒测试和静态测试结合到一起,叫做静态白盒测试。
(2)【动态测试】:使程序运行起来,看输出结果,经常与黑盒测试是同步的。
3、按照软件特性进行分类
(1)【功能测试】:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
(2)【性能测试】:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。包括负载测试、压力测试、稳定性测试等。
① 稳定性测试:叫可靠性测试(reliability testing),是指连续运行被测系统检查系统运行时的稳定程度。
② 负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
③ 压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
(3)【安全测试】:是指在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
(4)【兼容性测试】:是验证软件和其他软件、平台、系统、硬件等之间的依赖性。
4、按照不同测试手段
(1)【手工测试】
(2)【自动化测试】
5、按照测试阶段划分
(1)【单元测试】:指对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。单元测试通常由开发工程师完成,一般会伴随开发代码一起递交至代码库。单元测试属于最严格的软件测试手段,是最接近代码底层实现的验证手段,可以在软件开发的早期以最小的成本保证局部代码的质量。
(2)【集成测试】:集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
(3)【系统测试】:对整个软件系统进行全面完整的测试过程,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
(4)【验收测试】:在系统测试的后期,以用户测试为主或有测试人员等质量保证人员共同参与的测试。
alpha测试:由最终的用户、测试、开发人员等共同参与的内部测试。
beta测试:由最终的用户在实际环境中进行测试,对于一些没有固定用户群体的公共类软件(办公软件,输入法,游戏),一般会发行公测版(beta版),让用户免费使用,发现bug后进行反馈。
6、其他分类
(1)【回归测试】:指对软件的新版本测试时,重复执行上一个版本测试时的用例。
(2)【冒烟测试】:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性。
(3)【随机测试】:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
(4)【精准测试】:是指借助一定的技术手段、通过算法的辅助对传统软件测试过程进行可视化、分析以及优化的过程。也就是说,精准测试可以使得测试过程可视、智能、可信和精准。
四、测试用例设计方法?
测试用例(TestCase):是为项目需求而编制的一组测试输入、执行条件以及预测结果,以便测试某个程序是否满足客户需求。可以总结为:每一个测试点的数据设计和步骤设计。
【常见设计方法】:
1、等价类划分;
2、边界值分析法;
3、错误猜测法;
4、场景法;
5、测试大纲法;
6、因果图&判定表法;
7、正交排列法;
8、状态转换法;
具体的用法详见下一篇文章!!
五、bug的由来?
1、历史上的第一个软件bug?
bug:原意是”臭虫“或”虫子“。1947年9月9日,正当计算机刚刚被发明的时候,哈佛大学的某个计算机实验室正在做实验。由于当时的原始计算机由很多庞大且昂贵的真空管组成,运行时会产生光和热,在下午15点45分的时候,一个飞蛾钻入真空管内,导致整个计算机无法工作。当时这只小虫子从真空管中取出后,计算机又恢复正常。后来,虫子的泛称bug这个名词就沿用下来,而那个被拍死的飞蛾也就成为了历史上发现的第一个bug。
2、千年虫的问题?
在2000年,有一个著名的虫子把业内搅得不可开交,那就是千年虫问题,也叫做2000年问题。“千年虫”是指在某些使用了计算机程序的智能系统(比如一般的计算机系统以及自动控制芯片等)中,由于其中的年份沿用早期的设计,只使用2位十进制数来表示,比如用80代表1980年,因此当系统进行(或者涉及到)跨世纪的日期处理运算(比如计算1980年到2080年之间的日期)时,就会出现错误的结果,从而引发各种各样的系统功能紊乱甚至系统奔溃。
从千年虫的实际例子中也可以看出,不考虑硬件上的限制,如果当初在设计日期表示格式的时候能够想得更长远一些,就完全可以避免这个虫子的发作,从而节省一大笔修改更新软件等费用(据未经证实的来自美国国际资料公司调查报告表明,光是1995年到1998年,全球捉千年虫的开销就已经达到了惊人的1840亿美元)。
后面的文章中再与你分享关于bug的故事!!
六、测试须知的三个概念?
1、【返测】:开发修复的bug进行验证。
2、【回归】:指对软件的新版本测试时,重复执行上一个版本测试时的用例。
3、【冒烟】:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性。
【爱测试·爱分享】
更多内容可关注公众号:测试专享
专注于性能、自动化、接口测试、中间件等技术,与您分享测试技术点滴,内容涵盖:Jmeter、PTS、Python、Selenium、小程序自动化、Linux等热门测试技术,让您在实战中提升自我。在手机上阅读所有文章,随时随地都能学习。
测试基本理论-看这篇就够了相关推荐
- .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组 ...
- ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...
- 史上最全!用Pandas读取CSV,看这篇就够了
导读:pandas.read_csv接口用于读取CSV格式的数据文件,由于CSV文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍. 作者:李庆辉 来源:大数据DT(ID:hzdashuj ...
- 面试率 90% 的JS事件循环Event Loop,看这篇就够了!! !
面试率 90% 的JS事件循环Event Loop,看这篇就够了!! ! 事件循环(Event Loop)大家应该并不陌生,它是前端极其重要的基础知识.在平时的讨论或者面试中也是一个非常高频的话题. ...
- 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...
- Docker入门实战看这篇就够了(最新详细以及踩过的坑)
Docker入门实战看这篇就够了 前言 初识 是什么 容器与虚拟机 能干什么 去哪玩 安装 先决条件 查看自己的内核 安装所需的软件包(支持devicemapper存储类型) 设置镜像的仓库 设置yu ...
- NDK撩妹三部曲(四)—NDK 开发如何优雅的定位 Native 异常,看这篇就够了
NDK 开发如何优雅的定位 Native 异常,看这篇就够了 从何说起? 摘要 案例实操 aaddr2line objdump ndk-stack 1.假设我们已经通过 adb logcat 拿到了程 ...
- Java String,看这篇就够了
String,是Java中最重要的类.这句肯定的推断不是Java之父詹姆斯·高斯林说的,而是沉默王二说的,因此你不必怀疑它的准确性. 关于字符串,有很多的面试题,但我总觉得理论知识绕来绕去没多大意思. ...
- Cookie、Session、Token、JWT 看一篇就够了
目录 Cookie.Session.Token.JWT 看一篇就够了 什么是认证(Authentication) 什么是授权(Authorization) 什么是凭证(Credentials) 怎么让 ...
最新文章
- 委员建议开辟多种科研资助模式,呼唤“科研悬赏制”
- CTFshow php特性 web114
- 【CyberSecurityLearning 19】NAT与动态路由协议RIP
- 艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper
- 百度网盘小程序互转工具:wx2正式开源!
- 07- app的弱网测试
- PostgreSQL学习手册(PL/pgSQL过程语言)【转】
- .NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记...
- HierarchicalDataTemplate中的ContextMenu的Command绑定
- jQuery简单插件开发
- 尝试将程序上传Github保存
- php学习五:数组操作
- 平稳与非平稳序列的拟合及预测
- 不错的javascript极品日历
- 论QQ如何发大菜狗表情
- 共阴共阳数码管(及74HC595控制)
- 洛谷题目P1425 小鱼的游泳时间
- 一些可以参考的文档集合4
- 自动换行 word-break:break-all和word-wrap:break-word
- 3.21bootstrap