详细的谈谈,软件测试定义、目的及原则。

news2025/1/30 16:07:13

 

1.软件测试定义

  • 软件测试就是在产品上线前,对软件需求、设计方案和编码实现的核查。
  • 软件测试的定义
    1. 软件测试是为了发现错误而执行程序的过程
    2. 使用人工或自动方式来运行并测试某个系统,以此来检验系统是否满足规定的需求并确定预期结果与实际结果的差异

2.软件测试目的

  • 软件测试的目的
    1. 测试是完善程序的过程,目的在于使系统更加符合用户的使用习惯,让系统在上线后带给客户极高的用户体验;
    2. 测试应致力于发现至今为止未发现的错误。
  • 不同的立场催生了两种截然不同的测试目的
    1. 从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷并减少软件上线后的问题,使得产品更容易被接受;
    2. 从软件开发者出发,希望测试成为证明产品中不存在错误、已正确的实现用户需求的过程。
  • 软件测试目的总结
    1. 以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷;
    2. 证明软件的功能和性能与需求说明项符合;
    3. 通过测试的结果数据为软件的可靠性分析提供分析;
    4. 重点:测试不能表明软件中不存在问题,它只能说明软件中存在问题需要改善。

3.软件测试规律

  • 木桶原理
    1. 产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持等也会影响最终产品的质量;
    2. 测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但绝不是一种根本手段;
    3. 如果将提高产品质量的砝码全部压在测试上,那将是一个恐怖而漫长的灾难;
    4. 软件开发质量越低会导致测试完成后产品残留的缺陷越多。
  • 八二原则
    1. 在分析、设计、实现阶段的复查和测试工作能够发现和避免80%的BUG,而系统测试又能找出其余BUG的80%,最后5%的BUG可能只有在用户的大范围、长时间使用后才会暴露出来。因此测试只能保证尽可能的发现错误,无法保证能够发现所有的错误;
    2. 80%的程序缺陷常常出现在软件20%的程序控件里。

4.软件测试原则

  • 软件测试原则
    1. 所有软件测试都应追溯到用户需求;
    2. 应当把“尽早地和不断地进行软件测试”作为软件测试人员的座右铭;
    3. 完全测试是不可能的,测试需要终止;

a.输入量太大;

b.输出结果太多;

c.路径组合太多

      4. 程序员应避免检查自己的程序;

      5. 测试无法显示软件潜在的缺陷,进行测试可以查找缺陷,但不能保证所有的缺陷都被找到,进一步测试可能会找到一些,

       但是只能证明软件存在错误而不能证明软件没有错误;

      6. 充分注意测试中的群集现象;

          a.在所测程序中,若发现错误数目多,则残存错误数目也比较多,这种就是错误群集现象;

          b.经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比,根据这个规律,

          应当对错误群集的程序段进行重点测试;

      7. 软件测试是有计划的,严格执行测试计划,排除测试的随意性;

      8. 应当对每一个测试结果做全面检查;

      9.妥善保存测试计划,测试用例,缺陷统计和最终测试分析报告,为维护提供方便。


最后小编为大家整理了一套最新的软件测试系统学习教程,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等

通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:

  • 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
  • 第二部分,Linux( Linux基础+Linux练习题)
  • 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
  • 第四部分,Web测试
  • 第五部分,API测试
  • 第六部分,App测试
  • 第七部分,管理工具
  • 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
  • 第九部分,Selenium相关
  • 第十部分,性能测试
  • 第十一部分,LordRunner相关
  • 第十二部分,计算机网络
  • 第十三部分,组成原理
  • 第十四部分,数据结构与算法
  • 第十五部分,逻辑题
  • 第十六部分,人力资源

一、软件测试基础

  • 软件测试的步骤是什么?
  • 如何录制测试脚本?
  • 应该考虑进行如何测试的测试方法
  • 怎样估计测试工作量?
  • 测试设计的问题
  • 当测试过程发生错误时,有哪几种解决办法?
  • 测试执行的问题
  • 测试评估的目标
  • 如何提高测试?
  • C/S模式的优点和缺点
  • B/S模式的优点和缺点
  • ....

