软件测试的知识点
思维导图(部分):
软件测试的定义:
-
软件是一个集合,包括三部分:文档,程序和数据
-
软件测试就是为了发现错误而审查软件文档,检查软件数据和执行程序代码的过程,其目的在于在软件交付前分发现缺陷并协助相关部门定位,解决缺陷,最后交付一个高质量软件给客户。
-
从广义上讲,软件测试是指软件产品生存周期内的所有检查、评审和确认活动。如设计评审、文档审查、单元测试、集成测试、系统测试、验收测试等。
-
软件测试中称找缺陷的过程为找Bug。Bug表示电脑系统或程序中隐藏的错误、缺陷和问题。
软件测试的分类:
1. 黑盒测试:
- 黑盒测试又叫做功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类型注重于测试软件的功能性需求。测试工程师无需了解程序代码内部结构,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。
2. 白盒测试:
- 白盒测试又称为结构测试、逻辑驱动测试或基于程序代码内部构成的测试。
3. 灰盒测试:
- 灰盒测试是前两种测试的集合,一方面考虑程序代码的功能性表现,另一方面又要考虑程序代码内部结构。像我们的功能测试,自动化功能测试就采用了灰盒测试的方法。
4. 静态测试:
- 静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。通俗的讲,静态测试就是用眼睛看,阅读程序代码、文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理以及文档资料有错误的地方。
- 一般在企业、公司里召开正规的评审会,通过评审的方式,找出文档资料、程序代码中存在缺陷的地方,并加以修改。
5. 动态测试:
-
动态测试即为实际的执行被测试对象代码,输入事先设计好的测试用例,检查程序代码运行的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预期结果是否一致,从而检查程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。
-
动态测试由四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。
6. 手动测试:
- 手动测试是最传统的测试方法。它是测试人员设计测试用例并且执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。
7. 自动化测试:
-
自动化测试就是利用一些测试工具,模拟用户的业务使用流程,让它们自动运行来查找缺陷。也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷。
-
自动化测试的优点是能够很快、很广泛的查找缺陷,同时可以做很多重复性的工作,在回归测试阶段,可以利用QuickTest
-
自动化测试工具:HP的QuickTest Professional、Jmeter,LoadRunner(可用于压力测试),微软的WAS,IBM的Rational等。
按结构与内部实现:
- 黑盒测试
- 白盒测试
按是否执行程序分类:
- 静态测试
- 动态测试
按执行过程分类:
- 单元测试
- 集成测试
- 确认测试
- 系统测试
- 验收测试
软件评审
代码评审