1.软件测试是什么?
关于这个问题,我对于软件测试的理解就是评价一个系统或者程序的属性或者能力,决定它符合它自身所需要的结果。
软件测试的经典解释:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
2.软件测试从哪里来?
20世纪60年代 软件测试最多是在开发结束后,程序员执行的一些活动,
目的是为了表明程序是正确的,没有专职测试工程师。没有专门的知识和技能(除了猜测错误),没有测试工具和流程。分不清测试与调试。程序员像原始人一样在漫无边际的荒野上游荡,希望能碰上自己的猎物。
2. Demonstration oriented:
70年代后期Glenford Myers, there was the demonstration oriented period where debugging and testing was distinguished now - in this period it was shown, that software satisfies the requirements. 调试和测试被区分,测试的软件是否满足需求,找出falut. 是“艺术”
3.Destruction oriented:
目的在于找到程序中的错误。where the goal was to find errors.
4.Evaluation oriented:intention here is that during the software lifecycle a product evaluation is provided and measuring quality. 在软件的生命周期中对产品进行评价并测试其质量。软件企业开始成立QA/SQA部门,
5. Prevention oriented :where tests were to demonstrate that software satisfies its specification, to detect faults and to prevent faults. Gelperin, D.; B. Hetzel (1988). “The Growth of Software Testing” ,测试是为了验证满足功能需求,查出和防止缺陷。
6.UML, model based designed:从需求开始验证,可执行的需求规格说明书,代码自动生成。
3.为什么要进行软件测试?
1.因为我们不是足够好的程序员
2.没有集中足够的精力去克服错误
3.有时忘记使用全构造化的编成,自顶向下的设计得到我们的解决方案
4.我们本应该区分出其他程序员或客户说的话,知道他们是如何想的,和他们真正含义
5.测试本身就是承认“失败(失效)”