热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

互联网行业的高薪职业“高”在哪里?

引言:现在的互联网公司很多都在开发各种项目以及app,在开发过程中也需要相关人员对其进行测试,来保证项目的正常运行,在很多互联网企业,软件测试已经是占据非常重要的地位,这一职业已经成为高薪职

引言:现在的互联网公司很多都在开发各种项目以及app,在开发过程中也需要相关人员对其进行测试,来保证项目的正常运行,在很多互联网企业,软件测试已经是占据非常重要的地位,这一职业已经成为高薪职业,它究竟“高”在哪里?对于软件测试,我们需要了解些什么?我们来看一下。

1 软件测试的目的与原则

测试的定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检查它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

软件测试的目的:发现程序中的错误,保证软件产品的最终质量。

  • 测试是程序的执行过程,目的在于发现错误
  • 一个成功的测试用例在于发现至今未发现的错误
  • 一个成功的测试是发现了至今未发现的错误的测试
  • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
  • 确保产品满足性能和效率的要求
  • 确保产品是健壮的和适应用户环境的

软件测试的原则:

  • 测试用例中一个必须部分是对预期输出或接口进行定义
  • 程序员应避免测试自己编写的程序
  • 编写软件的组织不应当测试自己编写的软件
  • 应当彻底检查每个测试的执行结果
  • 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  • 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
  • 应避免测试用例用后即弃,除非软件本身就是个一次性的软件
  • 计划测试工作时不应默许假定不会发现错误
  • 程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比

软件的可测性

软件的可测性太差会导致测试的难度相当大,甚至无法测试。这种情况往往是由于极差的软件架构设计和极为不规范的软件开发工作导致的。

  • 紧耦合。不把大半个系统实例化就无法测试。
  • 弱内聚。这个类实现了太多功能,导致测试非常复杂。
  • 冗余。同一个方法在多处使用,每一处都得测。

好的软件架构应该是松耦合、高内聚的。提高软件的测试性的同时也提高了软件的可维护性和可管理性。

互联网行业的高薪职业“高”在哪里?

测试用例设计

测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。

黑盒测试与白盒测试

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。

合理的测试策略是将这两种测试要素组合起来。我们可以通过使用特定的面向黑盒测试的测试用例设计方法,而后使用白盒测试方法对程序的逻辑结构进行检查以补充这些测试用例,借此来设计出一个相当严格的测试。

白盒测试方法有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。黑盒测试方法有等价类划分、边界值分析、因果图分析、错误测试、状态图、场景法等。

软件测试类型

单元测试

单元测试并不是对整个程序进行测试,而是对构成程序的较小模块进行测试。单元测试减小了调试的难度(一旦某个错误被发现出来,我们就知道它在哪个具体的模块中);单元测试提供了同时测试多个模块的可能,将并行工程引入软件测试中。

在为模块单元测试设计测试用例时,需要使用两种类型的信息:模块的规格说明和模块的源代码。规格说明一般都规定了模块的输入和输出参数以及模块的功能。单元测试总体上是面向白盒测试的,因此,单元测试的测试用例的设计过程如下:使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。

集成测试

自顶向下集成和自底向上集成

功能测试

功能测试的目的是为了暴露程序的错误以及与规格说明不一致之处,而不是为了证明程序符合其外部规格说明。

功能测试是一种黑盒测试,功能测试常用步骤有:根据需求来细分功能点,根据功能点派生测试需求,根据测试需求设计功能测试用例。

系统测试

系统测试的目的是为了证明程序不能实现其目标,系统测试的测试用例设计有以下14种类型:

  1. 能力测试:是判断目标文档提及的每一项能力(或功能)是否都确实已经实现。
  2. 容量测试:使程序经受大容量数据的检验。容量测试的目的是为了证明程序不能处理目标文档中规定的数据容量。
  3. 强度测试:使程序承受高负载或强度的检验。所谓高强度是指在很短的时间间隔内达到的数据或操作的数量峰值。
  4. 易用性测试:试图发现人为因素或易用性的问题。
  5. 安全性测试:设计测试用例来突破程序安全检查的过程。举例来说,我们可以设计测试用例来规避操作系统的内存保护机制,破坏数据库管理系统的数据安全机制。
  6. 性能测试:很多软件都有特定的性能或效率目标,这终特性描述为在特定负载和配置环境下程序的响应时间和吞吐率。
  7. 存储测试:
  8. 配置测试:
  9. 兼容性测试。
  10. 安装测试:有些类型的软件系统安装过程非常复杂,测试安装过程是系统测试中的一个重要部分。对于包含在软件包中的自动安装系统而言,这尤其重要。安装程序如果出现故障,会影响用户对软件的成功体验。
  11. 可靠性测试:所有类型的测试都是为了提高软件的可靠性,但是如果软件的目标中包含了对可靠性的特别描述,就必须设计专门的可靠性测试。
  12. 可恢复性测试:诸如操作系统、数据库管理系统和远程处理系统等软件通常都有可恢复性目标,说明系统如何从程序错误、硬件失效和数据错误中恢复过来。系统测试的一个目标是证明这些恢复机制不能够正确发挥作用。我们可以故意将程序错误置入某个系统中,判断系统是否可以从中恢复。
  13. 适用性测试
  14. 文档测试:检查用户文档的正确性。用户文档应成为审查的对象,检查其正确性和清晰性。在文档中描述的任何范例应编成测试用例,并提交给程序。

6 自动化测试

自动化测试:以程序测试程序、以代码代替思维、以脚本运行代替手工测试。

冒烟测试:就是在一个新版本出来的时候,将软件的全部功能过一遍,看有没有什么大问题。如果功能可以正常运行,不会影响测试进行,那么这个版本就可以真正开始测试了。如果功能有重大问题或影响测试进行,那么这个版本就是不合格的,不用进行进一步的测试。比如,拿到QQ的app新版本,登陆都登陆不上,那么这个版本肯定无法继续测下去。或者,游戏中新的模块出现,但是新的模块总是崩溃、卡死,测试进行不下去,那么冒烟的结果就是不合格的。

回归测试:就是以前版本中发现的bug在新的版本中验证是否存在且是否引发新的bug。

说了这么多,我想大家也只是简单了解了软件测试的相关知识理论,那如果想了解一些实战经验,可以去报个培训班进行培训,对于初入软件测试行业的人来说,不妨去报个班来让自己更专业的学习软件测试相关知识,而不是只了解书面知识,听说博为峰51testing的软件测试培训课程还不错,朋友有在那里学过,希望可以帮助到你。

互联网行业的高薪职业“高”在哪里?

小伙伴们如果有兴趣的话加客服小姐姐微信(sy51testing),免费奉上软件测试课程资料(备注:软件测试)!

博为峰网校(www.atstudy.com),分享更多技术,官方交流群495153733,和大牛聊技术,开阔你的眼界!


推荐阅读
author-avatar
三封封封_391
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有