定义角度
对于软件测试,经典的定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
其实,通俗来讲,软件测试就是通过人工或者自动化的手段,来测试某个程序,去检验是否满足需求,去弄清楚预期结果与实际结果的差别。
以下这些观点也算作对于软件测试的定义:
- 软件测试是为了发现错误而执行程序的过程
- 软件测试是根据软件开发各个阶段的规格说明和程序内部结构而设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
总之,软件测试就是为了发现程序中的错误并及时改正。
对于是否需要执行被测软件来划分,又可分为静态测试和动态测试。
- 静态测试:是指不运行被测程序本身,仅通过分析程序的语法,结构,过程,接口来检验程序的正确性;
- 动态测试:是指运行被测程序本身,检查运行结果与预期结果的差异,分析运行效率,正确性和健壮性等性能;
目的角度
软件测试的目的:(同样也是测试人员的工作职责)
- 发现软件缺陷
- 尽可能早的找出软件缺陷
- 尽可能早的找出软件缺陷,并且确保缺陷得到修复
对于软件缺陷,有以下定义,具体可以参考什么是软件缺陷
- 软件没有实现产品的说明书所描述的功能。
- 软件实现了产品说明书描述不应有的功能。
- 软件执行了产品说明书没讲的操作。
- 软件没有实现产品说明书没讲但应该实现的功能。
- 从软件测试员的角度来看,软件难以理解、不易使用、运行缓慢,或者最终用户认为不对。
测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。
没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。例如Bev Littlewood发现一个经过测试而正常运行了n个小时的系统有继续正常运行n个小时的概率。
我对测试的理解
对于软件测试,我自己是这样理解的:首先,软件测试就是为了发现程序错误而执行的过程,它的目的就是发现缺陷,保障系统的正常运行。并且,软件测试不仅是测试软件产品本身,还包括软件开发的过程。我认为软件测试是整个软件质量保证过程中重要的一部分,这也就是我选择软件测试这个行业的原因。
面试题:为什么做软件测试,不做开发?
针对这个问题主要可以从这几个方面去回答: 1.自身能力:相比于开发来说自己比较适合测试,在开发这方面自己不能进行钻研、或兴趣不大等方面。
2.兴趣:对测试比较感兴趣,在开发方面编程不是太感兴趣兴趣,在测试方面了解比较多。
3.特长:自己在这方面做的比较多,举一些自己做过测试的例子和稿子作为介绍。
4.性格:我是一个心细、喜欢提问题、问问题等等的人,所以我觉得自己比较适合测试这个工作。
这一点大家根据自己的实际情况回答就好。