在这里插入图片描述

二、Linux

  • grep和find的区别? grep 都有哪些用法?
  • 查看IP地址?
  • 创建和删除一个多级目录?
  • 在当前用户家目录中查找haha.txt文件?
  • 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
  • 动态查看日志文件?
  • 查看系統硬盘空间的命令?
  • 查看当前机器listen 的所有端口?
  • ......

在这里插入图片描述

三、Python

  • 统计python源代码文件中代码行数,去除注释,空行,进行输出?
  • python调用cmd并返回结果?
  • 冒泡排序
  • 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
  • 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
  • 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
  • 判断 101-200 之间有多少个素数,并输出所有的素数
  • 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
  • .......
    在这里插入图片描述

四、MySQL

  • 你用的Mysql是哪个引擎,各引擎之间有什么区别?
  • 如何对查询命令进行优化?
  • 数据库的优化?
  • Sql注入是如何产“生的,如何防止?
  • NoSQL和关系数据库的区别?
  • MySQL与MongoDB本质之间最基本的差别是什么
  • Mysql数据库中怎么实现分页?
  • Mysql数据库的操作?
  • 优化数据库?提高数据库的性能?
  • 什么是数据的完整性?
  • ......
    在这里插入图片描述

五、Web

  • Web测试和app测试区别?
  • WEB测试环境搭建和测试方法
  • WEB测试教程
  • WEB测试要点及基本方法
  • Web测试页面总结
  • .......
    在这里插入图片描述

六、接口测试

  • 什么是接口
  • 如果模块请求http改为了https,测试方案应该如何制定,修改?
  • 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
  • 描述TCP/IP协议的层次结构,以及每一-层中重要协议
  • jmeter,一个接口的响应结果如下:
  • 接口产生的垃圾数据如何清理
  • 依赖第三方的接口如何处理
  • 测试的数据你放在哪?
  • 什么是数据驱动,如何参数化?
  • ...
    在这里插入图片描述

七、性能测试

  • 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
  • 服务端性能分析都从哪些角度来进行?
  • 如何理解压力测试,负裁测试以及性能测试?
  • 如何判断是否有内存泄漏及关注的指标?
  • 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
  • 简述什么是值传递,什么是地址传递,两者区别是什么?
  • 什么是系统瓶颈?
  • ...
    在这里插入图片描述

八、selenium

  • 如何开展自动化测试框架的构建?
  • 如何设计自动化测试用例:
  • webdriver如何开启和退出一个浏览器?
  • 什么是自动化测试框架?
  • Selenium是什么,流行的版本有哪些?
  • 你如何从命令行启动Selenium RC?
  • 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
  • 什么是Selenium Server,它与Selenium Hub有什么不同?
  • 你如何从Selenium连接到数据库?
  • 你如何验证多个页面上存在的一个对象?
  • XPath中使用单斜杠和双斜杠有什么区别?
  • 如何编写SeleniumIDE/ RC的用户扩展?
  • 如何在页面加载成功后验证元素的存在?
  • 你对Selenium Grid有什么了解?它提供了什么功能?
  • 如何从你的Java Class启动Selenium服务器?
  • Selenium中有哪些验证点?
  • 什么是XPath?什么时候应该在Selenium中使用XPath?
  • ........
    在这里插入图片描述

九、计算机与网络

  • 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 ..
  • 请简述DNS、活动目录、域的概念。
  • 10M兆宽带是什么意思?理论下载速度是多少?
  • 什么是IP地址?
  • OSI七层网络模型的划分?
  • TCP和UDP有什么不同?
  • HTTP属于哪一层的协议?
  • HTTP和HTTPS的区别?
  • cookies和session的区别?
  • HTTP的get请求和post请求的区别?
  • HTTP1.0和HTTP1.1有什么区别
  • TCP的连接建立过程,以及断开过程?
  • 客户端使用DHCP获取IP的过程?
  • 写出某个网段的网络地址和广播地址?
  • .....
    在这里插入图片描述
    在这里插入图片描述

