• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 经过艰苦的3技术+1HR面,终于告别0offer了,这是面试测试之前整理的牛友们的面经,答案来着互联网,有不合适的地方请大家指出。技术面中除了问项目,其余80%的问题来自牛友们提供的面经,祝大家找到合适的offer。http和https的区别https协议需要到CA(CertificateAuthority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。Https协议是...
            4 5 3637
            分享
          • 在上篇,我们知道了自身知识储备的重要性,以及如何分析JD,而这篇,我们就来看看,如何写简历,让自己的敲门砖变得完美。 ---->上一篇,点击跳转《从P6 到P7,到底要做哪些准备,掌握多少知识,亲身分享(上篇)》4、抛砖引玉4.1 编写简历    画风一转, 就到了谈论简历的时刻~    一说到简历,也是小鱼很头疼的事情。    我们都知道,简历是一块敲门砖,能不能敲开大厂的门,    就看你的砖的分量了。 &...
            2 1 8020
            分享
          •   简历在求职过程中是非常重要的,尽管简历不能决定最后的录取结果,但是一份结构清晰,内容充实且具有针对性的简历可以给你带来宝贵的面试机会。简历没有固定模板,所以今天我按照简历从上到下的顺序,逐一提供推荐的格式,并简单说明下原因,希望大家能保持频调一致,理解简历的真正目的。  一、个人信息  简历开头是个人信息,这个大家都没有异议的吧?但是个人信息应该包含哪些内容,每个人理解都不一样,我的建议是:  1、要包含:姓名、性别、学历、工作年限、电话、邮箱地址;  2、不包含:照片(对自己特自信的除外)、毕业学校(特知名的除外)、专业(特自豪的除外);  原因:  咱们是技术岗,一切以技术优先;  学...
            0 0 310
            分享
          •   在江湖行走,尤其混迹于职场这片广阔天地时,总会有那么几句话飘荡在耳畔,如同魔咒般挥之不去,直戳心窝子。就像是下面这些金句,不论是在和学生们扯皮,还是在IT圈子里闲聊,甚至在饭桌上跟朋友们推杯换盏之间,它们都会时不时地冒出来刷一波存在感:  “哎呀,那家伙一天天划水摸鱼,正事没见干多少,结果一打听,人家工资竟然比我这个累死累活的老黄牛还高!”  “我们部门新来的毕业生愣头青一枚,啥都不会,全靠我手把手教,可笑的是他领的薪水几乎和我不相上下,这也忒不公平了吧!”  “我就纳闷了,我这儿拼死拼活干,职位比她还高,结果人家凭一张嘴皮子就把工资和绩效拿得比我漂亮多了,真让人憋屈得不行!”  乍一听,...
            0 0 218
            分享
          •   一个新人进入一个新的体系,有必要建立一个框架结构的思维方式,我就来尝试给你搭搭框架,并且尽量使用比较通俗的表达方式。  质量管理工作分为哪些部分?  首先我用一张图简单给你说说质量到底是一份怎样的工作,主要分哪几块内容:可能很多业内人士看到要说我的区分方式太简单粗暴了,但是过于细化对于初学者来说可能根本就看不懂,另外我没有把领导职能加入进去  既然做质量你必须搞清楚你现在是做实物还是做体系,一个简单的区分方法(注意:不是很科学,但是对于新人来说比较容易理解)就是,实物的主要工作面向产品和过程,体系的主要工作面向流程和审核。  一个新人加入了质量部的大团队以后,如果有得选那么我的建议是先走实...
            0 0 120
            分享
      • 51testing软件测试圈微信