软件测试是为了测试软件的功能是否能够满足用户的需求
软件测试分类:
按照测试阶段划分:
单元测试:主要测试单元内部的数据结构、逻辑控制、异常处理等。
集成测试:主要测试的是模块之间的接口与接口数据传输关系,以及模块整合后的整体功能。
系统测试:主要是测试整个系统相对于需求的符合度。
是否覆盖代码划分:
白盒测试:代码,需要看懂代码的内部逻辑。
黑盒测试:功能、界面、易用性,将整个需要测试的软件当做一个黑盒子,不需要知道内部的逻辑是什么,只需关心测试的输入与输出结果。
是否运行划分:
静态测试:不需要运行代码,针对需求文档,界面样式等。
动态测试:需要运行代码。
其他划分:
回归测试:程序原本有问题,交给开发修改,修改完后会出现新的版本,需要检查程序是否正常,有没有影响其他功能。
冒烟测试:测试程序的主程序有没有问题,有没有严重的问题,不测试细节
随机测试:选取重要的功能模块测试
验证测试:
(1)Alpha测试:内部版本,公司自己人测试
(2)Beta测试:公测版本,交给客户测试
(3)Gamma测试:软件发行之前的候选版本,还没有发行或将要发行的,只给部分用户使用
是否自动化划分:
人工测试:手动测试
自动化测试:自动化的机器进行测试
软件测试的基本流程
客户:提出需求
产品经理:整理需求文档,召开需求会(讨论需求是否合理,需求不合理打回需求),需求若合理:
开发:制定开发计划(知识点、时间点)
测试:制定测试计划(时间点)
开发:写代码
测试:写测试用例,与开发一起召开用例评审会(讨论用例是否完善),用例若完善:
开发:写完程序
测试:测试程序,(若程序出现问题与开发沟通,开发修改程序,修改后再测试一遍测试),若测试通过,发布到线上环境,再测试一遍程序
测试:输出测试报告
软件质量模型
软件产品质量六属性
功能性:是否满足用户的需求,适合性、准确性、互操作性、安全性(用户的信息)、功能的顺从型
可靠性:在规定的条件下是否满足正常工作的能力
易用性:吸引性、易用性的依从性、易理解性、易学性
效率性:时间特性、资源利用率、效率的依从性
可维护性:可分析性、可修改性、可测试性、可维护性的依从性
可移植性:适应性、可安装性、共存性、易替换性、可移植性的依从性