什么是软件测试:
使用人工和自动手段来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别;
测试目的:
1、发现程序(软件)存在的代码或者业务逻辑错误。
2、检验产品是否符合用户需求。
3、提高用户体验。
以最小的人力、物力和时间,找到软件中潜在的错误和缺陷。
测试方法
单元测试,集成测试,验收测试,功能测试。
测试流程
- 1、测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
- 2、测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定。
- 3、测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。
- 4、测试执行阶段:搭建环境,执行冒烟测试(预测试)-然后进入正式测试,bug管理直到测试结束。
- 5、测试评估阶段:出测试报告,确认是否可以上线。
APP测试哪些方面
权限测试、安装、运行、卸载测试、UI测试、功能测试、性能测试、中断测试、兼容测试、安全测试、回归测试、升级更新测试、用户体验测试。
测试用例设计方法(写没写过用例)
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法(老司机靠脑补大法)
软件测试分为几个阶段各阶段的测试策略和要求(又是基础)
测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段
单元测试:是针对软件设计的最小单位(对于功能测试就是模块)
集成测试:是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。
系统测试:是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。
验收测试:以需求阶段的《需求规格说明书》为验收标准,测试时模拟实际用户的运行环境
关于测试工具我了解过“禅道”和jira
1.软件的定义软件:是计算机程序、程序所用的数据以及有关文档资料的集合
软件分为系统软件和应用软件系统软件:是生成、准备和执行其他程序所需要的一组文件和程序,比如:操作系统
应用软件:计算机用户为解决某些具体问题而购买的、开发或研制的各种程序或软件包,比如APP
2.应用架构C/S架构:必须安装一个客户端才能使用的软件(client-server)缺点:每次更新,必须更新服务端和客户端
3、B/S架构:只需要一个浏览器,就可以访问的服务(browser-server)
4.测试的分类(1).按测试技术划分:黑盒测试、白盒测试、灰盒测试·
黑盒测试:
也称功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。。
黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
白盒测试
白盒测试:也称为结构测试或逻辑驱动测试,白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法。。
白盒测试原则:·
(1)保证一个模块中的所有独立路径至少被测试一次;·
(2)所有逻辑值均需要测试真(true)和假(false)两种情况;·
(3)检查程序的内部数据结构,保证其结构的有效性;·
(4)在上下边界及可操作范围内运行所有循环。。
白盒测试方法:·语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
灰盒测试
大概知道代码逻辑实现,不需要看懂所有的代码
(1).按测试对象是否运行划分:动态测试、静态测试
静态测试。不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
动态测试。需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。
(2).按不同的测试手段划分:手工测试、自动化测试 ·手工测试。 点工 ·自动化测试。工具+代码
(3).按测试包含内容划分:功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试和功能测试。测试软件的功能是否符合需求,通常采用黑盒测试方法,一般由测试人员独立执行。
(4).按测试阶段划分:单元测试、集成测试、系统测试、验收测试(a测试、β测)
测试的原则
1.证明软件中存在缺陷
2.不能穷尽测试
3.测试应用尽早介入
4.28原则
5.不存在缺陷谬论
6妥善保存一切文档
测试的流程·
(1).需求分析。阅读需求文档,熟悉项目;参与需求评审·
(2).制定测试计划和测试方案。测试计划:测试整个项目的总体规划,比如:测试范围,进度安排,人力物力安排,整体的测试策略,风险评估,风险规避..。测试方案:被测目标,测试工具选取,测试方法,测试重点。遵循5W 1H原则:why when who whatwhere how·
(3).设计测试用例。常用测试方法:等价类,边界值,场景法…·
(4).测试用例评审。参与人员一般有:产品经理,开发,测试·
(5).执行测试用例。开发完成后,开始执行测试用例,发现Bug,提交给开发人员,开发人员修复完成后,重新指派给测试人员,测试人员开始回归测试,通过就关闭,没有通过就继续修复Bug;·
(6).编写测试报告
自动化测试
·软件测试的生成周期:·需求分析->制定测试计划->设计测试用例->测试用例评审->执行测试用例->编写测试报告
软件的生命周期:是软件开始研制到最终被废弃不用所经历的各个阶段。计划阶段->需求分析->设计阶段->编码->测试->运行与维护