codeshealth 发表于 2022-7-25 09:44

Java基础概念

PO BO VO DTO POJO DAO DO这些Java中的概念分别指一些什么?

就比如说我用一个实际场景举例子吧,你更好懂,假如有一张user表,里面有几个字段:
| user_id| user_name |   pass_word |    create_time|   dept_id|
假设就这么多吧,一张很基础的表,那么对应Java的写法就是一个类:
class User{private Long userId;private String userName;private String passWord;private LocalDateTime createTime;private Long deptId;//getter setter
那么我现在需要对于User这张表进行增删改查,那么如果我假设你学过Mybatis?还是JPA这种持久层框架的话,或者你只要学过JDBC的话,你就应该知道,Java中肯定需要一个对象来映射数据库的这张表。
User类的每个属性就是数据库表的每一个字段,该类的每一个对象就代表数据库中的每一行,List<User>就代表该表的所有记录。这个User类就被称为PO,一般也不会加PO的说法,这个类一般就是User。
下面来说说DTO和VO。Data Transfer Object和View Object下面用一个实际场景解释一下:比如,User这张表,一般在前端我们会进行分页+条件查询,然后在前端用一个列表组件,对于后端请求过来的数据做渲染。
对于CRUD来说,这也是一个基本的需求。那么假设现在有这样一个情况:假设我们再简化一下情况,我们只做条件查询,我需要按照用户名userName模糊匹配,用户创建时间createTime区间匹配的时候,我后端应该如何写?
我后端应该用一个什么对象来接收前端传过来的请求参数?
这时候我们来想想,User类对象,他还能胜任吗?userName还好说,那create Time的区间怎么表示呢?
显然这时候我们就不能在后端这样写了:public XXX【】 selectUserByCondidition(@RequestBody @Validated User user);
光靠一个User对象我们是不足以接收前端传过来的请求参数的,那你说我可以这样啊:
public XXX【返回值】 selectUserByCondidition(String userName,LocalDateTime startTime,LocalDateTime endTime)
这还只是两个字段的条件,如果字段一但多起来了,你确定这样写?你确定老板看了以后不会让你当场毕业?
所以这时候我们就要用到DTO了,数据传输对象,用于在网络中涉及到数据传输的封装对象。那么此时我们就可以在后端定义这样一个DTO:
public class UserQueryConditionDTO{private String userName;private LocalDateTime startTime;private LocalDateTime endTime;//getter setter validation_annotation constrcutor .... }

codeshealth 发表于 2022-7-25 15:26

回归测试是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例目的:验证之前版本产生的所有缺陷已全部被修复;
确认修复这些缺陷没有引发新的缺陷。而冒烟测试, 是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
所以也叫可测性测试。
笔者在网上收集了软件测试的技术路线思维导图。

codeshealth 发表于 2022-7-25 15:38

软件测试专业技能学习目标:

包括︰功能测试,Linux,数据库,接口测试,自动化测试

,性能测试等。)

1.熟练测试理论,测试方法,测试流程以及常用的测试文档的编写,如∶测试计划,方案,用例,报告等,能够根据项目需求提取测试点,设计合理的测试用例,执行用例以及提交测试报告。保证软件的质量。

⒉.熟练Centos操作系统,熟练使用Linux常用命令,如∶查看进程,查看端口,查看内存和进程,动态日志等。熟练通过xshell远程连接linux服务器查看错误日志以及bug定位分析等。熟练shell编程。熟练搭建测试环境。

3.熟悉http协议,熟悉接口测试流程,接口用例设计,熟练使用Jmeter或Postman执行接口测试,熟练接口关联,动态参数,接口加密,接口鉴权以及接口签名,熟练
Postman+newman+git+jenkins或Jmeter+Ant+git+jenkins实现持续集成。
到这里薪资封顶在14K。不考虑管理能力!

4.熟练Git , Svn,Github,Gitlib ,Gitee等版本控制工具,能够熟练的处理文件以及代码的版本控制以及各分支和主干的文件冲突。

5.熟练基于Python+requests+pytest+allure+logging+jenkins的接口自动化测试,能够独立搭建接口自动化测试框架并在实际的项目中开展实施。95%覆盖率



6.熟练HTML和JS语言,熟练基于Pytrhon+Selenium+unittest/pytest+htmltestrunner+logging+jenkins的web自动化测试,熟练POM和关键字驱动设计模式,熟练基于ddt

结合exctl的数据驱动并有实际项目经验。30%覆盖率。
三年的产品∶分五期来做,36个月/5=6个多月。web自动化比较合理的介入时间。在第一期6个月之后才开始写脚本。
一年以内的项目︰大部分不考虑web自动化,除非覆盖率很低,低到只做冒烟用例。
7.app自动化一般可以不学。


页: [1]
查看完整版本: Java基础概念