万丈高楼平地起,成功还得靠自己~~~
1、什么是测试?测试的目的
1.1什么是测试?
以下是百度百科给出的解释:
测试是具有试验性质的测量,即测量和试验的综合。而测试手段就是仪器仪表。由于测试和测量密切相关,在实际使用中往往并不严格区分测试与测量。测试的基本任务就是获取有用的信息,通过借助专门的仪器、设备,设计合理的实验方法以及进行必要的信号分析与数据处理,从而获得与被测对象有关的信息。测试最终的结果是将显示的信息输入到信息处理库中,进行控制。
简单一句就是-----找bug
测试只是找bug吗????
跳出测试的视角,站在公司的角度看测试时,会发现测试的目标是商业成功,而不仅是找bug。商业成功的关键是什么?简单点说就是可以长期地稳定获得大量的客户并获得足够的利润。而要想长期稳定的得到客户的喜爱,就必须提供让用户满意的质量,这是测试找bug的初衷。可是商业成功要解决的“大量的客户”,“足够的利润”,如何由测试来保障呢?“大量的用户”的获得有时关键就是看谁的产品先推向市场,先占领市场。因此一个词“TTM——Time to Market”就是非常重要的,测试应该支撑项目在满足质量目标的条件下能及时地推向市场,而不是拖延产品的发布进度。“足够的利润”就要确保成本越低越好。减少研发人力:减少开发人力和测试人力;减少研发时间:减少开发修改bug的时间和减少测试活动时间;就能帮助产品减少成本,提高产品的利润。(摘取自51Testinghttp://www.51testing.com/html/47/n-185647.html)
总结:上线质量,进度,成本等的把控。
1.2测试的目的
软件测试目的是发现软件中的缺陷,提高产品质量:
发现尽可能多的缺陷,证明开发实现的和产品需求的一致性;
成功的测试在于发现了迄今尚未发现的缺陷;
测试决不能证明软件100%正确,即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在软件中。
2、测试流程及测试需要做什么
2.1 需求评审
确保产品 开发 测试统一战线,目标一致。是产品生产的重要环节。
需求文档 原型 交互图
需要具体到每一个细节,三方都知道是怎么实现,怎么交互。
测试需要在这一步需要思考需求的合理性,完整性,无歧义等以及之后怎么展开测试。
有问题当场确定及修改文档,要白纸黑字的明确下来,留下证据,以便日后XX。
2.2 准备测试用例 准备测试环境 预发布环境
用例要素:
编写用例的方法:
测试用例的设计主要运用等价类、边界值、场景法等方法进行设计。
用例管理工具:禅道 jira等
环境部署:
jenkins自动化部署 配置
linux命令
nginx配置等
2.3 用例评审
测试主导,三方再次确认需求,评审需求的过程。
2.4 正式系统测试
冒烟测试:就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。
如果不通过,则打回开发那边重新开发;
如果通过测试,才会进行下一步的具体的测试。
冒烟测试,是版本验证测试,主要确认新的版本是否存在致命性bug,冒烟测试最大的优点在于节约测试的时间成本,减少测试轮数。
正式的系统测试。
兼容测试:
web是基于浏览器的,倾向于浏览器和电脑硬件,电脑系统的方向的兼容,一般以浏览器的为主。
浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。
app的测试则必须依赖phone或者是pad,不仅要看分辨率,屏幕尺寸,还要看设备系统-系统总的来说也就分为Android和iOS。
回归测试:是软件维护阶段对软件修改后进行的测试,指修改了旧代码或提交新代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。对整个系统的回归。
测试关注点:页面功能实现 界面UI 用户体验 数据库落库 数据走向 (用户角度 代码 sql)
测试提交bug,对于有疑问的bug, 产品确认需求 确认bug 是否修改 修改后重新测试。这一步是需要花一些时间的,测试需要和开发,产品来回沟通。
测试工具的使用 jmeter postman
2.5 验收测试
验收测试判断产品质量是否符合产品需求、功能实现是否正确。
验收测试包括alpha测试(非正式验收测试)和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。
α测试:Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由测试员完成。Alpha测试发现的错误,可以在测试现场立即发聩给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能,可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Aplha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始。有关的手册(草稿)等应该在Alpha测试前准备好。
β测试:Beta测试(β测试)是软件的多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定可靠程度后,才开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。
UI验收测试
2.5 上线前的脚本数据库字段确认
我们公司是开发提dba操作,审批。测试需要确认测试环境和上线前的线上数据库字段是否一致。
2.6 上线+线上回归及监控
我们公司上线是由测试发布。测试和预发布环境都是由测试负责,有的公司测试只需要测试,其他所有东西都由运维负责。
上线时,需要监控日志,有无报错。监控工具的接入 elk cat 等
一般上线后需要回归及监控30min。对于我们目前的项目来说,上线后能有正常的订单生成及验证新功能就可以呢。
2.7 线上跟踪用户反馈
上线后,需要跟踪用户的反馈,以及后续优化。
2.8 优化修改需求 再来一遍
again
测试有时候还需要配合运维,dba升级环境等。
3、怎么确保上线后的稳定性
一个产品是三方的努力。需要产品的设计,开发的研发,测试的测试。
对于测试来说:产品的理解 用例的设计 用例的评审 用例的执行 回归测试(自动化脚本)及线上的监控每一关都至关重要 。
但是我觉得最重要的就是回归的覆盖,以及环境的一致性。
后话:发布时间,以及洞察问题的能力以及回滚时间,如果在用户没有感知的情况下已经发现并解决问题,那也是可以的。
4、写在最后的话
测试任重道远,但是又是非常好玩的一个事情,需要和大家沟通。需要了解开发,需要了解产品,需要了解用户,更需要自己的想法。
一个好的测试是让产品按照测试的想法去实现功能,我的目标fighting
测试反正方向也很多。性能,安全,自动化,测开,管理等,反正选择一条路,走到黑就行呢。
路漫漫其修远兮吾将上下而求索。加油加油加油加油加油加油加油加油,阳阳加油。