**软件测试二十载**作为一名软件测试工程师,我有幸在这个行业工作了二十多年。从最初的黑盒测试到现在的自动化测试,软件测试领域经历了巨大的变化。在这篇文章中,我将分享我的经验和见解,希望能给读者带来一些启发。**一、测试的初心**二十多年前,当我刚开始进入这个行业时,测试的主要目标是确保软件产品能够正常运行,没有bug。我们使用黑盒测试法,即不了解程序内部逻辑,只从外部进行测试。这种方法虽然简单,但却有效。在那时,我们使用的工具非常有限,主要是手工测试和一些基本的脚本语言,如VBScript或JScript。然而,这些工具已经足够我们完成任务。**二、测试的演进**随着软件开发的快速发展,测试也逐渐演进。自动化测试成为一种必备技能。我们开始使用各种
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**常用ADB命令整理**ADB(Android Debug Bridge)是Google提供的一款用于调试、测试和管理安卓设备的工具。它可以帮助开发者在PC上与安卓设备进行通信,执行各种操作,如安装应用程序、查看日志信息等。在本文中,我们将整理常用ADB命令,并附带代码示例和注释。###1. 设备管理####1.1 列出连接的设备bashadb devices* **注释:** 这个命令会列出当前连接到PC上的所有安卓设备。* **示例输出:** List of devices attached emulator-5554 device <br
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**控件名称与元素名称的区别**在 WPF(Windows Presentation Foundation)中,`Control`、`FrameworkElement` 和 `UIElement` 是三个不同的类,它们都代表了 UI 元素。其中,`Control` 是一个具体的控件类,如 `Button` 或 `TextBox`;`FrameworkElement` 是一个抽象类,它是所有 UI 元素的基类;而 `UIElement` 则是一个更高层次的抽象类,它代表了所有可以参与事件处理和绑定数据的元素。在这些类中,`x:Name` 和 `Name` 属性经常被混淆,因为它们看起来很相似。但是,其实它们有着不同的意义。**x:Name**`x:Name` 是一个 XAML 特性,它用于给控件或
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**半监督医学图像分割****2022 IJCAI****UGPCL****引言**医学图像分割是医疗影像分析的一个重要方面,用于自动识别和标记图像中的病变区域。然而,由于数据集的限制和成本高昂,半监督学习方法在此领域变得越来越重要。本文介绍了一种新的半监督学习方法,称为 UGPCL(Unsupervised Graph-based Pseudo-Labeling for Contrastive Learning),用于医学图像分割。该方法利用无标签数据集生成高质量的伪标签,并结合对比学习提高模型性能。**相关工作**半监督学习是机器学习中的一种重要方向,旨在利用少量标注数据和大量未标注数据来训练模型。在医学图像分割领域,半
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**Unity 平台如何实现 RTSP 转 RTMP 推送**在 Unity 平台上,实现 RTSP 转 RTMP 推送是一个复杂的过程,但可以通过以下步骤来完成:### 步骤1:安装必要的插件和库首先,我们需要安装必要的插件和库。我们将使用以下插件和库:* **Unity**: Unity 是一个跨平台游戏引擎,可以在 Windows、macOS 和 Linux 等操作系统上运行。* **RTSPClient**: RTSPClient 是一个用于 Unity 的 RTSP 客户端插件,允许您连接到 RTSP服务器并接收视频流。* **RTMPClient**: RTMPClient 是一个用于 Unity 的 RTMP 客户端插件,允许您连接到 RTMP服务器并推送视频流。<br
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**Mac 使用笔记 之 Homebrew**Homebrew 是一个流行的包管理工具,用于 macOS 系统。它允许用户轻松安装、更新和卸载各种软件包,包括编译环境、开发工具、库和应用程序。下面是关于 Homebrew 的使用笔记。### 安装 Homebrew首先,我们需要在 Mac 上安装 Homebrew。以下是步骤:1. **打开 Terminal**:你可以通过 Spotlight 搜索 "Terminal" 或者从 Launchpad 中启动它。2. **更新包列表**:运行 `brew update` 命令,确保你的包列表是最新的。3. **安装 Homebrew**:执行以下命令: bash /bin/bash
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**iOS 中的 ARC 内存管理**在 iOS 开发中,Automatic Reference Counting(ARC)是 Apple 推荐使用的内存管理机制。它可以帮助开发者避免手动管理内存,从而减少错误并提高程序的稳定性。###什么是 ARC?ARC 是一种自动化的内存管理机制,它通过在代码中插入隐含的 `retain` 和 `release` 操作来管理对象的生命周期。这种方式可以避免手动使用 `retain`、`release` 和 `autorelease` 等函数,从而减少错误。### ARC 的基本原理ARC 的基本原理是通过在代码中插入隐含的 `retain` 和 `release` 操作来管理对象的生命周期。例如,当你创建一个新对象时,ARC 会自动为其分配内存,并将其设置
shili8 | 开发语言:其他 | 发布时间:2024-12-23 |
**C++ 类型转换**================在 C++ 中,类型转换是指将一个变量或表达式的数据类型从一种类型转换为另一种类型。这种操作可以避免类型不匹配的问题,使得程序更容易编写和维护。**类型转换的目的**-----------------类型转换的主要目的是为了使得不同类型的变量或表达式能够进行运算或赋值。例如,一个整数变量可能需要转换为浮点数,以便与其他浮点数进行比较。**类型转换的种类**------------------C++ 中有两种类型转换:隐式转换和显式转换。### 隐式转换隐式转换是指编译器自动完成的类型转换。例如,一个整数可以隐式转换为浮点数。<pre class="brush
shili8 | 开发语言:JAVA Web | 发布时间:2024-12-23 |
**C# TextBox 输入框自动提示、自动完成、自动补全功能**在许多应用程序中,用户需要快速输入信息,而不必每次都从头开始键入。为此,我们可以使用 C# 中的 `TextBox` 控件来实现自动提示、自动完成和自动补全功能。**1. 自动提示**自动提示是指当用户输入某个字符时,系统会提供一个列表,让用户选择想要的内容。这可以大大提高用户体验。我们可以使用 `AutoCompleteStringCollection` 类来实现自动提示功能。首先,我们需要在窗口中添加一个 `TextBox` 控件,并为其设置一个 `AutoCompleteSource` 属性。csharpprivate void Window_Loaded(
shili8 | 开发语言:C#开发 | 发布时间:2024-12-23 |
**基于Linux下的高并发服务器开发****第一章:fcntl函数**在高并发服务器开发中,文件描述符的管理是非常重要的一环。`fcntl`函数提供了对文件描述符进行操作的接口,包括读写、锁定等功能。在本章,我们将重点介绍`fcntl`函数及其应用。###1.1 fcntl函数概述`fcntl`函数用于对文件描述符进行操作,它可以实现以下功能:* `F_GETFD`: 获取文件描述符的标志* `F_SETFD`: 设置文件描述符的标志* `F_GETFL`: 获取文件描述符的模式* `F_SETFL`: 设置文件描述符的模式* `F_GETLK`: 获取锁定信息* `F_SETLK`: 设置锁定###1.2 fcntl函数示例代码c#inclu
shili8 | 开发语言:HTML/CSS | 发布时间:2024-12-23 |