读书报告
本次读书报告的内容是《基于CMMI的软件工程及实训指导》这本书的13章---16章。
13章---16章的大致内容包括软件的测试,系统实现与测试过程,制定测试方案及编写测试用例,以及系统的测试。通过书本的学习,我了解到这是一个软件有了基本模型后的测试改进,因此此部分属于精益求精的部分。软件测试的目的是尽量减少用户在使用过程中的不便之处,以及缺陷,测试只能让漏洞变少,并不能完全消除。
软件测试的分类如下:
1、按开发阶段:单元测试、集成测试、系统测试、验收测试
2、按测试实施组织:α、β、第三方
3、按测试执行方式:静态测试、动态测试
4、按是否查看代码:黑盒测试、白盒测试、灰盒测试
5、按是否手工执行划分:手工测试、自动化测试
6、按测试对象划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试(用户体验测试)、业务测试、界面测试、安装测试
7、按测试地域划分:本地化测试、国际化测试
按开发阶段进行测试:
1)单元测试
单元测试是对软件组成进行的测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称为模块测试。
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发人员
测试依据:代码和注释+设计详细文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
2)集成测试
集成测试(也成联合测试,联调)、组装测试,将程序模块采用适当的集成策略组装起来,
测试阶段:一般的单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试模块+概要设计文档
测试方法:黑盒测试和白盒测试相互结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响。
3)系统测试
将软件系统看成一个系统测试。包括对功能、性能以及软件所运行的硬软件环境进行测试。时间大部分在系统测试执行阶段,,包括了回归测试和冒烟测试
测试阶段:集成测试之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全等
4)验收测试
验收测试是部署软件之前的最后一个测试操作,它是技术测试室的最后一个阶段,也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。
- 测试阶段:系统测试之后
- 测试对象:整个的系统(包括软硬件)
- 测试人员:最终的用户或者需求方
- 测试依据:用户需求和验收标准
- 测试方法:黑盒测试
-
测试内容:同系统测试一样
- 测试对象划分:
1)业务测试
是测试人员将系统的各个模块串接起来运行、模拟真是用户实际的工作流程,满足永续需求定义的功能进行测试的过程。
2)界面测试
界面测试也成为UI测试。测试用户界面的功能模块的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的使用习惯,还要测试操作界面操作便捷性、导航简单易懂性、页面元素的可用性,页面元素的可用性、界面中文字是否正确,命名是否统一,页面是否美观、文字、图片组合是否完美。
3)容错性测试
容错性测试:检查软件在异常条件下自身是否具有防护性的措施或密谋中灾难性恢复的手段
划分为容错性测试和非容错性的测试。4)文档测试
文档测试的关注点
文档的术语
文档的正确性
文档的完整性
文档的一致性
文档的易用性5)兼容性测试
兼容线性主要指的就是软件之间很好的运作,会不会有影响、软件和硬件之间是否能够发挥很好的效率工作,会不会影响导致系统的奔溃
6)平台测试
7)浏览器测试
8)易用性测试
易用性指的即使我们对于平时所使用的东西是否放在了合适的位置在我们是用的时候能够进行很好的找到。满足人体天生的人体工程学的范畴。9)安装测试
测试程序的安装、卸载
典型的就是测试APP的测试的安装和卸载10)安全测试
安全测试是一个相当于来说独立的领域,需更多的专业知识,例如Web的安全测试、需要熟悉各种网络协议,Tcp/Http,防火墙、CDN、熟悉各种操作系统的漏洞。 熟悉路由器等。从软件来说熟悉各种的攻击手段,例如sql注入、Xss等。11)性能测试
检查系统是否满足需求规格说明书中规定的性能
通常表现在以下的几个方面
- 对资源的利用(如内存、处理机周期等)进行精确地度量。
- 对执行间隔、日志文件(如中断、报错)
- 响应时间
- 吞吐量(TPS)
- 辅助存储区(例如缓冲区、工作区的大小)
-处理精度等进行检测
12)内存泄漏测试
造成内存泄漏的原因- 内存分配完了忘记进行了回收
- 程序写法有问题
- 某些API函数的使用不正确,造成内存泄漏
- 没有及时的进行释放