软件测试 半路出家
1.软件测试 为什么有软件测试
- 当前国内软件行业已经不是功能为主了,用户不仅仅只是对于盯着软件的功能是否满足要求,还会对软件是否容易上手,执行效率是否 ok..... 等一系列其中体验都有了更高的要求,所以着也需要我们对软件进行大量的测试 ,
- 有喜人喜欢创造,走上了开发岗位,而我们是为了 精益求精,为了完美所以才做的测试。
2.软件测试干啥的
找bug,找虫子。
3.测试原则:
- 测试原则呢 就是在对开岗位做出的软件,有规则有顺序的流程性检测。
- 一款软件从无到有经理很多的开发阶段 由不同的人来参与开发,所以最终功能可能会存在问题,因此为了保证软件的功能试可用的,我们必须要测试。
- 测试软件存在缺陷:无论执行什么样的测试操作都能保证证明当前软件是有缺陷的。
- 不能执行穷尽测试:有些功能试没有办法将所有的测试情况都罗列出来的,所以任何测试操作都有结束时间,
- 缺陷存在群集现象:对于软件功能说,核心功能占20%,非核心是80%,在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率高于80%,因此我们就会遇到缺陷都集中在20%功能模块里的现象。
- 杀虫剂现象: 不要对同一软件进行重复的单功能测试,会有,免疫性的。
- 无错误谬论:一个老员工过来说,我经验足,我的代码没有错误,神仙也有打盹的时候,老员工只是经验足,但是技术在更新,你也无法知道自己跟上时代没,新技术新问题。
测试工作阶段流程(什么时间干什么样的事情):
- 需求说明文档阶段:各种规格使用说明书
- 软件架构设计阶段:API接口测试
- 编码开发实现阶段:源代码(白盒测试、单元测试)
- 系统功能使用阶段:软件功能主体测试(当前行业测试主流最多的一种)
测试级别(测试流程一个套路的流程)
- 单元测试(UT):
- 针对代码函数,小功能的测试,一个点击事件,一个计算方法,一个功能误差
- 集成测试(IT)
- 多个小功能的集合,称之为集成测试。 分开都可以用,合在一起没法用了。
- 系统测试(ST)
- 当前行业通用做的最多的测试,充当用户对软件功能主体进行测试。
- 验证测试:
- α阿尔法测试(内测):
- 使用之前,测试人员自己进行测试,随时监测随时更改,测试和开发人员进行自检查。
- 贝特测试(bate版公测):
- 以前枪火游侠游戏上的时候,《全服不删档公测正式启动》:就是让用户进行先注册玩,通过用户反馈收集错误整理。
- Uat测试:
- 由客服方派出精通业务的业务员对应用软件进行测试,如果测试通过,那么就收收官。
- α阿尔法测试(内测):
系统测试分类:
- 功能测试: 验证当前软件的主题功能的是否可用
- 兼容性测试:验证当前的软件在不同的环境下,不同的物理介质下是否可以满足条件
- 安全测试:对用户授权的校验是否二次校验核实
- 性能测试:消耗当前的资源,能不能达到预期的产出效果。
测试的常用方法:
按测试对象分类:
- 白盒测试:针对代码看不见的,追溯到代码源文件的底层结构,代码规范。
- 黑盒测试:针对软件外在的主体功能进行测试
- 灰盒测试:结语两者之间的接口测试(API)
按测试对象是否执行:
- 静态测试:测试不执行。设计师给的设计图对照软件界面作对比。
- 动态测试:将软件运行在真实的环境中进行测试。
按测试手段进行分类:
- 手工测试:由测试人员手动的代码进行测试验证,优点:可以灵活的操作改变测试手法和测试环境。
- 自动化测试:自动化有两种形态,一种是自己写脚本程序测试软件的运行是否正常,二是:通过第三方的收费软件进行高效率测试。优点:效率,快捷 缺点:收费软件,得自己写软件
软件质量:
描述当前软件是否好用,我们遵循软件监督ISO制定的规则,进行标准。
- 功能性:软件需要满足用户显式稳定式的需求。
- 易用性:容易上手,简单易懂。
- 效率性:软件性能达标。
- 可靠性:软件必须实现软件中的可靠性。
- 可维护性:要求软件修复后能继续正常执行的软件操作。
- 可移植性:当前软件平台移动到另一个平台的操作。
- 需求分析
- 当前我们的核心目的就是用户需要求点是什么
- 需求来源,需求规格说明书,API文档,竞品分析、个人经验
- 设计用例
- 用例就是用户为了测试软件的某个功能的操作过程
- 设用例方法(等价类、边界值、判定表。。。。。。)
- 评审用例:对当前的功能进行添加和删除
- 测试环境:
- 环境:指的就是当前被测对象运行所需要的执行环境,测试人员需要具备配置测试环境的能力
- 环境分类(操作系统+服务器软件+数据库+软件底层代码的执行环境)
- 执行用例
- 一般在测试之前做一个冒烟测试(软件最核心的主题功能的测试)---通过冒烟测试后,再测试其他的,冒烟测试都没过就不用考虑了
- 有问题将此版本直接回退给开发。
- 回归测试及缺陷跟踪
- 测试检测到问题后提交给开发,开发看到后,进行软件的二次编辑,重新再对该软件进行二次测试。
- 缺陷跟踪:找到该软件的某个功能缺陷后,一直追踪下去。
- 输出测试报告
- 将当前的测试功能中产生数据可执行可视化的输出。方便其他人去查看。
8. 测试结束
将整个测试过程中产生的一些文档进行整理归档,方便好后续的版本使用。
BS/CS架构的?
- 上来你就直接问你你家是 B/S架构的还是C/S架构的,
- Bs架构以浏览器为基础,只需要开发浏览器上的页面及功能,传输协议 HTTP/Https [明文传输],使用抓包软件就可以抓取到传输的请求内容,那么不安全,经过安全加密后进行了密码加密,转码加密,算法加密,但是如果是一些常用的算法一般是会被猜到或者软件破解。
- C/s架构是客户端和服务器之间的交互,软件需要加密加壳子,那么相对安全一点,如果说需要升级版本那么就得进行软件的重新下载,安装。