1、首先,什么是软件测试?
很多人看到这个小标题肯定会一笑而过,但你绝不能忽视他的真正概念。
软件测试是检查实际结果与预期结果是否匹配并确保软件系统无缺陷的活动。软件测试还有助于识别产品与实际需求不符或是缺失项。测试活动既可以手动完成,也可以使用自动化工具完成。有些人更喜欢将软件测试称为白盒和黑盒测试。
2、软件测试的目标
在给定的产品中尽可能多地发现错误(或bug)。
演示一个给定的软件产品与它的需求规格匹配。
使用最小的成本和努力来验证软件的质量。
生成高质量的测试用例,执行有效的测试,并发布正确和有用的问题报告。
3、软件测试过程
软件测试通常分为两个主要过程——验证 & 认证。
验证 是当您的团队只需要检查软件、系统或框架是否符合文档要求时的过程。
验证是您的团队需要验证系统正确性的过程。在这个过程中,您将回顾产品、系统,并考虑用户真正想要什么和已经做了什么。
在软件测试中,错误、缺陷和错误之间有区别,我们应该清楚地区分,以避免误解问题。
4、为什么软件测试很重要?
测试很重要,因为软件错误可能很昂贵甚至很危险,一个bug越长越不被发现,它就可能带来更大的隐患。此外,如果测试团队错过了准确详尽地捕捉或识别风险和软件问题,会导致一些灾难发生,那么就需要付出昂贵的代价来检测bug,所以软件漏洞或是Bug可能会导致货币和人员的损失,历史上太多这样的例子,下面我们就来看看这些经典的事例。
2015年4月,伦敦彭博终端由于软件漏洞宕机,导致金融市场上超过30万交易商受到影响。迫使政府推迟30亿英镑的债务出售。
日产尼桑汽车由于安全气囊感应探测器的软件故障,召回超过100万辆汽车。据报道,由于此软件故障导致两起事故。
星巴克咖啡由于POS系统的软件故障无法处理交易,因此被迫关闭了美国和加拿大约60%的商店。
亚马逊的一些第三方零售商看到他们的产品由于软件故障价格全部被降至1英磅,由此导致惨重损失。
Windows 10中的漏洞,此问题使用户能够通过win32系统中的缺陷脱离安全沙箱。
2015年,F-35战斗机成为软件漏洞的受害者,导致其无法正确检测目标。
1994年4月26日,中国航空公司空中客车A300因软件故障而坠毁,造成264人无辜死亡
1985年,加拿大的Therac-25放射治疗机由于软件Bug而发生故障,向患者提供了致命的辐射剂量,造成3人死亡,3人严重受伤。
1999年4月,一个软件漏洞导致12亿美元的军事卫星发射失败,这是历史上最昂贵的事故。
1996年5月,一个软件问题导致美国一家大型银行823名客户的银行账户被记入9.2亿美元。
2018年6月27日,阿里云出现大规模故障,原因为上线自动化运维系统触发未知Bug,导致部分产品访问链接不通,影响时间约半小时,不知道云中的程序猿们年终奖是否会泡汤。
5、软件测试的类型
通常,测试分为三类:
下面详细介绍一些比较常用的类型:
1、单元测试
这是在开发人员级别使用的最基本的测试,测试人员专注于单元代码的单个部分,而它已经从任何外部交互或依赖于任何模块之前被隔离。这个测试要求开发人员检查他们编写的最小代码单元,并证明单元可以独立工作。
2、集成测试
在开发人员级别上,在单元测试之后,还应该仔细检查这些最小代码的组合(或集成)。集成测试提供了访问网络、数据库和文件系统的测试模块。
它们将指示数据库和网络在合并到整个系统时是否运行良好。最重要的是,在前一阶段测试的小代码单元之间的连接将在这个阶段被证明。
3、功能测试
毫无疑问,功能测试是更高级别的测试类型,应该在集成测试之后使用。
功能测试检查输出与规范中定义的输入的准确性。对中间值不太重视,但对所创建的最终输出给予了更多的关注。
4、回归测试
当系统中出现复杂的bug时,通常会影响系统的核心区域,所以使用回归测试来重新测试系统的所有模块。
总结:
随着软件业的迅猛发展,软件测试也变得尤为重要,但是很多人对测试行业的误解还是存在的,“软件的重点在于需求,在与分析,在于设计,在于开发,而测试,容易,没什么技术含量,找一些用户,对照需求尽力去测就行了;有时间多测点,没时间少测点。”这种错误的看法在好多项目经理,软件负责人的心中巩固着,难以改变。
这种观念的结果有目共睹,是什么?很简单,是大量软件BUG,缺陷的“流失”从测试人员的手中悄然而过,流失到用户手中,流失进项目维护阶段,随之而来的,便是用户无休止的抱怨,维护人员无休止的 “救火”,维护成本无休止的增加。这是软件人员的梦魇!
噩梦总有醒来时,经过无数教训的重击,再不堪回首而不得回首的经历中,软件业的管理者发现:是他们错了,软件测试是不可忽视的。
标签:第三方软件测评、bug
文章来源:第三方软件测评的重要性分析 - 成都柯信优创信息技术服务有限公司