• 1
  • 1
分享

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

一、软件的分类

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   35岁干不动,只是借口而已。  能干的,依然能够很好的在这个行业发展,干不了的,注定会被一浪比一浪高的后浪,拍死在沙滩上。  如果你到了这个年龄,还没有到高级测试开发工程师或者架构师的级别,那么真的是不好干了。  如果你是30+的年龄,可能还不会那么明显,但是35+,你会面临另外一个层次的竞争。  简单来说,就是年龄上去了,但是能力没有上去。  你不是具备10年工作经验的测试工程师,你只不过是一年的工作经验用了10年。  这种是最无奈的。如果是这样,企业倒不如去招一个2-3年经验的人,年轻,抗造。  前一段时间我也在朋友圈放出过几个职位,蚂蚁金服、猎豹等,35+的人是他们最喜欢的,但是要求...
            1 0 1415
            分享
          •   在经过一段时间的内测之后,微信现在大规模上线了朋友圈置顶功能。  在更新到最新版本微信之后,可以在自己朋友圈中点击右上角的三个点,此时会弹出一个菜单,出现“置顶”选项。  需要注意的是,目前微信依然提示不要过于依赖该功能,目前依然在测试中,后续随时可能会取消。  有网友表示,这个功能对于微商、销售人员来说堪称完美,可以将店铺链接、二维码等置顶,被第一时间看到。  而对于普通用户而言,其实作用并不是很大,除非是将一些婚纱照、结婚纪念、生日纪念等比较有意义的内容置顶,其他内容也没啥置顶的必要。  最重要的是,大多数普通人都习惯了将朋友圈设置三天可见,并不愿意随时随地分享自己的生活。  不过,新...
            0 0 936
            分享
          • 有的同学可能会想,只要后台数据库表正确迁移完毕且验证完毕,那么前台程序自然不会有什么问题。但是要知道,数据库迁移测试的目标是保证数据正确、一致、可用。我们可以通过编写脚本提取新旧库表数据并使用文本对比工具(例如Beyond Compare)或MD5值对比来验证数据的正确性及一致性。但针对数据的可用性,则需要通过黑盒测试去进一步验证。因此,对于数据迁移而言,黑盒测试是十分重要的一环。我们要在后台验证数据库表正确迁移的基础上,针对性地开展功能测试。一般而言,数据库迁移是伴随着系统功能的迭代而进行的,因此我们进行数据迁移功能测试的前提就是确保新系统本身的业务功能是可用、完善的。如果新系统本身的功能就...
            0 1 3237
            分享
          • 今天我们就来浅聊一下什么是接口测试,接口测试又该如何进行呢?一、什么是接口测试?接口测试是一种常见的软件测试方法,用于测试软件系统中不同模块之间的接口。接口是指两个或多个独立软件模块之间进行数据交换的地方。在软件系统中,不同的模块之间相互依赖和交互,这些模块通过接口来实现数据的传递和共享。因此,对于一个软件系统,接口测试是至关重要的,它可以帮助发现接口错误、性能问题、安全漏洞等问题。接口测试的主要目标是检查系统的不同部分之间是否正确地传递数据和调用其他组件。二、接口测试的步骤接口测试没有说有固定的步骤,会根据每个团队的需求产生不同的步骤,但基本步骤大差不差的:1、确定接口确定哪些接口需要测试以...
            0 0 1594
            分享
          •   在水下拍摄3D图像是很棘手的,因为照明条件不一致,而且水中的颗粒会散射光线并导致失真。研究人员已经创建了一个新颖的原型系统,使用量子技术和LiDAR来克服这些困难。光探测和测距(LiDAR)系统通过测量脉冲激光从物体上反射并返回到系统接收器所需的时间(也称为"飞行时间")来创建图像。LiDAR经常被用来获得用于安全和防御的高清晰度三维图像。  现在,来自英国赫瑞瓦特大学和爱丁堡大学的研究人员已经设计了一个LiDAR系统原型,用于拍摄水下物体的三维图像。该系统使用脉冲绿色激光照亮物体,然后由数千个单光子(量子)探测器来接收反射的激光。  鉴于所使用的探测器数量众多,每秒钟...
            0 0 939
            分享
      • 51testing软件测试圈微信