软件开发进公司,呆了久了你就会发现,测试和设计阶段远远比写代码的时间长。你能为了写设计或修改设计把头发揪秃了,写代码的紧吧日子也就一两个星期。
作为开发人员,做测试时间长了,是否你也是只是做了测试,测试那些事也没个总结?
软件测试的阶段
白盒测试:基于代码阶层的测试
黑盒测试:即交互性测试。
1.实现的功能 :UI界面测试,软件功能逻辑测试,(系统、软件)兼容性测试、安全健壮性测试。
2.性能测试
灰盒测试
常用的软件系统的开发阶段分类测试
代码review测试 (大概属于静态测试):
根据详细设计书、命名规则说明书、注释规范等对编写的代码进行目视确认,确保其安装预期正确编写。
单元测试(PG,PT):
代码编写人员依照详细设计对代码进行逻辑确认(ProgramTesting)。就是大家平时说的debugReview,确保编写的模块,按照设计能够正确编写,正常运行。
集成测试(IT):
程序各个基础模块集中在一起的接口测试(interfaceTesting)。集成测试(integration testing)是由测试人员根据程序概要设计书完成测试,确保各程序模块正确组装交互。
也可以说是结合测试(Combination test )。
系统测试(ST):
(systemTesting)系统测试测什么?测的是软硬件环境、软件的功能、性能、健壮性等是否达到预期。
1.软件环境:程序运行的系统、使用的关联软件(比如win10,Office等)。
2.硬件环境:测试环境的硬件配置(内存,CPU、网络)等。
3.性能测试(PerformanceTesting):主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。有时候客户会要求单独做性能测试,来判定软硬件环境极限值等等,用以判定程序是否达到预期。
交付测试(或者验收测试):
软件交付客户,客户做的测试。
回归测试 :
确保程序中出现的异常Bug等修改后,测试修正后的程序模块是否正确修改,且没有对既定机能产生影响。
这个测试很多测试人员都做过。回归测试很可能在交付前,也可能在交付后。如果出现在交付测试阶段。。。。。
此外还有一些测试如:运用(OT)测试、随机测试(根据经验瞎点)等。
说了那么多,测试的目的是什么?
测试的目的就是确保软件产品的品质。确保在产品交付时,品质保证书有理有据。比如说程序规模、代码PGPT覆盖率、测试用例覆盖率、异常处理、有效代码率、注释率、异常率、测试率等等。
如何判定软件产品的品质OK?从下面几个方面来说:
功能性
软件是否准确实现了相应的交互性的功能,并且这些功能能够在安全的操作,以此判断软件是否具有很好的功能性。
可靠性
什么样的软件可靠?成熟的、容错率低的、出错恢复快的软件对客户来说较为可靠。
效率性
效率是指什么?最短的时间、最少的资源、做成的最大的及成果。
在规定的时间内能达成的结果,其平均响应时间、完成的工作量、及对硬件、cpu、内存、网络等等的使用,处理的最快的速度即是软件效率。
易用性
软件的易用性通俗说就是软件的容易理解、容易学习、容易操作、容易让用户记住。
可维护性
运维了很长时间,你是否还没总结什么是维护性?
维护性就是软件出了问题容易分析、对应的功能容易实现或者改变、软件程序对异常处理较为妥善,程序稳定性好、能够好好的达成测试结果。
可移植性
软件的移植性:跨平台、易安装、可共存、易替换。
码农路长分叉多。。。