软件测试_理论知识(入门)

软件测试_入门总结说明:来源是一些博客、百度文库、书籍等。

1.软件测试_基本概念包含定义和目的两个部分:

    使用人工和自动的手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

    软件测试的目的(补充解释):1)从用户角度出发:希望软件测试暴露软件隐藏的错误和缺陷,从而考虑是否接受该产品;2)从软件开发者的角度出发:希望表明软件产品不存在错误和缺陷,验证软件能正确地实现用户需求,确立人们对软件质量的信心;3)从软件管理者角度出发:希望话费有限的资源达到该软件的质量要求,经费和进度是其考虑的焦点;

    软件测试根本目的:确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。

--------------------------------------------------------------------------------------------------------

    在了解了基本概念后,因测试的体系复杂,所以无论是面试还是实际工作,都非常有必要从图形(模式)上来笼统的先理解软件测试的流程和分类

--------------------------------------------------------------------------------------------------------

    最早的瀑布模型:


软件测试_理论知识(入门)

V模型:反映了实际和测试之间的关系


软件测试_理论知识(入门)

2个传统的模型最早的解释了测试的流程,但是都有非常明显的局限性:仅仅把测试过程作为编码之后的一个阶段,忽视了测试对需求的分析,系统设计的验证,如果前面设计错误,一直到后期验收测试才被发现,耗时耗力。(PS:我在曾经的面试中,碰到有测试leader问这个测试模型叫测试的U模型,其实是没有这个说法的)

W模型:


软件测试_理论知识(入门)

局限:仍然不支持迭代,减少了一定错误发生率,但是需按照流水线进行设计、编码和测试。

X模型:是一种比较独特的复杂模型,可以自行去了解

H模型:


软件测试_理论知识(入门)

特点:【活动并行】过程完全独立,并贯穿整个产品周期;结论:软件测试应尽早地准备和进行,可以根据被测物的不同而分层次进行

----------------------------------------------------------------------------------------

    在了解完软件测试的模型后,来认识下当下流行的“敏捷测试/开发”:

----------------------------------------------------------------------------------------

敏捷测试Agile Testing:敏捷测试是遵循敏捷宣言的一种测试实践。

敏捷宣言(包含四种核心价值观和十二条原则):

    个体与交互  重于 过程和工具 

    可用的软件  重于 完备的文档 

    客户协作  重于 合同谈判 

    响应变化  重于 遵循计划 

    (在每对比较中,后者并非全无价值,但我们更看重前者)

敏捷宣言的十二条原则就是敏捷过程的特点总结和解释,具体内容自行了解;

    通过以上测试模型,和敏捷测试,就形成了当下不同公司,但大同小异的测试过程或项目流程;

===============================================================

无意间发现一张【软件测试三维空间】,更直观、简单的解读了软件测试:


软件测试_理论知识(入门)

这个图也包含了软件测试的分类(三个维度上的区分);

PS:软件测试的分类非常多,甚至某个类别就是软件测试的一个领域,专门的去了解每一个测试的分类是非常有必要的,但是专精于一个分类领域才是明智的。

软件测试的十大原则(必读):软件测试的十大原则 - CSDN博客

软件测试其他基本概念链接:软件测试基本概念_百度文库

更准确、快速的掌握软件测试理论和思维,实际的工作经验,和书籍都是非常必要的;

推荐书籍链接:软件测试必读书籍 - CSDN博客

其中推荐二本:探索吧!深入理解探索式软件测试、探索式软件测试;