软件测试零基础入门教程(架构师备战三-软件工程)

软件测试主要了解软件测试的方法和软件的调试,下面我们就来说一说关于软件测试零基础入门教程?我们一起去了解并探讨一下这个问题吧!

软件测试零基础入门教程(架构师备战三-软件工程)

软件测试零基础入门教程

软件测试主要了解软件测试的方法和软件的调试。

1、软件测试方法1.1、测试基本思想
  • 尽早、不断的进行测试
    • 在V模型其实已经凸显出这种思想了
  • 程序员避免测试自己设计的程序
    • 因为测试自己设计的程序,其实是不容易发现问题的,因为人从本质上都不愿意找自己的茬。而且由于你的思维惯性的影响,你必然认为这种做法往往是对的你才这么去做,所以有些问题不容易被发现,所以交叉检查效果会好很多。
  • 既要选择有效合理的数据,也要选择无效不合理的数据
    • 有效合理:输入数据符合要求,比如选择题选A,B,C,D答案就是有效合理的
    • 无效不合理:输入数据不符合要求:比如选择题不选A,B,C,D,你填写”除了这几个答案外的
  • 修改后应该进行回归测试
    • 因为修改一个Bug,很可能引入新的bug,然后需要重新测试之前的功能,就叫做回归测试
  • 尚未发现的错误数量与该程序已发现的错误数成正比
    • 比如模块A有2Bug,B有5个Bug, 可能B的质量要差一些,需要重点测试
1.2、测试类型1.2.1、静态测试

静态测试是纯手工,不依赖计算机,并且不让计算机去运行它。比如写了一段代码,我们在脑海中凭空运行。这就是静态测试。

  • 桌前检查
  • 代码审查
  • 代码走查

说白了,就是自己检查代码,相互下、交叉检查代码以及尝试运行代码,来进行人工性的检查

1.2.2、动态测试

是计算机运行来看结果,比如我们写好了一段代码,我们执行程序来看结果,只要依赖了计算机就是动态测试,不能认为自动化测试才是动态测试。

  • 黑盒测试
    • 不知道内部结构,所以只能根据功能来进行测试
  • 白盒测试
    • 能够看到内部结构,能够根据内部结构来设计测试用例
  • 灰盒测试(白 黑)
1.3、测试用例设计1.3.1、黑盒测试法
  • 等价类划分
    • 我们选择测试用例时,应该选不同的测试用例来测试。
    • 比如测试不同积分,灯影不同的Vip用户。1000是普通会员,2000就是银卡会员。
    • 0-1000选一个,1000-2000选一个,2000-3000选一个,从而达到全面测试的目的
  • 边界值分析
    • 比如银卡是1000-2000之间,那么最容易出错的 就是1000和2000这个边界值。那么我们一般测试就用9999,1000,1001,1999,2000,2001.这样就可以测试出边界值是否正确。
  • 错误推测
    • 一般依据经验来进行推测,也就是我做了多年代码工作,你去检测其他人的代码,你随便挑选几个,一测试就有问题,因为你这都是你曾经踩过的坑。这些地方就是容易出错
  • 因果图
    • 知道是黑盒测试方法即可
1.3.2、白盒测试法
  • 基本路径测试
  • 循环覆盖测试
  • 逻辑覆盖测试

覆盖方法

了解即可

  • 语句覆盖(最弱)
  • 判定覆盖
  • 条件覆盖
  • 条件判定覆盖
  • 修正的调价你判断覆盖
  • 条件组合覆盖
  • 点覆盖
  • 边覆盖
  • 路径覆盖(最强) 路径是指程序的路径
1.4、测试阶段1.4.1、冒烟测试
  • 单元测试
    • 模块测试,模块功能,性能,接口等
  • 集成测试
    • 测模块间的接口,分为一次性组装测试和增量式组装测试
    • 一次性组装测试
      • 一次性把所有的模块组装起来进行测试,一次性组装测试会快一些
    • 增量式组装测试
      • 我先组装两个模块,两个协作搞定之后,再加一个进来。增量测试会更加彻底。增量分为自顶向下和自底向上和混合式。
      • 自顶向下:先测顶层模块,再联合下面的模块。如果下面的模块没有集成,此时需要自己人为写桩模块。
      • 自底向上:先测地下的模块,底下的模块要有人调用,此时需要自己写一些上面的模块,叫做驱动模块,来调用我们的测试模块。
      • 混合式
  • 确认测试
    • 验证软件与需求的一致性,分为内部确认测试,Alpha测试 ,Beta测试和验收测试
    • 内部确认测试
    • Alpha测试
      • 针对产品的测试,在开发环境用户进行测试。要请求用户到开发环境来进行测试。
    • Beta测试
      • 针对产品的测试,比如某某软件Beta版本,如QQ,这就是在给腾讯做免费的Beta测试。在用户自己的环境,由用户测试
    • 验收测试
  • 系统测试
    • 真是环境下,验证完整的软件配置项能否和系统正确连接
    • 恢复测试
    • 安全性测试
    • 压力测试
    • 性能测试(每一种测试测面的维度不一样)
      • 负载测试:测不同负载下的性能,比如1000并发下响应时间是怎样的,2000并发下响应时间是怎样的
      • 强度测试:强调的是把系统资源降到最低,看它能不能正常运行
      • 容量测试:更多的考虑的是并发数,同时并发多少。
    • 可靠性测试
    • 可用性测试
    • 可维护性测试
    • 安装测试
  • 回归测试
    • 测试软件变更之后,变更部分的正确性对变更需求的符合性
1.4.2、面向对象测试
  • 算法层(对应单元测试):包括等价类划分测试,组合功能测试(基于判定表的测试),递归函数测试和多态消息测试
  • 类层(对应模块测试):包括不变式边界测试,模态类测试和非模态类测试
  • 模板层/类树层(对应集成测试):包括堕胎服务测试和展平测试
  • 系统层(对应系统测试
2、软件调试2.1、软件调试方法
  • 蛮力法:主要思想是”通过计算机找错“,低效,耗时。比如Debug,单步运行,比较耗时
  • 回溯法(反向找错):从出错处人工沿控制流程往回追踪,直至发现出错的根源。复杂程序由于回溯路径多,难以实施。就是自己从报错哪个地方,往回看代码,看哪儿会出错。
  • 原因排除法(正向找错):主要思想是演绎和归纳,用二分法实现。
2.2、软件调试与测试的区别
  • 测试的目的是找出存在的错误,调试的目的是定位错误并修改程序以修正错误
  • 测试和调试在目标、方法和思路上都有所不同
  • 测试从一个已知的条件开始,使用预先定义的过程(测试用例),有预知的结果;调试从一个未知的条件开始,结束的过程不可预计。
  • 测试过程可以预先设计,进度可以事先确定;调试不能描述过程或持续时间

简单来理解就是测试是测试人员写测试用例,进行黑盒白盒等测试,调试就是开发人员使用Debug找错误并修改的过程。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页