什么是软件测试
一、软件测试的定义软件测试的经典定义是在规定条件下对程序进行操作以发现错误对软件质量进行评估。因为软件是由文档、数据以及程序组成的所以软件测试的对象也就不仅仅是程序本身而是包括软件形成过程的文档、数据以及程序。随着软件工程化越来越被重视以及软件规模的不断扩大软件分析、设计的作用越来越突出而在实践中越来越多的错误是在刚开始的分析与设计阶段就已经存在所以对于软件需求和设计阶段的测试就显得非常重要这就是测试概念的扩大化以及软件全生命周期测试的理念。二、软件质量软件质量有下面几个定义1991年ISO 9126中定义软件质量是软件满足规定的或潜在用户需求特性的总和1999年ISO 14598定义软件质量是软件特性的总和软件满足规定或潜在用户需求的能力。一般对质量的理解是一个实体的“属性”“属性”好就是质量好但是这不够全面因为“属性”是内部特性而内部特性好不代表一定能够完成好用户的任务所以软件质量也是关于软件特性具备“能力”的体现。软件质量包括“内部质量”、“外部质量”、“使用质量”三个部分也就是说软件满足规定的或潜在的用户需求的能力要这三个方面去衡量。三、软件测试与质量保证的区别质量保证 质量保证的工作是通过预防、检查和改进来保证软件质量。QA使用“全面质量管理”和“过程改进”的原理开展质量保证工作。所关注的是软件质量的管理与测量。虽然QA活动也有些测试活动但所关注的主要是软件质量的检查与测量。软件测试 测试和质量保证同样都是与软件的开发过程紧密相关但不同的是其并不关心软件开发过程的活动而是对过程的产物以及开发出的软件进行剖析。测试活动必须假设软件中存在潜在问题测试中所有的操作都是为了找出更多的问题而不仅仅是为了验证每一件事是正确的。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作所以说软件测试是保证其质量的重要一环。四、软件测试的目的在早期软件定义指出软件测试的目的是寻找错误并且尽可能找出更多的错误。后面有人提出了以下几个目的1.测试是程序的执行过程目的在于发现错误2.一个好的测试用例在于能够发现至今为止未发现的错误3.一个成功的测试是发现了至今未发现的错误的测试4.也有人提出软件测试不仅仅是为了发现缺陷更重要的是要通过对软件质量的度量以提高软件的质量。综上所述软件测试的目的可以概括如下软件测试是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷通过修正各种错误和缺陷提高软件质量回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 同时测试是以评价一个程序或者系统属性为目标的活动测试是对软件质量的度量与评估以验证软件的质量满足用户的需求的程度为用户选择和接收软件提供有力依据。备注 测试是为了证明软件是否可以使用即是符合用户的需求的。五、软件测试的原则原则1 所有的测试都应追溯到用户需求由于软件设计和开发的目的就是使用户完成预定的任务并满足用户的需求而软件测试所揭示的缺陷和错误使软件达不到用户的目标满足不了用户的需求。原则2 应该尽早地和不断地进行软件测试因为软件生命周期的各个阶段都有可能产生错误所以不能把软件测试仅仅看作为软件开发活动中的一个独立阶段的工作而应该将其贯穿于开发的各个阶段中。同时还应尽可能早的开始测试只要测试在生命周期中进行得足够早就能够提高被测软件的质量这就是预防性测试的基本原则。原则3 完全测试是不可能的测试需要终止在有限的时间和资源条件下找出所有的软件缺陷是不可能的主要有三个方面的原因1.输入量太大2.输出结果太多3.路径组合太多原则4 测试不能显示软件潜在的缺陷也就是说测试只能证明软件中存在缺陷而不能证明软件中没有缺陷。原则5 充分注意测试中的集群现象经验表明测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。根据这个规律应对错误集群的程序段进行重点测试以提高测试效益。原则6 程序员应避免检查自己写的程序这有两个原因一个是心理原因一个是思维定式原因一个使人不大愿意承认自己的错误以及思维定式导致难以发现自己的错误因此为达到测试目的应该避免这种情况出现。原则7 尽量避免测试的随意性应该从工程的角度去理解软件测试他是有组织、有计划、有步骤的活动最后下方这份完整的软件测试 视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。