十、人力资源

  • 你的测试职业发展是什么?你自认为做测试的优势在哪里?
  • 你找工作时,最重要的考虑因素为何?
  • 为什么我们应该录取你?
  • 请谈谈你个人的最大特色。
  • 一个测试工程师应具备那些素质和技能?
  • 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
  • 为什么选择测试这行?
  • 如果我雇用你,你能给部门带来什么贡献?
  • ......
    在这里插入图片描述

最后

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

资料获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,关注公众号:一个心态巨好的朋友 即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WEB安全:深入反射式dll注入技术

一、前言 dll注入技术是让某个进程主动加载指定的dll的技术。恶意软件为了提高隐蔽性,通常会使用dll注入技术将自身的恶意代码以dll的形式注入高可信进程。 常规的dll注入技术使用LoadLibraryA()函数来使被注入进程加载指定的dll。常规dll注入的方式一个致命的缺陷…

你不会还不知道如何用Python写一个切水果的小游戏吧

目录 引言 一、需要导入的包 二、窗口界面设置 三、随机生成水果位置 四、绘制字体 五、玩家生命的提示 六、游戏开始与结束的画面 七、游戏主循环 引言 水果忍者的玩法很简单,尽可能的切开抛出的水果就行。 今天小五就用python简单的模拟一下…

linux centos 安装zookeeper服务

一、进入官网:Apache ZooKeeper 二、下载安装包 可以使用wget 下载,我这里服务器的原因就不使用了,直接在网页使用http下载,然后通过xftp上传到服务器 下载完成后通过xftp上传到linux服务器 三、解压 tar -zxvf apache-zookeepe…

520中国劲酒携手撒贝宁直播探厂,共同见证健康跑活动启幕

5月20日是“网络情人节”,每年一度的 520,所有人都沉在真爱告白的浓情氛围当中,对于全中国的劲酒爱好者来说,520 却有着不一样的意义,每年 520 劲粉节,中国劲酒以爱之名,号召和鼓励劲粉们培养持之以恒的健康生活方式。      520 当日,总台央视主持人撒贝宁来到了湖北大冶市…

新手要学网络安全应该从哪学起?

写在开篇 本人10 年工作经验, 擅长 Web 安全攻防、渗透领域, 在金融领域的安全有丰富的实战经验。从事在线教育 3 年多培养学员过万,讲解清晰透彻,课程干货内容多,辅导学员耐心细致 我为啥说自学黑客&网络安全&a…

SSM框架学习之Mybatis

SSM Spring SpringMVC Mybatis,这是一种常用的Java Web开发框架组合。Spring是一个轻量级的IoC和AOP容器框架,SpringMVC是基于Spring的MVC框架,Mybatis是一种ORM(Object Relational Mapping)框架,用于在Java应用中管理数据库。…

libvirt job机制浅析

libvirt 中,job 机制用于处理和跟踪针对虚拟机域(domain)的长时间操作,如迁移、快照、保存,热插拔等。job 机制的主要目的是确保在同一时间只有一个长时间操作可以执行,从而避免竞争条件和不一致性问题。 …

C嘎嘎~~[类和对象 精华篇]

类和对象 精华篇 static成员引入特点问题收尾 友元友元函数友元类 内部类理解 类和对象 static成员 引入 🗨️[题目] 实现一个类,计算程序中创建出了多少个类对象 先分析一下题目: 程序运行中, 有对象的创建, 也有对象的销毁 ⇒ 对应下来就是 构造,拷…

linux服务器断电重启后,发现时间误差八小时

文章目录 问题现象排查与解决时间同步与设置服务器时钟介绍 问题现象 客户的服务器已部署好平台,放入了机房,运行正常。服务器系统时间设置东八区(CST),时间日期也已修改正确客户是我省的某小县城,某台晚上…

