测试小白的心酸路之测试初体验

测试初体验—来自测试小白的自述

本人是一个2021年应届毕业生,大三的时候去某家大厂实习过三个月的开发,那三个月自己仿佛老了10岁,天天跟代码打交道,作为一个自由主义者实在是有些熬不住,但是不想抛弃大学所学专业知识,再者因为计算机工资普遍偏高,所以毕业后转行软件测试,本想着能够轻松一些,但是来了一个月后我发现测试并不是那么简单,测试前景也并不是我当初所认为的那么差,做好测试照样可以在互联网行业混的风生水起,在这里我将要记录我平时的测试心得,同时记录着一个测试大牛的崛起之路。

什么是测试?什么又是软件测试?

在百度百科上,测试是这样解释的:测试是具有试验性质的测量,即测量和试验的综合
所谓的软件测试其实理解起来也不难,同样在百度百科上对于软件测试是这样定义的,软件测试:用来描述一种促进鉴定软件的正确性、完整性、安全性和质量的过程。 换句话来说,软件测试就是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试是干什么的?

1、制定、编写软件测试方案与计划;
2、按时完成软件测试工作任务,执行测试,跟踪缺陷状态,提交测试执行报告;
3、编写测试文档、测试报告,提交测试结果;
4、测试环境的设计、设置,完善测试规范流程、创建和维护测试用例;
5、改进软件测试流程、工具和质量;
6、参与测试结果评审。

软件测试的工作流程?

在这里插入图片描述首先项目组立项,测试人员需要熟悉项目的业务,了解测试需求,分析需求点,随后编写整个测试计划,在这个过程中需要参考需求规格说明书,这个阶段一般情况下是测试主管编写。包括了测试人员,测试时间,测试工具,测试方法等。随后是测试用例的编写与执行,测试用例是测试工作中的最核心的模块,在执行任何测试之前,首先必须完成测试用例的编写。测试用例是指导你执行测试,帮助证明软件功能或发现软件缺陷的一种说明.用例设计好之后,会进行评审。随后执行你所写的用例,需要搭建环境,准备好测试数据,进行预测,预测通过后,按照测试用例进入正式测试。后续进行缺陷管理,缺陷一定要处理,不能提了Bug就当甩手掌柜,后续必须跟进,进行回归测试,最后编写测试报告,对整个测试的过程和版本的质量做一个评估。

软件测试的方法?

软件测试的方法种类繁多,记忆起来非常混乱 但是如果把这些软件测试方法进行分类, 就会清晰很多,我参考一些书籍和网上的资料, 把常用的软件测试方法列出来, 让大家对软件测试行业有个总体的看法。

按测试设计方法分类:

测试方法测试内容
黑盒测试把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试
白盒测试设计者可以看到软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择
灰盒测试介于黑盒和白盒之间

常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
常用白盒测试方法:静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

总结: 在实际工作中,对系统的了解越多越好,所以目前大多数的测试人员都是做黑盒测试,很少有做白盒测试的。 因为白盒测试对软件测试人员的要求非常高,需要有很多编程经验。做.NET程序的白盒测试你要能看得懂.NET代码。做JAVA程序的测试,需要你能看懂JAVA的代码。 如果你都能看懂了,你还会做测试么~

按测试是手动还是自动上分类:

测试方法测试内容
手动测试测试人员用鼠标去手动测试 (测试GUI)
自动化测试用程序测试程序 (测试API)

总结: 对于项目来说,手动测试和自动化测试同等重要,都是保障软件质量的方法。 目前大部分的项目组都是手动测试和自动化测试相结合。因为很多测试无法做成自动化,很多复杂的业务逻辑也很难自动化, 所以自动化测试无法取代手动测试。
对于软件测试人员个人发展来说, 做自动化测试是个挑战,也是测试人员发展的一个方向, 需要测试人员学习大量的开发知识(开发的知识真是学无止境啊)。 从长远角度来看,自动化测试肯定是越来越吃香的。
而手动测试比较适合刚工作不久的人,手动测试最大的缺点就是技术含量低,单调乏味,容易废人。
总的来说,手工测试胜在测试业务逻辑,而自动化测试胜在测试底层架构。

