软件测试入门
软件测试入门
一、基本认知
1.公司开发的软件产品为个人toC或企业toB或政府toG提供价值服务,软件测试的本质是在有限的人力物力时间资源前提下保障产品交付到客户手里的质量,使用户满意买单,也为社会创造价值,最终公司获利。
2.项目团队成员:
一般公司为客户提供完整解决方案,解决方案分解为多个产品,一个复杂的产品可能还分解为多个项目进行运作(一个简单产品就用一个项目运作),每个项目要完成明确范围的产品功能需求目标。
现代公司都是项目制运作:用户需求痛点/市场调研/项目投入产出/风险分析等,首先解决Why为什么要做和What做什么的问题,产品经理/项目经理编写立项材料,领导审批通过后启动项目,项目经理组建项目团队人员,制定时间路线图、产品/开发/测试分解任务排期。
项目团队成员角色和负责范围:
产品经理:输出产品需求文档,开发/测试对需求有疑问时,需澄清需求,同事负责对接业务人员,将业务人员的原始需求转化为项目详细需求,制定业务交互流程和产品解决方案。
项目经理:项目整体管控协调,制定项目任务详细排期表,协调人力/物力资源,推动风险阻塞事项,管控项目进度。
开发工程师:基于产品需求设计项目整体技术架构、模块设计、接口设计、数据库表设计,输出开发设计文档,对需求编码实现,完成自测并提交测试,缺陷修复,测试/生产环境部署。
测试工程师:基于产品需求文档和开发设计文档,设计测试方案并编写用例,包括前端功能测试、后端接口测试、性能测试、稳定性测试等,测试执行,提交闭环测试缺陷,输出测试报告,功能上线后进行生产验证。
其他关联人员角色:
运营/运维人员(有的产品开发兼任,无专岗):需求上线后监控生产环境软件或系统运行使用情况,客户流量情况,CPU/内存资源使用监控,异常日志监控,出现异常事件时及时发现并紧急处理,包括资源扩容/隔离重启服务/反馈开发人员排查问题等。
业务人员(有的产品兼任,无专岗):销售,客服等相关业务人员,能够直接对接客户。能够收集用户反馈、用户痛点,反馈产品经理原始需求。
关联系统的人员:产品需求澄清或联合制定产品解决方案、项目推动依赖事项、开发之间联调、测试之间联测(端到端系统测试)
3.应用软件基于底层OS和硬件
应用软件开发语言:移动端Kotlin/Java、Swift/oc、ArkTS/JS、前端html/CSS/js/Vue、后端Java/Go/Python、偏底层软件C++、AI算法python/C++、测试开发技术Python
OS:Android/IOS/HarmonyOS,Linux/Windows/MAC,
硬件:CPU、内存、GPU、硬盘、Camera、麦克风扬声器、屏幕、4G/5G蜂窝通信模组、Wifi/蓝牙短距通信、以太网卡、GPS/北斗等全球定位模组、NFC近场感应、陀螺仪磁力指纹等环境传感器。
主板架构:arm(移动端)、x86/x64(服务器/PC端)
后端中间件:mysql数据库、redis缓存、kafka消息队列、nacos配置中心/注册中心、Ngix网关、ElasticSearch分布式搜索、Grafana日志和资源监控可视化
常见互联网产品技术架构
前端:app+web
后端:DNS域名+Nginx网关/负载均衡+基于k8s容器化编排的分布式微服务集群(后端服务)+nacos配置中心/注册中心+mysql数据库+redis缓存+kafka消息队列+运维监控工具
可网上搜常见互联网产品技术架构
学习方式建议多使用AI助手:
deepSeek:https://chat.deepseek.com/
通义千问:https://www.tongyi.com/
参考:Android/IOS/HarmonyOS开发者官网,后端技术架构、测试技术
二、测试范畴
1.需求分析、制定整体测试方案(前端功能测试、后端接口功能测试、接口性能测试、前端性能测试、稳定性测试、兼容性测试、安全测试;测试痛点难点,测试风险和对策,测试人员时间安排)
--参考文档模板,针对练习
2.分解需求,详细编写测试用例(包含用例ID、用例标题、前提条件、执行步骤、期望结果、用例优先级、用例结果等)
--参考文档模板,针对练习
3.测试执行(测试环境、测试数据、测试工具准备,压测脚本编写,针对难点开发测试脚本或工具,测试过程管理,冒烟测试/提交跟进bug/通知产品验收等)
--参考例子或找个实际例子,针对练习
4.输出测试报告(测试内容范围,测试缺陷统计,用例执行结果统计,性能测试结果,测试结论,遗留风险问题等等)
--参考文档模板,针对练习
5.生产环境验证(主功能流程点检)
三、测试技术
1.功能测试分析:查看服务日志分析业务流程或接口调用出入参 cd xxx tail -f all.log,grep "request_id" all.log;grep "ERROR" all.log; vim; cp /scp; top;netstat;cat /proc/cpuinfo;free -h;cat /etc/os-release; 熟悉常用linux命令
2.功能测试:mysql数据库连接、增删改查 常规sql语句操作。(删测试数据、造数等) select * from table where create_time > "2025-10-18 12:00:00" limit 100;insert/delete/update
3.web端,app端出入参分析( F12-network; )
4.python开发测试脚本或测试工具,常用情况:接口调用、加解密,AES鉴权hash计算、测试数据或任务批处理,稳定性测试,python脚本打包成exe工具+读.ini配置文件等
5.jmeter接口压测
6.python自动化测试:web UI自动化,接口自动化,app自动化