测试的目的,以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,避免软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误。
测试需要保证以下两点:程序做了它应该做的事情以及程序没有做它不该做的事情.
软件测试是不可以无穷无尽地进行的,我们要知道我们不可能会发现软件中全部的问题。每一次新版本上线前也是不可能保证所有我们已经找到的缺陷全部会得到改正,所以反复测试来发现更多的问题,降低风险出现的概率。
各行各业中都有测试,以IT行业来划分软件测试的话有:移动互联网、电商、教育、金融、医疗|健康、保险、文娱|内容、游戏、社交、体育、工具、汽车|出行、物流|运输、房产家居、旅游、数据服务、信息安全、人工智能、通讯电子、区块链、物联网、VR|AR、硬件、传统行业等方向。
IT行业中软件测试最容易入门,找工作最快,薪资相对较高。事实如此不接受任何反驳。
从整体行业背景看,一方面,在中国的很多软件企业存在着重开发、轻测试的现象,造成日后的软件产品的质量问题频出,亟待解决;另一方面市场上的软件测试人员偏少,岗位缺口较大,不少企业以开发暂代测试,以作急用。目前软件测试人才的缺口在30万人以上
当前,软件产品整体的开发测试节奏正在不断的加快。如何快速响应市场需求,在保障产品质量的同时提高软件研发效率?是摆在开发、测试人员面前的一大难题。
对软件测试人员来说,提高自动化测试的能力和效率,是应对这一难题的途径之一。通过调研学习,我们对主流自动化测试技术进行简要对比。按照人工介入程度区分,自动化测试技术主要分为两大类别:流量复制技术和场景测试技术。
1、流量复制技术
流量复制技术的原理是:复制在线Server的请求数据包(比如HTTP流量、TCP流量、链路层流量等),修改流量包头部信息,发送给测试服务器,达到欺骗测试服务器程序的目的,从而为欺骗测试服务器上面的上层应用打下基础。
技术发展现状:目前有各种开源的软件支持流量复制,比如Gor、TCPCopy等。其中,Gor是一款Golang语言编写的简单的http流量复制开源工具,它的工作流程是监听服务器捕捉http流量,把捕捉到的流量发送到重现服务器上或者保存到文件中,重现服务器再继续把流量发送到一个指定的ip地址
2、场景测试技术
场景测试技术的原理是:按照真实业务场景划分,通过程序录制用户的操作行为,转化为脚本,然后在被测环境回放脚本进行测试。
技术发展现状:目前有较为成熟的软件支持,比如:QTP、Watir、Selenium等,在各行业应用较为广泛。
测试人员的在做测试需求的时候,开发人员人员的写的系统需求报告中的每一个需求点都会在测试需求中成为几个测试需求点(你要验证正常情况,异常情况),有时候给人的感觉就像在玩排列组合的游戏,但这个游戏排列组合的情况实在太多了,如果你不够耐心,不够细心是很容易遗漏测试需求点的,而这些遗漏的地方往往是问题点(开发人员也容易忘记考虑这些地方,从而产生问题)。
另外测试工作输入的数据是一个很烦琐的事情。
举一个例子来说,一个日期合法性测试,很容易总结三、四百个测试数据,你想全部测试工作会是一个什么数量。
而更可怕的是,测试不是一次性的工作,经常需要做回归测试,所有烦琐的工作必须不断的重复,而在重复的时候测试人员往往会因为怕麻烦,减少测试用例数,造成测试的不全面。
所以说认真、细心、不怕麻烦是一个好的测试必备的素质要求
开发工具在变,测试工具在变,被测试的系统在变,一切的东西都在变,那么作为一个测试人员最重要的是学习什么,个人认为是测试理论的学习。
概要设计文档,详细设计文档,需求文档是我们制定测试需求的标准,也是我们判断系统是否存在问题的标准,而概要设计文档,详细设计文档是我们制作测试用例的依据。
总计
不断的学习新技术,不断总结在实际工作遇到的问题,解决的方法,并把他们整理归纳,是一个测试人员提高自己的技术水平的最好的方法。