• 5
  • 4
分享

软件缺陷:

1)软件未实现产品说明书要求的功能

2)软件出现了产品说明书指明不应该出现的错误

3)软件实现了产品说明书未提到的功能

4)软件未实现产品说明书虽未明确提及但应该实现的目标

5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好

软件测试:为了发现软件产品中的各种缺陷,而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期。 简单的说,软件测试是以发现错误为目的而执行的一个程序或系统的过程。

软件测试的目的:

  • 验证软件需求和功能是否得到完整实现

  • 验证软件是否可以发布

  • 尽可能多的发现软件中的bug

  • 尽可能早的发现软件中的bug

  • 对软件质量做出合理评估

  • 预防下个版本可能出现的问题

  • 预防用户使用可能出现的问题

  • 发现开发过程中的问题和风险

软件测试的原则:

  1. 所有测试的标准都是建立在用户需求之上 。

  2. 合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡。

  3. 80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来。

  4. 尽可能早的开展测试,越早发现错误,修改的代价越小。

  5. 发现错误较多的程序段,应进行更深入的测试。

  6. 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试 。

  7. 软件开发人员即程序员应当避免测试自己的程序

  8. 严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作

优秀测试人员应具备的素质:

  1. 沟通能力与表达能力 

  2. 好奇心与怀疑精神 

  3. 责任感与抗压能力

  4. 自信心,坚持自己的观点

  5. 耐心与细心 

  6. 逆向思维的能力 

  7. 善于学习与总结 

  8. 团队协作精神 

  9. 文档编写能力

优秀测试人员应具备的技能:

  1. 精通业务知识 

  2. 具备软件编程能力,比如C,C++,JAVA等。 

  3. 可以用脚本语言编写小测试工具

  4. 主流操作系统应用与网络知识,可以搭建测试环境 

  5. 熟练掌握各种数据库知识 

  6. 精通软件测试理论与方法 

  7. 掌握常用测试与开发工具的使用 

  8. 优秀的文档编写能力

软件测试的组织架构:

1、项目型的测试组织:测试人员作为项目组的固定成员,从头到尾的跟着项目走

图1.png

2、智能型的测试组织:测试人员参与到项目中,是以独立的测试部门委派的方式进入

图2.png

3、综合型的测试组织:项目型与职能型的结构组合并加以改造而产生的。测试部门把测试人员,分为常规项目测试人员与专项测试人员。 测试部门会把常规测试人员长期委派到项目组中,成为项目中的一员。专项测试人员,一般由性能测试工程师、自动化测试工程师、安全性测试工程师等组成。只有当项目发生专门需求测试时,测试部门才灵活把专项测试人员委派到各个项目组进行专项测试。

 图3.png

软件测试的分类:

1)按照是否执行被测试软件来分:

  静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等,主要对软件需求说明书、设计说明书、软件源代码进行检查与分析。

  动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析差异原因,并分析软件运行效率、健壮性等性能。 动态测试是目前公司主要的测试方式

2)按照测试技术分为黑盒测试和白盒测试:

  黑盒测试:黑盒测试又叫功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误。

  白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构进行测试程序,通过测试来检测产品内部逻辑是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

3)按照测试手段来分,可以分为手工测试和自动化测试

4)按照过程阶段来分,可以分为单元测试、集成测试、系统测试和验收测试

  单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求 主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。

  集成测试:将经过单元测试的模块逐步组装成完整的程序。 主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响。

  系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。 系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方 ,进行改正。

  验收测试:验收测试是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的最后一次软件测试活动,也称为交付测试。 通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。

软件开发流程(软件生命周期):

计划-》需求分析-》设计-》程序编写-》测试-》运行/维护

软件测试流程:

测试计划-》需求分析-》测试用例-》测试用例执行-》提交bug-》回归测试

软件开发模型:

  • 瀑布模型:适用于需求很明确的项目,分阶段向下进行,无法回溯

  • 迭代模型:需求不明确,迭代版本系统

  • 敏捷开发模型:

  敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。 在敏捷开发中,软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  • 测试驱动开发模型:先编写测试代码,再写开发代码

