• 0
  • 0
分享
  • 测试基本理论看这篇就够了——软件测试圈
  • 恬恬圈 2022-10-19 11:35:42 字数 3512 阅读 1034 收藏 0

软件测试(Software Testing):在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

一、软件的分类?

1、按照功能划分:

【系统软件】:如操作系统、数据库管理系统,各种驱动软件等;

【应用软件】:如Office、有道翻译、QQ等;

2、按照技术结构划分:

【单机版本】:如Office,画图工具等;

【C/S结构软件】:如QQ、微信等;

【B/S结构软件】:如新浪、搜狐、google等;

3、按照使用终端划分:

【PC端】:电脑版QQ等安装在电脑端的软件;

【移动端】:如手机版QQ、微信等安装在移动端的软件;

4、按照用户划分:

【产品软件】:Office、财务处理软件、360卫士等;

【项目软件】:如为企业定制的OA系统等;

5、按照开发规模划分:

1.png

二、软件测试的原则?

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、【冒烟】:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性。


作者:测试专享

原文链接:https://blog.csdn.net/fsz18814096635/article/details/123169223

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言测试自动化在各个行业和应用中被广泛使用,并产生巨大的效果。软件开发方法,如DevOps、Agile、Waterfall和它们的不同风格,广泛使用测试自动化来降低成本,提高效率和准确性,并加快回归测试。测试自动化是在充分的数据和分析基础上做出的战略决策。然而,许多项目和组织把测试自动化作为简单的降低成本的方法,最后却惨遭失败。它不是降低成本、节省时间和提高软件测试质量的捷径,也不应该被这样对待。在考虑将自动化作为测试的一部分之前,各种因素如SUT、技术和生命周期起着重要作用。自动化在改进软件开发方面有很大的潜力,然而不幸的是,自动化往往被视为一种奢侈品。自动化测试的优先级较低,并且自动化测试...
            0 0 1657
            分享
          •   美光公司在 MWC 2024 上发布了其最新解决方案。这是迄今为止最紧凑的 UFS 4.0 封装,尺寸仅为 9 x 13 毫米。它仍然可以提供1TB的容量和高速性能--4300 MB/s 的连续读取速度和 4000 MB/s 的连续写入速度。  美光推出这种小型解决方案的主要原因是,智能手机原始设备制造商反馈说他们希望有更大的空间放置更大的电池。这家美国公司在美国、中国和韩国的联合客户实验室开发了这一产品,并采用了其 232 层 3D NAND 技术。  与去年 6 月推出的 11 x 13 毫米解决方案相比,UFS 4.0 芯片的占地面积缩小了 20%。这将在不影响整体性能的情况下降低功...
            0 0 878
            分享
          • 一、Monkey简介Android系统自带monkey程序,模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。Monkey的使用是在产品稳定了,没有特别多的Bug时候。用monkey去测试待测应用的稳定性、健壮性(是否会发生闪退、崩溃),手机出厂前的整机测试。Monkey犹如其猴子的译名,就是杂乱无章的乱点,通过指定执行点击次数,不断的点击安卓系统,或者指定的App,给系统产生压力。注意:在使用Monkey之前,需要利用adb将PC端与安卓设备连接。二、monkey常见命令1.1、调出说明手册命令:adbshellmonkey–he...
            0 0 2351
            分享
          •   本次上线的项目属于OA系统中的一个子模块。OA系统,百度百科上解释,Office Automation(简称OA),即办公自动化,是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重复性业务活动,优质而高效地处理办公事务和业务信息,实现对信息资源的高效利用,进而达到提高生产率、辅助决策的目的,最大限度地提高工作效率和质量、改善工作环境。笔者所在公司的OA项目提供已授权的同事浏览各家公司首页、申请单据、审批单据等功能。本次谈及的项目模块即包含给公司首页浏览、公司专题配置以及模块编码功能。  产品提出的...
            0 0 476
            分享
          •   2022年早已过半,来个迟到的年中总结,说实话,2022,很迷茫,然后过的非常不如意,倒不是上一年的职业目标没达到,而是接下来的路根本不知道如何走。在没解决这个问题之前,或者说没搞清楚自己的方向之前,是迟迟不能落笔的,啊不,应该是落键盘。  下班后花了几天的时间研究了下测试的职业生涯规划,在许许多多的文章之中穿梭,结合前阵子和某公司t3级的大大面试,对自己接下来的几年职业规划,总算有了眉目,让恍惚的心总算有了着落。  先说我这三年坎坷的经历  刚毕业,计算机专业的我进入了软件测试这个行业,然后外包到了某bat公司,在今天看来,这间公司应该是学习资源最丰富的公司,可悲哀的是,基础能力薄弱,资...
            0 0 1046
            分享
      • 51testing软件测试圈微信