什么是软件测试?
软件测试是什么?
首先,我们打开百度搜索:“软件测试”。
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
看完这段话,相信很多人都是似懂非懂地“哦”了一声。更别说还有人根本都没有看完。
用一句话来概括:
软件测试,就是在测试这个软件是不是能够完全按照我们希望的样子运行。
再简单点说就是:找BUG。
道理我都懂,但是,这个BUG该怎么找呢?
那方法可是太多了。
按照测试过程中程序执行状态可以分为静态测试和动态测试
静态测试只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。
翻译一下就是:程序不运行,看看面相哪里有毛病。
动态测试则是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性等。
翻译一下就是:没病走两步儿?
而根据具体实现算法细节和系统内部结构的相关情况则分为黑盒测试、白盒测试和灰盒测试。
黑盒测试,就是将被测程序当成一个无法打开的黑盒子,测试人员在不考虑内部结构和特性的条件下,检查程序功能是否能够按照规范说明准确无误地运行。
简单来讲就是:这是一道填空题,只看结果,不看过程。
白盒测试,与黑盒测试相对,主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路是否能够正常工作。
白盒测试更看重程序内部的表现,这道题是要看过程给分的。
灰盒测试,介于黑盒测试和白盒测试之间,不光重视输出内容的正确性,也关注内部表现。当然灰盒测试不像白盒测试那样详细完整,只需要通过象征性的现象或标志判断内部的运行情况。
这道题就是看关键词和要点给分了。
除了以上两种分类方式,还有一种按照程序执行方式的划分:手动测试和自动化测试。
这个想必就不用多做解释了。手动测试就是设计好测试用例,然后按照测试用例一步步执行,然后对比结果,耗时耗力。自动化测试就方便多了,在预先设定的条件下运行程序,分析结果,一气呵成。
当然,目前很多软件测试工作还达不到自动化测试的程度,就算使用自动化测试也不能完全放弃手动测试。
好的,这些东西都清楚了,又该怎么学习软件测试呢?
按部就班来看就是,学习测试基础(重中之重)、脚本语言(比如Python)、软件测试工具、计算机硬件知识、数据库测试,然后就是正式踏入软件测试之前的最后一步——项目实战。
看起来,说起来,软件测试似乎都不是很难。
2017-12-06
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
软件测试的目标:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
软件测试的内容:
软件测试主要工作内容是验证(verification)和确认( validation ),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
从不同的角度出发,软件测试可以划分为不同的分类:
从是否关心软件内部结构和具体实现的角度划分
A.白盒测试
B.黑盒测试
C.灰盒测试
从是否执行程序的角度
A.静态测试
B.动态测试。
从软件开发的过程按阶段划分有
A.单元测试
B.集成测试
C.确认测试
D.验收测试
E.系统测试
更直接的意思就是:我要一个能吃饭的碗,而你不能给我一个盆子,也不能给我一个杯子,更不能给个有缺口的碗。而这一切就只是为了满足客户的要求。
广告 您可能关注的内容 |