一、回顾软件概念
1.什么是软件?
答:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据、相关文档的集合。
2.软件生命周期的定义和阶段?
答:是软件的产生直到报废的生命周期。包括定义阶段:可行性研究、初步项目计划、需求分析;开发阶段:总体设计、详细设计、编码、测试;维护阶段:使用、维护、退役。每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
二、认识软件测试
1.软件产生的大致过程?
答:首先用户提出需求或者自研项目产生需求,接着产品经理撰写项目相关文档,然后交给UI和开发人员研发软件,最后测试人员测试软件,测试完成后将部署上线。
2.什么是软件测试?
答:使用技术手段验证软件是否满足使用需求。
3.软件测试的目的?
答:尽可能减少软件缺陷(bug),保障软件质量,保证用户体验感。
4.怎样定义软件缺陷?
答:至少满足下列5个规则之一才称发生了一个软件缺陷:
- 软件未实现产品说明书要求的功能。
- 软件出现了产品说明书指明不应该出现的错误。
- 软件实现了产品说明书未提到的功能。
- 软件未实现产品说明书虽未明确提及但应该实现的目标。
- 软件难以理解、不易使用、运行缓慢或者—从测试员的角度看—最终用户会认为不好。
5.为什么会出现软件缺陷?
答:原因有很多,但是产品说明书经常成为造成软件缺陷的罪魁祸首。比如产品说明书内容不全或存在错误;产品说明书经常修改内容;产品说明书描述模糊等等。
6.软件测试员的目标?
答:尽可能早地找出软件缺陷,并确保其得以修复。
三、软件测试的分类
1.按测试阶段划分
单元(模块)测试:对程序源代码进行测试,完成最小模块的验证工作,一般由开发人员完成。
集成测试:对经过单元测试并修复bug的模块集成在一起进行测试,或者描述为针对模块之间访问地址进行测试。
- 自底向上集成:从原子模块开始来进行构造和测试,要求所有隶属于某个顶层的模块总是存在的。
- 自顶向下集成:模块集成的顺序是首先集成主模块,然后按照控制层次结构向下进行集成,隶属于主模块的模块按照深度优先或广度优先的方式集成到整个结构中去。
系统测试:对整个系统进行测试,包括功能、兼容、文件等测试。
验收测试:分为内测和公测,根据使用的不同人群来发掘项目缺陷。
- Alpha测试:在受控的环境中进行,由用户在开发者的场所进行,并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题
- Beta测试:在开发者不能控制的环境中的真实应用,由软件的最终用户们在一个或多个客户场所下进行,由用户记录在测试中遇到的一系列问题,并定期报给开发者。
2.按代码可见度划分
黑盒(功能性)测试:代码不可见,UI功能可见,重点关注数据输入和结果输出。
灰盒测试:部分代码可见,仍然把软件当作黑盒来测试,但是通过简单查看软件内部工作机制作为补充。
白盒(透明盒)测试:全部代码可见,UI功能不可见,可以通过访问和检查代码来协助测试。
3.按状态划分
静态测试:测试不运行的部分,只是检查和审核。
动态测试:通常意义上的,使用和运行软件。
4.其它测试
功能测试:
- 冒烟测试:对核心功能的验证,保障开发的提测内容具备可测性。
- 回归测试:当已修复bug或更新版本后,对已测内容再次测试,确保bug修复,以及新功能对旧功能没有影响。
非功能测试:
- 兼容性测试:检查软件之间是否能够正确地交互和共享信息。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。
- 性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
- 易用性测试:站在用户的角度,考虑使用软件时是否感觉方便。优秀UI的七要素:符合标准和规范、直观、一致(用户希望对一个程序的操作方式能带到另一个程序中)、灵活(适量增加用户的可选项)、舒适、正确、实用(具体的软件特性是否有实用价值)。
- 安全测试:对软件系统中的安全漏洞进行检测和评估的过程。
- 配置测试:使用各种硬件来测试软件运行的过程。可能测试配置,如部件、外设、接口、可选项和内存、设备驱动程序等。
- 本地化(国际化)测试:使软件适应特定地域特征,照顾到语言、方言、地区习俗和文化的过程称为本地化,测试此类软件称为本地测试。
四、测试模型
质量模型是衡量一个优秀软件的维度。前五项较为重要。
- 功能性。如关注功能个数、功能能否正确实现、错误情况处理等。
- 性能。如关注服务器每秒处理请求数量、服务器响应情况和资源占比情况等。
- 兼容性。如常考虑浏览器(谷歌、火狐、欧朋、苹果)、操作系统(Windows、macOS、Linux)、手机(分辨率、品牌、系统、网络)等。
- 易用性。如关注软件是否简洁、友好、流畅、美观等。
- 安全。如关注信息传输、数据储存是否加密等。
- 可靠性。如关注软件运行是否响应、卡顿、死机等。
- 可移植性。如关注网站数据移迁等。
- 可维护性。如关注核心代码有说明。
五、测试流程
- 需求评审:确保各部门需求理解一致。
- 计划编写:确定测试内容、任务分配、测试方法等。
- 用例设计:验证项目是否符合需求的操作文档。
- 用例执行:项目模块开发完成开始执行用例文档
- 缺陷管理:进行测试,然后将测得的bug提交给开发,并追踪bug后续。
- 测试报告:详细记录测试的执行情况、发现的问题和改进建议等,帮助团队了解软件的质量状态。
六、测试用例
1.什么是用例?什么是测试用例?
答:用户使用的案例。为测试项目而设计的执行文档。
2.测试用例的作用?
答:可以避免盲目测试和漏测并提高测试效率;可以让软件的实施重点突出,目的更加明确;在软件版本更新只需要修正少部分的测试用例便可开展工作,降低工作强度,缩短项目周期;检测软件是否满足客户需求,体现一个测试人员的工作量,展现测试用例的设计思路。
3.测试用例的编写格式?
用例编号:项目_模块_编号
用例标题:预期结果(测试点)
优先级:重要程度P0-P4(P0最高)