28 KVM管理系统资源-绑定QEMU进程至物理CPU

文章目录 28 KVM管理系统资源-绑定QEMU进程至物理CPU28.1 概述28.2 操作步骤 28 KVM管理系统资源-绑定QEMU进程至物理CPU 28.1 概述 QEMU主进程绑定特性是将QEMU主进程绑定到特定的物理CPU范围内,从而保证了运行不同业务的虚拟机不会干扰到邻位虚拟机。例如在一个…

ArcMap:第一届全国大学生GIS技能大赛(滁州学院)详解-下午题

目录 01 题目 02 数据 2.1 主要沟谷文件 2.2 DEM数字高程文件 2.3 气象站点数据 2.4 系统设计相关的DLL等文件 03 思路 3.1 作物生长条件的思路 3.1.1 对于条件1 3.1.2 对于条件2 3.1.3 对于条件3 3.1.4 对于条件4 3.2 水系的提取 3.3 种植面积的计算 04 实操 …

linux下cpu占用率100%怎么解决?

在实际的生产环境中,常常会遇到服务器CPU爆满的问题,这时候,正确的排查方法,有助于快速的定位问题。 1、找到最耗CPU的进程 使用top命令查看系统总体的CPU和内存使用情况,以及各个进程的资源使用情况。 2、找到最耗…

迈向5.5G丨美格智能持续创新,为智能世界创造新价值

5月11日,2023 “高通&美格智能物联网技术开放日”深圳站活动举行,美格智能高级产品总监在活动中发表题为《迈向5.5G,智联新未来》的主题演讲,分享了美格智能在5G技术演进中的创新实践。 ▲美格智能高级产品总监 刘伟鹏 ▌技术…

【基础折线图】学习使用flask、echarts搭建数据可视化图表网页

文章目录 前言Apache EchartsNPM 安装 ECharts在线定制 ECharts使用 Echarts Flaskpip安装flask 学习案例案例目录html代码flask代码 源码地址 前言 本文中的所有代码,全部都有详细注释,有需要的同学可以在文末领取! 数据可视化是数据分析必…

19-01 技术选型的道与术

系列目录导航👉 什么是技术选型,技术选型的重要性 根据实际业务管理的需要,对硬件、软件以及所要用到的技术进行规格的选择狭义上的技术选型:团队决定选用哪种技术去解决问题,比如选用某个技术语言、某个技术框架去开…

Android12之模板类单例模式实现原理(一百五十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

openGauss 年度大型开发者会议来袭,快来看看都有哪些SIG组参加!

openGauss Developer Day 2023 将于5月26日在北京举办。作为大会的重要环节, SIG组版本规划工作会议 将汇聚社区各个SIG 组的用户与开发者,与大家见面,共同讨论开源数据库的技术发展与创新。属于开发者的狂欢日,期待大家的到…

CMAKE命令详解

目录 CMake 语法 案例: 面试中给可能会问的问题和回答: 总结: CMake 是一个用于构建和管理跨平台软件项目的开源工具。它使用名为 CMakeLists.txt 的文本文件来描述项目的构建过程。 CMake 语法 当使用 CMake 构建项目时,可以…

数据库索引结构(1)概念

常见的索引 主键和二级索引 MySQL学习笔记-主键索引和二级索引_mysql中主键索引和二级索引的区别_爱因诗贤的博客-CSDN博客 MYSQL-主键索引与二级索引_mysql二级索引存在哪个文件_青苔小榭的博客-CSDN博客 采用主键索引的好处:如果元素的位置发生修改,那…

华为OD机试真题 Java 实现【组合出合法最小数】【2023Q1 200分】

一、题目描述 给一个数组,数组里面都是代表非负整数的字符串,将数组里所有的数值排列组合拼接起来组成一个数字,输出拼接成的最小的数字。 二、输入描述 一个数组,数组不为空,数组里面都是代表非负整数的字符串&…