什么是软件测试?
What is software testing?
软件测试是在测试中识别软件产品和服务的准确性和质量的过程。显然,它的诞生是为了验证产品是否满足客户的特定先决条件、需求和需求。讲的更加通俗一点就是找错误,找什么错误,就是根据一个产品的使用说明书,来验证说明书上面提到的功能是否达到用户的一个功能需要,或者是是否达到产品的一个功能预期。
软件测试的目标
◎ 在给定的产品中尽可能多地发现错误(或bug)。
◎ 演示一个给定的软件产品与它的需求规格匹配。
◎ 使用最小的成本和努力来验证软件的质量。
◎ 生成高质量的测试用例,执行有效的测试,并发布正确和有用的问题报告。
软件测试的流程
1、需求评审 阅读产品经理提供的需求文档,理解产品的需求,与客户、开发、架构、测试等多方深入了解需求。
2、测试计划 根据被测试的需求内容评估测试所需要资源(人力、机器设置-客户端)、所需时间time、功能模块划分、如何合理分配安排测试资源。
3、用例设计 根据测试计划、任务分配、功能模块划分,设计合理的测试用例。用例设计完成后需要经过测试评审,因为在开发实现需求过程中会出现需求更改或者需求删除情况,因此测试用例需要实时跟进更新。
4、执行测试 根据测试用例的详细步骤,执行测试用例。对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录,还要追踪分配给开发的bug。直到bug被处理掉,当然有些bug可能会因为当前的测试环境无法验证,所以bug被标记成拒绝或者挂起的状态,针对这种情况需要同步到整个项目中。需要在测试报告中体现。
5、测试报告 通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug。
常用的测试用例设计方法
1、等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。
具体问题:某软件开发公司进行人员扩增,规定应聘人员的年龄在20周岁(1992年11月前出生)到35周岁(1977年11月后出生)之间,若出生年月不在以上范围内,则拒绝面试,并显示“年龄不合格”,请使用等价类划分方法对这一程序功能设计测试用例。
等价类划分如下:
2、边界值:边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。
具体问题:某超市出售某品牌的高级盒装酸奶,现就元旦佳节开展促销活动,该超市将按照顾客购买量进行不同力度的促销,具体促销方案如下:
边界值如下:
3、错误推测:错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
针对查询功能:
- 无条件查询
- 是否支持模糊查询
- 查询的关键字之间是否可用连接符
- 是否支持空格
- 是否支持各类字符
针对翻页功能:
- 首页、上一页、下一页、尾页
- 总页数、当前页数
- 指定跳转页
- 指定每页显示条数
常用的linux命令
linux命令学习
1、cd 切换目录
这个命令可以切换不同的路径 可以是相对路径,也可以是绝对路径 相对路径是从当前目录算
绝对路径是从根目录算起的 比如我们打开win+r 输入cmd后显示的绝对路径,因为进入的是根目录
可以cd ./admq 或者cd ../..返回上上一层目录
2、ls 查看当前目录下的文件
ls -l 查看当前目录下的文件 文件显示为长数据串的形式 显示文件的权限和其他属性
ls -a 查看当前目录下的所有文件,有的文件会隐藏或者文件开头为.的文件也会被列出来
3、grep 查找文件中符合条件的字符串,命令用法如下:
grep "被查找的字符串" 文件名
这个查询字符串的命令还有一个是egrep
egrep 查询的字符串 文件或者目录
4、find 查找命令
find 当前目录或者别的其他路径下的 文件特征 # find /admq -name aaa 查询admq目录下或子目录下的文件名师aaa的文件
但是这个命令查询起来比较损耗磁盘,所以不建议使用这个
可以使用这个命令的替代品 locate 具体用法如下:
#locate /目录/查询的特征 locate /admq/aaa 查询admq目录下的所有aaa开头的文件
5、vim 文件编辑 有三种模式 命令行模式、输入模式、底线命令模式
命令模式: vim 配置文件 点击 i 进入输入模式 点击 :进入底线命令模式 点击esc 进入命令模式
在输入模式下可以换行 回车键,删除键del 光标移动
底线命令模式 需要先输入: :wq 保存退出, :q 退出, :q!强制退出, :wq!强制保存退出
6、df du 磁盘管理命令 查出系统的整体磁盘使用量
df -a 列出系统所有的文件系统
du -a 列出系统所有的文件与目录容量
7、mv 移动文件、目录或重新命名
mv 文件名1 文件名2 将文件名1修改成文件名2
mv 文件名1 目录1 将文件名1移动到目标目录1中 这是移动文件到目录中
mv 目录1 目录2 目录2存在的话,目录1移动到目录2中,目录2不存在,修改目录1的名字为目录2
8、rm 删除文件或者目录
rm 文件名 删除文件 rm 目录 删除目录失败
rm -rf 文件or目录 强制删除文件或目录
9、ps 查看进程
ps -A 查看所有进程 ps -u root 查询root进程用户信息
ps -ef 显示所有的进程和命令行
10、kill 结束进程
kill -l 不加端口号 显示所有的进程信息
kill -9 端口号 彻底杀死进程
kill -kill 端口号 强制关闭进程
10、上传 下载文件 rz sz
sz 压缩包 下载一个文件压缩包到本地
rz 打开窗口1,选择文件上传到服务器
11、创建命令 (mkdir\touch\echo)
mkdir aaa 创建一个aaa的目录
mkdir -p aaa/bb 确定aaa目录存在然后在aaa目录下创建一个bb的文件 如果没有加-p 然后也没有aaa创建成功,提示错误,会创建失败
touch aaa 创建一个aaa的文件 可以修改文件的时间
实际考察一个登录界面的测试点有哪些,我写的不是很全面,罗列了一部分的测试点出来
功能层面考虑:
1、输入框空值测试:保持输入框为空,点击登录
2、空格测试:(1)输入空格,点击登录(2)是否过滤掉输入字符前后和中间输入的空格
3、有效性测试:输入正确注册的账号、密码
4、无效性测试:(1)输入正确的账号,错误的密码(2)输入不存在的账号,注册过的密码(3)输入注册过的账号与密码不匹配
5、密码输入框:(1)不能明文显示(2)是否区分大小写(3)输入框是否可复制粘贴(4)修改密码后再次登陆验证老密码和新密码是否能登陆成功
6、输入框长度限制:边界值测试
7、非法字符输入限制:是否能输入非法字符,若不能则试试复制粘贴输入
8、密码输入错误的登陆次数限制
9、成功登陆后,退出再次登陆是否需要重新登陆
10、登陆按钮禁止多次点击
界面层面考虑:
1、与UI设计(颜色、字号、边距)一致、界面按钮布局摆放一致
安全层面考虑:
1、用户名和密码是否通过加密的方式,发送给Web服务器
2、用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击),这个具体的怎么防止攻击的不太清楚,没有深入的去了解,只是知道要去做这个验证
3、登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
性能层面考虑:
1、 打开登录页面时间
2、登录进入页面时间
3、支持多少人同时在线,考虑一个并发问题
兼容层面考虑:
1、市面上常用的主流浏览器是否可以正常打开这个页面 (firefox、谷歌、Safari等有的页面是支持ie浏览器)
2、针对不同移动端设备可以正常工作
3、同一机型的不同分辨率