• 3
  • 4
分享

软件缺陷:

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

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

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

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

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

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

软件测试的目的:

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

  • 验证软件是否可以发布

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

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

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

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

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

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

软件测试的原则:

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

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

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

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

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

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

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

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

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

  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

软件测试的分类:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件测试流程:

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

软件开发模型:

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

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

  • 敏捷开发模型:

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

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

图4.png

软件测试模型:

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

图5.png

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

图6.png

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


作者:珍真小心

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   谈到数据产品,很多时候有一种误解,认为这些产品无法通过自动化来进行测试。 尽管流水线的某些部分由于其实验性和随机性而无法通过传统的测试方法进行测试,但大部分流水线可以。 除此之外,更加不可预测的算法可以通过专门的验证过程。  让我们来看看传统的测试方法,以及我们如何将这些方法应用到我们的数据/ ML 流水线中。  测试金字塔  标准简化的测试金字塔如下所示:  这个金字塔表示您将为应用程序编写的测试类型。 我们从大量的单元测试开始,这些单元测试独立于其他功能来测试单个功能。 然后我们编写集成测试来检查将我们隔离的组件组合在一起是否按预期工作。 最后,我们编写 UI 或验收测试,从用户的角度...
            0 0 962
            分享
          •   众所周知,索尼 PlayStation Portal 是一款串流掌机,需借助 PS5 的串流功能才能实现远程游玩,亚版定价 1580 港币及 6480 新台币。  今天,索尼宣布为 PlayStation Portal 提供系统更新,新增 PS5 游戏(暂不支持 PS3 和 PS4 兼容游戏)的云串流 Beta 功能。简单来说就是用户哪怕自己没买 PS5 也能玩了。  索尼 PlayStation Portal 结合了 DualSense 无线控制器的主要特色,包括自适应扳机和触觉反馈等功能,搭载高通骁龙 680 芯片,采用了 8 英寸 LCD 屏幕,能以 1080p 60fps 画面串流...
            0 0 52
            分享
          •   根据美国商标和专利局(USPTO)公示的最新清单,苹果获得了一项涉及全自动 / 半自动驾驶汽车内部的智能桌子。  根据专利描述,该智能桌子配有力传感器、运动执行器等多种传感器,可以自由度(DOF)移动。  苹果在玻璃台面下放置一个显示器,可以用作大型显示器。苹果还指出,这张桌子的次要用途可能是用于未来的办公室或家庭办公室,专利中并没有关于该场景未来应用的详细信息。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 795
            分享
          • 部门最近的H5相关项目挺多的,由于团队之前接触的大多是Web项目,很少涉及H5,想着给团队成员培训下,减少漏测率,于是整理了一个文档。别说,效果还挺不错的,连着上线6个版本,都没有收到业务方反馈Bug,好东西不能独享,分享给大家,希望对大家有所启发。一、功能测试1、业务逻辑与Web测试一样,参照产品原型,把业务逻辑都覆盖一遍即可。H5页面也能在PC端访问,Chrome对H5支持最好,功能相关的测试可以在PC端Chrome下先测试,也可以直接在手机上测试。2、登录授权浏览器打开时,需要登录;客户端内打开时,如果已经登录,则无需再登录,如果未登录,则需要登录授权。3、翻页需要测试1页或多页的场景,...
            0 0 1306
            分享
          •   1. 引言  如果你是一个Python新手,那么你可能会在一些代码中看到assert关键字的语句。对于该语句,有人喜欢有人不喜欢,本文重点介绍Assert语句的作用以及什么时候应该使用该语句。  闲话少说,我们直接开始吧!  2. 基础语法  Assert语句的基础语法如下:  assert boolean_expression  这里,我们期望上述boolean_expression取值为True,而assert关键字的作用是帮助我们再次检查它是否真的为True。  此时如果我们断言是True,那么一切都好,没有什么错,我们可以像往常一样继续往下执行。  但是,如果我们断言为F...
            0 0 1210
            分享
      • 51testing软件测试圈微信