图4.png

软件测试模型:

V模型:反映了测试与开发阶段之间一一对应的特点,测试在开发之后,出错后回归测试量大

 图5.png

W模型:测试伴随整个开发周期,测试与开发同步进行,有利于尽早发现问题

 图6.png

H模型:软件测试活动完全独立,与其他流程并行


作者:珍真小心

原文链接:https://www.cnblogs.com/sker/p/5774570.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   软件测试是用来验证软件解决方案或产品是否符合要求和期望的过程。软件测试的旨在发现缺陷,并证明软件是适合使用的。有许多测试方法、类型和技术可用于验证功能和非功能需求。  测试自动化是使用其他软件来自动化手动测试或在应用程序中执行手动用户操作的过程。在手动测试不可能或费时的情况下,用其他软件的帮助来验证软件是一个好主意。  自动化测试是使用专门的软件工具验证软件解决方案,通常涉及自动化功能作为测试过程的一部分。  自动化测试是使用特殊的软件,与被测试的软件分开,来控制和执行测试,包括实际结果与预测结果的比较和报告。应用程序被称为被测应用程序(AUT the application under ...
            0 0 872
            分享
          • 一、单元测试的目的       单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能! 严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。现在一般公司都会进行业务流程的测试,这也要求测试人员需要了解需求! 测试人员也不好过啊~~       目前开发所用的单元是Junit框架,在大多数java的开发环境中已经集成,可以方便开发自己调用!       注意:单元测试不仅仅是要保证代码的正确性,一份好的单元测试报告,还要完整地记录问题的所在和缺陷以及正...
            12 12 2317
            分享
          • 1.创建线程组点击选中测试计划,右键点击创建线程组点击线程组,这里可以设置名称,添加注释,设置线程数(每次有多少线程同时开启)、线程响应时间(多少秒完成线程)、循环次数(每个线程数需要开启几次)等2.创建取样器(以HTTP为例)点击选中线程组,右键添加取样器输入协议点击刚设置的取样器,这里可以设置名称,设置http/https(不输入默认为http),服务器IP,端口号(不输入默认80端口),选择HTTP请求类型,相关路径(若无则不填),以下以百度为例3.最后需要添加监听器获取监控结果同样选择线程组,右键添加监听器常用的有汇总报告,察看结果树,聚合报告3.1汇总报告这里可以看到每个请求以及总体...
            1 0 1857
            分享
          • 1.数据准备已事先准备好5个不同用户账号2.设置线程并发数ramp-up period 指 JMeter 用于执行全部请求的时间 如果设置了 100 个线程,并且 ramp-up period 是 2 秒,那么 JMeter 将在 2 秒钟 之内启动 100 个线程.如果循环次数是 2,那么 jmeter 将在 2 秒之内发送 200 个 请求(100*2) 如果循环次数设置为永远,那么 jmeter 将以最大可能去发送请求,以此测试出 最大并发数此处采用5个并发数作为测试演示设置为5个用户并发访问注意,若设置5个用户并发访问时,需在线程组中设定,用于模拟多用户同时测试的线程数为5个。如果线程...
            0 0 2991
            分享
          •   性能测试在当今企业系统中起到的作用越来越重要,但在执行性能测试的过程中往往会遇到一些问题:  一、项目紧急,不具备独立的性能测试环境,功能测试和性能测试在一套环境同时执行测试时,其测试过程和测试结果会相互影响,导致结果不够客观。如果我们能在白天完成录制性能测试脚本,晚上自动执行脚本,这样便能规避它们之间的影响。虽然Jmeter可以利用自身定时器实现脚本的定时执行,但性能测试的执行过程中一般要同步监控应用服务器和数据库服务器的资源消耗情况,但在连续执行多支性能测试交易,无法做到每支交易的执行过程和资源监控过程一一对应。我们本次研究的第一个目标是想通过在批量执行多支交易的每支交易时自动调起云下...
            0 0 761
            分享
      • 51testing软件测试圈微信