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