引言:现在的互联网公司很多都在开发各种项目以及app,在开发过程中也需要相关人员对其进行测试,来保证项目的正常运行,在很多互联网企业,软件测试已经是占据非常重要的地位,这一职业已经成为高薪职业,它究竟“高”在哪里?对于软件测试,我们需要了解些什么?我们来看一下。
1 软件测试的目的与原则
测试的定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检查它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的目的:发现程序中的错误,保证软件产品的最终质量。
软件测试的原则:
2 软件的可测性
软件的可测性太差会导致测试的难度相当大,甚至无法测试。这种情况往往是由于极差的软件架构设计和极为不规范的软件开发工作导致的。
好的软件架构应该是松耦合、高内聚的。提高软件的测试性的同时也提高了软件的可维护性和可管理性。
3 测试用例设计
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。
4 黑盒测试与白盒测试
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。
合理的测试策略是将这两种测试要素组合起来。我们可以通过使用特定的面向黑盒测试的测试用例设计方法,而后使用白盒测试方法对程序的逻辑结构进行检查以补充这些测试用例,借此来设计出一个相当严格的测试。
白盒测试方法有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。黑盒测试方法有等价类划分、边界值分析、因果图分析、错误测试、状态图、场景法等。
5 软件测试类型
单元测试
单元测试并不是对整个程序进行测试,而是对构成程序的较小模块进行测试。单元测试减小了调试的难度(一旦某个错误被发现出来,我们就知道它在哪个具体的模块中);单元测试提供了同时测试多个模块的可能,将并行工程引入软件测试中。
在为模块单元测试设计测试用例时,需要使用两种类型的信息:模块的规格说明和模块的源代码。规格说明一般都规定了模块的输入和输出参数以及模块的功能。单元测试总体上是面向白盒测试的,因此,单元测试的测试用例的设计过程如下:使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。
集成测试
自顶向下集成和自底向上集成
功能测试
功能测试的目的是为了暴露程序的错误以及与规格说明不一致之处,而不是为了证明程序符合其外部规格说明。
功能测试是一种黑盒测试,功能测试常用步骤有:根据需求来细分功能点,根据功能点派生测试需求,根据测试需求设计功能测试用例。
系统测试
系统测试的目的是为了证明程序不能实现其目标,系统测试的测试用例设计有以下14种类型:
6 自动化测试
自动化测试:以程序测试程序、以代码代替思维、以脚本运行代替手工测试。
冒烟测试:就是在一个新版本出来的时候,将软件的全部功能过一遍,看有没有什么大问题。如果功能可以正常运行,不会影响测试进行,那么这个版本就可以真正开始测试了。如果功能有重大问题或影响测试进行,那么这个版本就是不合格的,不用进行进一步的测试。比如,拿到QQ的app新版本,登陆都登陆不上,那么这个版本肯定无法继续测下去。或者,游戏中新的模块出现,但是新的模块总是崩溃、卡死,测试进行不下去,那么冒烟的结果就是不合格的。
回归测试:就是以前版本中发现的bug在新的版本中验证是否存在且是否引发新的bug。
说了这么多,我想大家也只是简单了解了软件测试的相关知识理论,那如果想了解一些实战经验,可以去报个培训班进行培训,对于初入软件测试行业的人来说,不妨去报个班来让自己更专业的学习软件测试相关知识,而不是只了解书面知识,听说博为峰51testing的软件测试培训课程还不错,朋友有在那里学过,希望可以帮助到你。
小伙伴们如果有兴趣的话加客服小姐姐微信(sy51testing),免费奉上软件测试课程资料(备注:软件测试)!
博为峰网校(www.atstudy.com),分享更多技术,官方交流群495153733,和大牛聊技术,开阔你的眼界!