按测试执行的类型来分:功能测试、自动化测试、性能测试
1.功能测试
功能测试俗称点点点测试。初级测试人员的主要测试任务就是执行测试工程师所写的测试用 例,记录用例的执行状态及bug情况。与开发人员进行交互直到bug被修复。
功能测试理论上是指通过测试来检测系统每个功能是否都能正常使用,主要关注外部结构, 不考虑系统内部逻辑结构,主要针对软件界面和软件功能进行测试。
很多测试人员认为功能测试没有技术含量。其实这个想法是错误的,当你看不到程序是如何 运行的情况下,要想找出深层次的问题对测试人员理解系统的程度要求很高。大家总是觉得单元 测试很难,而系统测试中的功能测试很简单。但真实情况正好相反,测试人员认为单元测试很难, 是因为其不会编码而产生的恐惧。这也就是会者不难难者不会的道理。当测试人员对代码有一定认知后,会发现真正难的是看不到单元结构的外部测试。随着测试人员的能力提高,自然会在 对事情的判断上有所更新的。这是测试人员必经的过程。
2.自动化测试
自动化测试也是目前测试行业用得比较多的测试。行业中对于自动化测试的理论描述是这样 的:自动化测试是利用软件测试工具自动实现全部或部分测试。它是软件测试的一个重要组成部 分,能完成许多手工测试无法实现或难以实现的测试。正确、合理地实施自动测试,能够快速、 全面地对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。
虽然自动化测试看上去是一件事半功倍、非常值得去做的事情。但在我们的实际工作中,除 了有资本实力的大公司,小公司介入自动化测试大多以失败不了了之。首先并不是所有的项目都 适合自动化,特别对现在比较流行的UI自动化而言。不够成熟的项目对于前端变化很多,这就 造成了自动化角度的维护成本很高。再加上人力物力等原因,使用自动化测试的成本高,但效果 有时还不如简单的功能测试。实际运用的自动化测试性价比低就是造成其无法在小企业中生存下 去的主要原因。所以自动化测试更适合已经成熟稳定的项目,且已具备了前期的投入资本。自动 化可以说是测试技术的提升,对测试人员本身的技术成长是有好处的,但是大家还是要做好可行 性分析,不要盲目跟风或者夸大其效果。
3.性能测试
性能是自功能后逐渐被大家关注的指标。说到性能,就想到用户体验。性能测试的基本概念 为:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性 能指标进行的测试。常见的性能测试有负载测试和压力测试,两者可以结合进行。
(1)负载测试用来确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统 各项性能指标的变化情况。
(2)压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大 服务级别的测试。
性能测试的常用指标为:事务响应时间、TPS、并发用户数、吞吐量、点击率、资源利用率等。
近几年来,会做性能测试也成为了测试人员的硬件标配。行业里也有很多描述性能测试的书 籍,都是以工具使用为主的。例如,商业化的loadrunner、开源型工具的jmeter等。使用性能测 试工具还是比较方便的,对于大型的性能测试,性能测试工具的管理也比较规范。但就工作而言, 要涉及大型性能测试项目毕竟少,而且工具虽好,但局限性也大。如果你是项目型的测试人员, 并不是专职的性能测试工程师,工具对你来说就不是那么重要了。而为了使完成测试任务达到灵 活便利效率高的效果,测试人员自己编写脚本对于项目的跨平台性和维护性的使用率反而比较强, 所以本文会有具体的章节教大家写脚本实现简单的性能测试,以轻便高效为目的,摆脱工具的束 缚,用代码提取项目中所需的性能指标。
4.安全性测试
虽然现在由于网络安全问题导致财务上的损失越来越多,人们开始关注安全,但测试人员真 正建立独立的安全性测试项目的还是很少。大多数情况下,测试人员都是将安全结合在单元、集 成、系统测试中进行的。应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全 隐患,并检查应用程序对非法侵入的防范能力。根据安全指标不同,测试策略也不同。常用的安 全性测试方法有静态的代码安全测试、动态的渗透测试和程序数据扫描。
在实际项目中,安全性测试基本是用工具完成的,常用的工具有RSAS、AWVS、Appscan、 jsky、burpsuite等。
本文的重点并不是讲安全性测试,但安全性也有和Python相关的部分。例如,Python作为脚 本语言,一直和网络爬虫联系在一起。作为一个以“破坏”为主的测试工程师,安全有时就是我 们的麻烦,比如突破系统中验证码、加密数据的限制进行模拟请求等。所以要成为一名优秀的 Python 自动化测试工程师,对安全性也要有一定的了解。
最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。