热门标签 | 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,和大牛聊技术,开阔你的眼界!


推荐阅读
  • 出现_史上最大漏洞出现,你的安卓iPhone电脑都不安全了!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了史上最大漏洞出现,你的安卓iPhone电脑都不安全了!相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 数据库异常智能分析与诊断
    数据库,异常, ... [详细]
  • 计算机专业如何高质量地走完大学四年?毕业轻松拿到 Offer!
    有些同学毕业时,很快能找到工作,人称OFFER收割机,而有些同学经历完秋招\春招,一个OFFER收不到。有些同 ... [详细]
  • 高可用架构_MySQL高可用架构设计
    文章来自于https:www.jianshu.compd3107bda2963PHP进阶学习交流QQ群:983229225Mysql复制功能介绍Mysql的复制功能提 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了2019年上半年内蒙古计算机软考考试的报名通知和考试时间。考试报名时间为3月1日至3月23日,考试时间为2019年5月25日。考试分为高级、中级和初级三个级别,涵盖了多个专业资格。报名采取网上报名和网上缴费的方式进行,报考人员可登录内蒙古人事考试信息网进行报名。详细内容请点击查看。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Unit4博客&课程总结Unit4作业的架构设计本单元作业的设计我分为了三个模块处理:模型构建+预处理+任务函数,前两部分即为整个图的完整构建,第三部分即为实现题目要求的查询方法。 ... [详细]
  • 博客_2018年博客总结
    本文由编程笔记#小编为大家整理,主要介绍了2018年博客总结相关的知识,希望对你有一定的参考价值。前言     ... [详细]
  • 物联网应用介绍
    •物联网的研究背景(概念|本质|特征|发展现状)       物联网是新一代信息技术的高度集成和综合运用,已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发 ... [详细]
  • 不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了
    写在前面金九银十招聘季来了,不知道大家有没有发现一件事,现在不管是互联网大厂,还是初创公司,那些面试官总喜欢拿高并发和你说 ... [详细]
  • 全局角度出发讨论敏捷
    JonKern对于是什么促成了敏捷的成功有着自己读到的见解。你可能会不同意他的观点。下面列出了一些建立在项目全局角度之上的关键实践,项目本身就是从此开始的。如果不能从系统角度来做项目,那它就不能达到预期的效果,甚至可能会失败。我很早以前就认为,开发软件就像是在完成一个很长的待办事项列表。我试了很多方法来运行项目,从记事贴到Jira(从Jira刚发布起我就开始使用)。我使用传统Scrum风格的Spr ... [详细]
  • 传统|同类_Spring Boot进阶:原理实战与面试题分析读后感
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringBoot进阶:原理实战与面试题分析读后感相关的知识,希望对你有一定的参考价值。 ... [详细]
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社区 版权所有