1.单元测试、集成测试、系统测试、验收测试、分别是什么?且你认为以上那个环节是最重要的一步? 映射到软件开发模型中V模型,开发过程和测试过程各个阶段的一一对应关系,具体说明如下:
- 单元测试-软件测试过程中最小粒度的测试,各模块内部是否存在错误,各个模块可以单独进行单元测试。一般是开发人员自主做测试。
- 集成测试-组装测试,在单元测试的基础上,将所有的程序模块进行有序的,递增的测试。校验程序单元或部件的接口关系,逐步继承为符合概要设计要求的的程序。
- 系统测试-全流程的测试,基本模拟线上环境进行整体回归测试,并最终满足用户的所有需求。
- 验收测试-需求方根据期初设定的需求来验收系统是否符合当初需求。
其次,重要的是系统测试-需要覆盖所有联合的功能,是针对整个产品系统进行的测试;减少单个模块对系统其他模块的缺陷的及时发现。
2.白盒测试和黑盒测试的测试方法?
- 白盒测试-称之为结构测试,逻辑驱动测试或基于代码的测试。是针对被测单元内部是如何进行工作的测试,测试检查程序的内部结构,从检查程序的逻辑着手处理。
- 黑盒测试-通过测试检测每个功能是否能够正常使用。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
分为两种类型:
- 静态测试-不用运行程序的测试,通过分析和检查源程序的语法,结构,过程,结构等来检查程序的正确性。
- 动态测试- 需要执行代码,通过运行程序找到问题,包括功能确定与接口测试,覆盖率分析,性能分析,内存分析。
等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
3.手动测试与自动化测试的优缺点? 手工测试的优缺点
手动测试优点:
- 测试人员具有经验和对错误的猜测能力;
- 测试人员具有非判断和逻辑推理能力;
- 测试人员可以采用逆向思维思考业务逻辑能力;
- 重复的手工回归测试,耗时,容易产生固有思维。
- 依赖测试人员的个人能力。
自动化测试优点:
- 对程序的回归测试更方便。提高测试效率,缩短回归测试时间。可以执行一些手工测试困难或不可能进行的测试。(比如多用户并发测试)测试具有一致性和可重复性,由于测试是自动执行的,每次测试的结果和执行的内容的一致性都是可以保障的。达到可以重复测试的效果。
- 测试脚本复用性,如果业务逻辑未修改或者少量修改,可在多个场景下重复利用。
- 脚本的可行度,由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。如果每执行通过一次强有力的自动化测试之后,软件的信任度就增加一个次。
- 不能完全取代手工测试;
- 手动测试比自动化测试相对发现的bug 更多;
- 对系统质量的依耐性较强;
- 测试自动化不能提高有效性
- 系统业务逻辑改动较大,这自动化脚本随之改动,效率成本也随之降低。
5.如何制定测试计划? 详细的测试计划如下:
- 包括测试目标,测试范围,测试环境的说明,测试类型的说明(功能,性能,稳定性,安全)测试工具;
- 模块的划分,单个模块需要时长,回归及验收测试时间安排,预计上线时间;
- 单个模块及整个需求测试主要负责人;
- 相关测试文档存储位置,相关测试风险。
- 主要模块划分,单个模块需要时长,回归及验收测试时间安排,预计上线时间 ;
- 单个模块及整个需求测试主要负责人。
推荐阅读
- 面试|【软件测试工程师面试】分享一个面试题总结
- Python|面试软件测试必须需要掌握的7个技能Get了吗()
- 软件测试|测试工程师拿20K薪资要什么技术水平(来看看你面试需要重点掌握的东西···)
- 面试|应届毕业生软件测试面试流程、面试问题总结
- 测试|软件测试基础知识整理(适用于面试)
- Python|盲目自学python最大的谎言就是所谓的“好学”(含视频及书籍资源)
- Python|熬夜加班半个月整理的40道Python面试题集锦(附答案)
- 苹果、小米、智汀等智能家居品牌要如何选择(看它就够了)
- 编程语言|字节和华为的两场面经,对比之后大厂其实没那么难进