软件测试到底是个啥?
总听人说软件测试怎样怎样。
可是,软件测试到底是个啥玩意儿?
正所谓“知己知彼,百战不殆”。
就算准备转行软件测试,那也得搞清楚软件测试到底是啥意思对吧?
首先,我们打开百度搜索:“软件测试”。
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
看完这段话,相信很多人都是似懂非懂地“哦”了一声。更别说还有人根本都没有看完。
用一句话来概括:
软件测试,就是在测试这个软件是不是能够完全按照我们希望的样子运行。
再简单点说就是:找BUG。
道理我都懂,但是,这个BUG该怎么找呢?
那方法可是太多了。
按照测试过程中程序执行状态可以分为静态测试和动态测试
静态测试只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。
▍翻译一下就是:程序不运行,看看面相哪里有毛病。
动态测试则是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性等。
▍翻译一下就是:没病走两步儿?
而根据具体实现算法细节和系统内部结构的相关情况则分为黑盒测试、白盒测试和灰盒测试。
黑盒测试,就是将被测程序当成一个无法打开的黑盒子,测试人员在不考虑内部结构和特性的条件下,检查程序功能是否能够按照规范说明准确无误地运行。
▍简单来讲就是:这是一道填空题,只看结果,不看过程。
白盒测试,与黑盒测试相对,主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路是否能够正常工作。
▍白盒测试更看重程序内部的表现,这道题是要看过程给分的。
灰盒测试,介于黑盒测试和白盒测试之间,不光重视输出内容的正确性,也关注内部表现。当然灰盒测试不像白盒测试那样详细完整,只需要通过象征性的现象或标志判断内部的运行情况。
▍这道题就是看关键词和要点给分了。
除了以上两种分类方式,还有一种按照程序执行方式的划分:手动测试和自动化测试。
这个想必就不用多做解释了。手动测试就是设计好测试用例,然后按照测试用例一步步执行,然后对比结果,耗时耗力。自动化测试就方便多了,在预先设定的条件下运行程序,分析结果,一气呵成。
当然,目前很多软件测试工作还达不到自动化测试的程度,就算使用自动化测试也不能完全放弃手动测试。
好的,这些东西都清楚了,又该怎么学习软件测试呢?
按部就班来看就是,学习测试基础(重中之重)、脚本语言(比如Python)、软件测试工具、计算机硬件知识、数据库测试,然后就是正式踏入软件测试之前的最后一步——项目实战。
看起来,说起来,软件测试似乎都不是很难。
然而现阶段,我国软件测试基础人才的缺口还是非常非常大的。
所以,有兴趣的小伙伴们不妨来试试~