按测试的目的分类:
功能测试
测试的范围从小到大,从内到外, 从程序开发人员(单元测试)到测试人员,到一般用户Alpha/Beta测试

测试方法测试内容
单元测试在最低的功能/参数上验证程序的准确性,比如测试一个函数的正确性(开发人员做的)
功能测试验证模块的功能 (测试人员做的)
集成测试验证几个互相有依赖关系的模块的功能 (测试人员做的)
场景测试验证几个模块是否能完成一个用户场景 (测试人员做的)
系统测试对于整个系统功能的测试 (测试人员做的)
Alpha 测试软件测试人员在真实用户环境中对软件进行全面的测试 (测试人员做的)
Beta 测试真实的用户在真实的用户环境中进行的测试, 也叫公测 (最终用户做的)

非功能测试
一个软件除了基本功能之外,还有很多功能之外的特性,这些叫“Quality of Service requirement”服务质量需求。没有软件的功能,这些特性都无从表现出来,因此,我们要在软件开发的适当阶段-基本功能完成后做这些测试。

测试方法测试内容
压力测试验证软件在超过负载设计的情况下仍能返回正确的结果,没有崩溃
负载测试测试软件在负载情况下能否正常工作
性能测试测试软件的效能,是否提供满意的服务质量

按测试测策略分类:

测试方法测试内容
回归测试对一个新的版本,重新运行以往的测试用例,看看新版本和已知的版本相比是否有退化
探索性测试随机进行的,探索性的测试。

回归测试:对软件测试人员来说就是重复测试,所以回归测试最好是自动化的,否则测试人员就要一遍又一遍地重复测试,
1.开发人员做些小改动,就需要测试人员做回归测试。确保现有的功能没有被破坏
2.Bug Fix 也需要回归测试,确保新的代码修复了Fix, 也确保现有的功能没有被破坏
3.项目后期,需要做一个完整回归测试, 确保所有的功能都是好的

探索性测试: 平常我最喜欢做随机测试了, 抛开test case. 自己按照自己的思路,随便点点。

软件测试工作的前景?

在IT行业,大家普遍是以技术能力来评价员工能力的。这不仅让公司大多数人轻视测试岗位,轻视测试人员,就是我们测试人员自己在与开发人员沟通时,都不自觉的小心翼翼起来。

其实,这完全是一种谬误,我们测试人员为啥要和开发人员比软件开发能力呢?其实软件测试岗位对职员的综合能力要求更高。首先,你需要具备“软件测试专业技能”,“沟通表达能力”,“资源协调能力”,“宏观把控能力”,而且还要“产品分析能力”。拿测试人员的弱项与开发人员的强项做对比,显然是不公平的。
以上,只是希望我们测试人员不要妄自菲薄,给我们测试人员补充点信心。
在软件行业的前景,分为以下5点:
1、随着国民生活水平的提高,人们开始对产品质量也有更高的要求,对人们离不开的软件产品更是如此,这就促使了软件开发公司,更加重视软件测试工程师这个岗位,但同时也提高了对软件测试工程师的要求。
2、从国外发达国家,成熟的软件公司的开发与测试比例来看,标准的说法是5:1,但从近期实际情况来看,达到了2:1不在少数。而国内的情况呢?达到5:1的其实是很少的,所以说,软件测试工程师缺口是很大的。
3、从个人职业发展来看,软件测试工程师更加强调经验积累,也就是职业寿命是比较长的,比开发工程师要长的多。
4、从后期岗位适应性来看,软件测试工程师可以转向管理岗,或者产品经理岗,我们的选择会更多。
5、从薪资待遇来看,懂接口自动化,UI自动化,性能测试的软件测试工程师,薪资待遇不比开发工程师低。

从以上几点来看,我们软件测试工程师的前景还是比较可观的,所以,我们只需要努力提升自己的能力,薪资待遇自然而然就跟着水涨船高了。

少年辛苦终身事,莫向光阴惰寸功!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值