前言:此文适合专业完全不对接的,但想了解测试的伙伴们。
正文:
个人理解,测试是基于执行测试用例基础上、通过工具或者方法对产品进行检验是否存在缺陷。测试包含软件测试和硬件测试,两者本质上没有太大的区别,目的都是一致的。以下大致从两者的区别、测试内容以及测试流程分享个人想法。
一、硬件测试和软件测试的区别如下:
1.测试方向:
两者均是对功能、性能、安全属性等方面进行测试。不同的是,硬件测试需要考察老化问题,进行老化测试,符合国家要求的一些常规硬件标准。
2.测试手段:
硬件测试主要是针对硬件本身以及环境的测试,如老化测试、寿命测试、故障率测试等。
软件测试,主要是通过执行测试用例,尽可能覆盖所有可能出现的操作场景。
3.测试工具
硬件测试更多的是使用硬件进行,如示波器等。
软件测试相对来说,用到的只是数据性的工具,如charles等。软件测试可使用的工具非常多,但是我平时执行工作中,使用最频繁的就是charles。Charles可以模拟网络、修改网络请求参数等。如果我需要测试一个注册case,前提是信息输入正常、网络较好的前提下注册失败,通过charles获取相关接口,修改相关参数,能模拟注册失败情况。
4.测试结果的稳定性
硬件测试有可能在相同的条件下(如温度),出现不同的测试结果。
软件测试的是在没有其他异常数据的引入下,输入相同,输出也相同。
二、硬件测试细谈
1.测试内容:
硬件测试,顾名思义是对某一个产品的主板测试,对硬件进行功能、指标、一致性、可靠性、容限等方面的测试。以手机为例子:
1)基本功能:基本功能都需要满足,如通话正常等。
2)性能测试:性能是基于基本功能完善,从用户角度出发去完善产品,产品是否好用。如音质效果、失真度等。一般1khz的声音失真度要求小于10%,那么设定为6%肯定比8%的产品好。因为失真度越低,功放对声音处理更好。
3)可靠性测试:如温升测试、压力测试等等。因产品不同测试不同。假如对一个杯子进行测试,需要考虑水温+负载程度+耐摔+易漏程度等。
2.工作流程:
1)设计测试电路以及编写出硬件测试方案;测试前准备,检视和故障模式影响分析;编写测试用例、施测以及对测试结果进行分析。
2)制定测试计划;负责相关硬件测试工具的开发,还需要对现有硬件测试规范流程、方法技术进行改进。
3)使用测试工具对硬件进行功能、指标、一致性、可靠性、容限等方面的测试。
4)对测试问题的确认、定位并解决;进行效果评估,书写测试报告。
三、软件测试细谈
软件测试跟硬件测试两者本质上没有太大的区别,流程大致相同。都有对应的测试周期。
1.测试内容:
1)功能测试:根据产品评审后的结果编辑测试用例,检查软件的功能是否符合规格说明。比如我们现在是通过黑盒测试,运行测试用例,根据测试结果与测试用例的匹配情况进行passed or failed。然而此时也体现了测试用例的重要性,功能测试主要有测试用例为核心,所以用例具有科学有效的逻辑性是很必要的,假设执行注册相关的用例时,第一条为注册成功的用例,而第二条为空账号注册失败,那么在执行的时候我们就需要走两次完整的注册流程,而如果将执行顺序颠倒,先运行失败用例,确认提示失败后再成功注册,则只需要走一次完整流程,提高了工作效率。
2)性能测试:模拟典型使用场景及状态全面获得启动时长、电量、流量、CPU、内存等数据。如手机app的测试,通过使用不同工具对ios和android端进行性能测试,获取相关数据,并对结果进行评估。在性能测试过程中,跑monkey是必不可少的步骤,monkey是Android SDK所提供的命令行工具,可以模拟用户胡乱、没有逻辑性地敲击滑动屏幕,检查程序多久才发生异常,并获取随机性较高的性能数据,性能测试中随机性也具有相当高的重要性,因为产品是面向用户,而你永远不知道用户会进行什么样的奇葩操作。
3)兼容性测试:指对所设计程序与硬件、软件之间的兼容性的测试。比如,我们测试app的兼容性,就是测试app在手机上的UI是否适配,功能是否正常使用,是否有闪退等异常问题出现这几个情况。普遍测试员是通过其在机型配置(机型&系统)、分辨率、网络,以及与其他软件的兼容是否正常来判断。随着科技的发展,版本和设备配置层出不穷,为了app能适应任何设备上运行正常,这体现了兼容性的不可取代性。在此提及一个方法:正交法。意思是将兼容测试的场景整理为一个表格,提高效率。比如华为荣耀9是系统7.0、分辨率1080*1921,在一个手机上就能进行关于这分辨率和系统的测试,并行测试,同时覆盖多个机器,减少工作量,提高效率。
4)安全性测试:随着开源时代的发展,懂代码的人增多,逻辑缺陷等问题就会暴露出来,在高技术人员面前,代码囊括的信息一览无余。若使用一个安全性级别较低的app的过程中,我们的信息安全(如个人隐私)受到威胁。所以我们在进行安全测试过程中,使用工具对app进行安全性扫描,如appscan等。
5)压力测试:需要了解被测应用程序一般能够承受的压力,同时能够承受的用户访问量,最多支持有多少用户同时访问某个功能,考核了并发访问量。使用工具一般有Jmeter。使用Jmeter的过程中,我们通过录制脚本,之后大量并发运行脚本,从而判断服务器是否符合所需的承载量。
网友评论