①
一.什么是软件测试?(软件测试学习方法以实践为主,理论为辅)
软件测试就是测试人员用一系列的手段来判断软件是否蛮族用户的需求。
(1)软件测试要验证软件功能的正确性
(2)软件测试要验证软件的功能是否满足对软件的“预期的结果”(也就是得到预期想要实现的结果)
补充:如果出现软件预期之外的结果即成为“软件缺陷”(Bug)
二.测试与调试的区别:
1.目的
测试的任务是发现程序中的缺陷;
调试的任务是定位并且解决程序中的问题
2.参与角色
测试主要是由测试人员和开发人员来执行,黑盒测试主要是由测试人员完成、单元/集成测试主要是由开发人员执行。
调试由开发人员完成。
3.执行的阶段
测试贯穿整个软件开发生命周期(如今都是同步进行)
调试一般在开发阶段(由研发人员独自进行)
三.初次接触软件测试(eg)
该系统登录功能的测试——用户名密码(用户名密码注册)
1.输入空的账户,输入密码,看是否可以登录
2.输入正确的账户,密码为空,不能登录;
3.账户和密码输入都为空,不能登录;
4.输入不存在的手机号/输入没有注册过的手机号,不能登录的
5.已经注销的手机号是否可以
6.手机号正确,密码错误的情况
7.限制密码输入次数,防止暴力破解*
8.输入非法的手机号,不能登录
9.帐号和密码都正确,是否可以正常登录成功
10.密码可不可以复制,是否做过加密处理
11.登录按钮是否正常
***短信验证(验证码)----为了增加安全性,防止机器破解
***cookie是一种保存在本地的一种验证方式,是具有时效性的
***其中时效性是人为设置的****
对于手机号验证码登录方式,测试点有哪些?
1.验证码的时效性
2.验证码每次发送的是否一样
3.验证码为空
4.频繁发送验证码,是否设置间隔时间(防止暴力破解)
5.输入错误的验证码
6.输入过期的验证码
非功能性需求:在功能需求正确的前提下增加的一些限制
其中,软件测试只是一个样本实验,具有不可穷举性-----脑洞够大就可以想的够多
四.软件测试需要使用的工具
根据功能来分类:------以下测试手段,会使用就可以
脚本:java Python unittest Rb
性能测试:jmeter loadrunner
接口测试:soupui postman
抓包:Charles fiddler(抓包工具,抓包的时候密码是否是明文展示)(Jenkins集成工具)
五.软件测试的岗位
软件测试工程师:功能测试,手工方式为主,结合一些工具,进行软件功能的测试,主要工作写测试计划,编写测试用例,提缺陷,写测试报告。
测试开发工程师:需要有一定的编码能力,负责测试工作中,测试工具和测试框架的开发,永远提高工作效率。
六.为什么选择软件测试?
综合能力:
沟通能力--------和研发人员、项目经理沟通
快速学习的能力---------业务、需求、公司的测试工具等
具有开发能力(测开)
文字能力----------写测试报告,描述软件缺陷(Bug)
探索性思维:
探索性测试,结合自己的知识和经验,直觉去按照错误猜测法等去推测软件系统的缺陷,针对性的测试
七.软件测试职业规划*****************
1.初级
测试定义,测试方法、测试生命周期、测试执行、测试管理工具
2.中级
测试用例、linux、mysql、loadrunner、测试管理工具、slenium、jenkins等
3.高级
测试部门分类:
1.team leader :需求分析、方案设计、进度把控、风险分析、DI、CD、devops
2.自动化测试:自动化测试框架,app,web,C/S
3.性能测试:性能测试框架、leadrunner、jmeter //
调优linux、mysql、oracle、redis、mangodb、hbase、http
4.安全测试:spl注入、xss、白帽子
5.功能测试:兼容性测试、界面测试、适用性测试、业务测试、回归测试、探索性测试