作者:尹嫱AileenDawnYin | 来源:互联网 | 2023-09-25 17:20
1:自我介绍
2:数据库:
查询:
 select 字段1,字段1,.... from 表名 [where 条件] [group by 字段名] [order by 字段名 排序规则] [having 条件] [limit 起始位置,数量]
/*
分析思路
select 查询结果 [性别,对应性别的人数:汇总函数count]
from 从哪张表中查找数据 [性别在学生表中,所以查找的是学生表student]
where 查询条件 [没有]
group by 分组 [男生、女生人数:按性别分组]
having 对分组结果指定条件 [没有]
order by 对查询结果排序[没有]
limit 起始位置,数量;
*/
SQL里面having和where的区别是什么?
- 相同点:都对条件做判断,在普通情况下使用查询数据库已有字段是两者都可以用
- 不同点
1):最重要的区别是having可以和聚合函数搭配使用,如常用的group by,where不可以和聚合函数搭配使用
2):另外一种情况下不能使用having却能使用where的情况是:条件字段名称不在select的里面
软件测试的方法有哪些?引用
黑盒测试(功能测试)、白盒测试(结构测试)
黑盒测试:把测试对象看做一个黑盒子,检查程序的功能是否符合它的功能说明
黑盒测试是一种宏观功能上的测试,该方法适合测试部门的测试人员或用户
白盒测试:把测试对象看做一个透明的盒子,对程序所有的逻辑路径进行测试
适合于很小单元的测试,以及从事软件底层工作、生产构件的测试人员进行的测试。
测试的基本流程
需求分析阶段:阅读需求,理解需求,分析需求点,参与需求评审会议。
测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围,进度安排,人力物力分配,整体测试策略的制定。
编写测试用例:适当的了解设计,搭建测试用例框架,根据需求和设计编写测试用例。
测试执行阶段:搭建环境准备数据,执行冒烟测试(预测试)然后进入正式测试(系统测试、回归测试、交叉测试、自由测试),bug管理直到测试结束。
输出测试报告:输出测试报告,确认是否可以上线。
测试过程的4个步骤
单元测试、组装测试、确认测试、系统测试
步骤一、单元测试
又称模块测试,针对软件设计的最小单位——程序模块,进行正确性检验的测试工具。单元测试的内容如下
步骤二、组装测试
通常,把模块组装成为系统的方式有:一次性组装方式、增值式组装方式
一次性组装:如果在没有问题的情况下,时间块
增值式组装方式:自顶向下的增值方式、自底向上的增值方式、混合增值式测试
步骤三、确认测试
又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致
步骤四、系统测试
后一个测试,把所有的设备以及实际环境进行测试
测试
功能测试,界面测试,性能测试,安全性测试,可用性测试,兼容性测试。
3:如何测试一个杯子:
反问需求;
功能测试:
- 能否装水,
- 除了装水, 能否装其他液体。比如可乐,酒精
- 能装多少ML的水
- 杯子是否有刻度表
- 杯子能否泡茶,跑咖啡
- 杯子是否能放冰箱,做冰块
- 杯子的材质是什么(玻璃,塑料,黄金做的)
界面测试:
- 外观好不好看。
- 什么颜色
- 杯子的形状是怎么样的。
- 杯子的重量是多少
- 杯子是否有异味
- 杯子的图案是否合理
性能测试:
- 能否装100度的开水 (泡茶)
- 能否装0度冰水
- 装满水,放几天后,是否会漏水
- 杯子内壁上的涂料是否容易脱落。
- 杯子上的颜色是否容易褪色或者脱落
安全性测试:
- 制作杯子的材料,是否有毒
- 放微波炉里转的时候,是否会爆炸, 或者杯子是否会熔化。
- 从桌子上掉到水泥地上是否会摔碎。
- 杯子是否容易长细菌
- 杯子是否有缺口,会划坏嘴巴
- 杯子内壁上的材料,是否会溶解到水中
- 杯子破碎后,是否会对使用者造成伤害
可用性测试:
- 杯子是否容易烫手
- 杯子是否好端,好拿
- 杯子的水是否容易喝到
- 杯子是否有防滑措施
4:设计登录页面的测试用例(引用):
了解用户的需求 --》 设计用例
一:功能测试(function test)
- 什么都不输入操作提交按钮后代码的处理动作是如何的(非空检查)
- 输入正确的用户名和密码,点击提交按钮后验证是否正确登录。(正常输入)
- 输入错误的用户名或者密码(原作者这个“或者”很严谨啊)验证点击登录后时候会提示失败(错误校验)
- 登录成功后是能否跳转到正确的页面(功能校验)
- 用户名和密码输入内容是否支持特殊字符(比如表情字符类空格)和其他非英文的情况(是否做了过滤)
- 记住用户名的功能
- 登录失败后不能记录密码的功能
- 用户名和密码前后有空格的处理、
- 密码是否加密显示(使用星号或者圆点等)
- 牵扯到验证码的还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
- 登录页面中的注册忘记密码,登出用另一账号登陆链接是否正确
- 输入密码的时候大写键盘开启的时候是否要有提示
二:界面测试(UI test)
- 页面布局是否合理等
- 输入正确的用户名个密码后登陆成功跳转到新页面的不能超过5秒
三:性能测试(performance test)
- 打开登陆页面后需要几秒
- 输入正确的用户名和密码后登陆成功跳转到新页面不超过的上限时间
四:安全性测试(security test)
- 登陆成功后生成的COOKIE是否会HTTPonly(否则容易被脚本盗取)
- 用户名和密码是否通过加密的方式发送给web服务器
- 用户名和密码的验证,应该是服务器端的验证, 而不能单单是在客户端用Javascript验证、
- 用户名和密码的输入框,应该屏蔽SQL注入攻击
- 用户名和密码的输入框应该禁止输入脚本(防止XSS的攻击)
- 错误登录的次数限制(防止暴力破解)
- 考虑是否支持多用户同时登录
- 考虑是否支持在多台机器上登录
五:可用性测试(usability test)
- 是否可以全用键盘操作 是否有快捷键
- 输入用户名和密码后按回车是够可以登录
- 输入框能否可以以tab键切换
六:兼容性测试(Compatibility Test)
- 主流的浏览器能否显示正常以及功能正常(常见的浏览器有:TE6789、Firefox、Chrome、Safari、等)
- 不同的平台是否正常工作,比如windowS MAC 等、
- 不同的移动设备上是否能够正常工作,如iOS、Android等环境
- 不同的分辨率下的UI显示是否正常
七:本地化的测试(localization test )
八:软件辅助性测试(accessibility test)
- 软件辅助功能测试是指软件是否向残疾用户提供足够的辅助功能
- 高对比下是否显示正常(视力不好的人使用)