这个本该在实验室的测试中能被轻易发现的问题,却由于各种技术或管理原因被漏掉了
这两个定义代表了两种主流的测试理念,前者强调测试的目的是为了发现问题,而后者则认为测试的目的是验证(在特定条件下)没有问题,两者各有特点这两种测试理念都有不少追随者,在实践上,一般以某种理念为主,同时吸取另一种理念的长处
因软件缺陷而导致重大负面影响或损失的例子数不胜数,业内顶级厂商都不能幸免究其原因,几乎都可归入软件测试不够充分如此多的案例,一方面佐证了软件测试的重要性,另一方面,也说明了做好软件测试远不是一件容易的事情
一、软件测试的经典定义
即使是有经验的测试,也会因其自身经验和理念的差异,对软件测试给出不同的定义业界引用软件工程较多的是g.j. myers在其经典著作《软件测试之艺术》(the art of software testing)中给出的测试的定义:测试是为了发现错误而执行程序的过程 (the process of executing a program or system with the intent of finding errors.)
2007年5月18日,众多使用诺顿防病毒软件的中国个人用户和企业用户在重启系统后出现蓝屏,系统不能正常使用虽然诺顿当天下午就给出了解决方案,但是诺顿作为专业安全公司的信誉受到了严重影响,损失重大该事故原因非常简单,就是当天的诺顿更新把两个简体中文版的windows系统文件误当成了病毒
以发软件工程师现问题为目的的测试,会引导测试工程师全力投入易发现问题的测试方向,效率相对较高;但弊端是会忽略不易发现问题的方面,即使是系统的关键部分,也可能因不易发现问题而导致测试投入不够,事实上,“不能发现问题”本身就是主观认定的,不测更无法发现问题这种测试理念如果把控不好,很容易导致测试方向错误,遗漏重要问题
那么,什么是测试?如何做好测试?
另一个经典的定义是ieee 1999年对测试的定义:测试是在特定条件下,操作一个系统或部件,观察和记录结果,对系统或部件的某些方面进行评估的过程(the process of operating a system or component under specified con软件工程ditions, observing or recording the results, and making an evaluation of some aspect of the system or component).
北京那个医院看白癜风北京治疗白癜风的正规医院