软件工程师的工作到底是啥样子?

作者Anne LoVerso分享了她在红帽公司担任系统管理员实习生的经历,包括学习使用Git、Go语言和Linux环境等内容,以及她为Atomic项目开发组所做的贡献。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:Anne LoVerso (Red Hat)  Posted 31 Jul 2014 by 

译者:Stone Feng

原文链接:http://opensource.com/life/14/7/red-hat-intern-sys-admin

译文链接:http://blog.youkuaiyun.com/stonefeng/article/details/38400377

转载必须在正文中标注并保留原文链接、译文链接作者、译者信息、以及本条要求


Image by : opensource.com

  这个夏季,我有生以来第一次到公司实习。从学校转换的公司,无疑是一次文化冲击,当然我也很自豪于我的学习能力。在红帽,作为实习系统管理员,第一个星期我就学到了很多东西。

  我知道了开源不仅仅是用来描述一些模糊的开发社区。我知道了如何正确地使用git,如何使用Go语言,以及如何高效地浏览Linux设备环境。我知道了软件工程师喜欢把黑巧克力棒从好时巧克力混合袋里挑出,然后剩下不怎么受欢迎的Mr. GoodbarsKrackel bars(好时巧克力的两个子品牌——译者注)。

  我学到了太多东西,以至于回过头来看看工作第一个星期里我的Google搜索记录,都觉得有点儿惨不忍睹(意思是当初连这么简单的都不知道——译者注):

  • vi how to use(如何使用vi
  • linux control r(linux控制r,猜测是搜索对文件可读属性r的控制方法,是linux操作基本常识——译者注
  • curl command(curl命令
  • how to use pointers(如何使用指针)
  • Chattr(一个linux命令,可以改变文件或者目录属性——译者注
  • git rebase(不解释,你懂的——译者注)

但是,我们总得从某个地方开始吧。

  这个夏季,我在Atomic项目开发组工作。Atomic是个用来运行容器的轻量级操作系统,被一个由我导师Colin Walters开发的叫做OSTree的强大工具驱动。项目描述是“操作系统二进制码的git”,因为它基本上可以做到原子地在不同的操作系统部署之间升级和回滚。最初的几个星期,我开发了一个rpm-ostree的新命令,用于集成OSTreerpm句柄。当我写完OSTree每个命令的帮助手册(原文是man pages——译者注)之后,我对它的结构有了足够的理解,即使现在开新项目给那些系统管理程序添加功能也不在话下。

  伴随每个新项目,我都会向git推送一个新补丁,这让我满足感爆棚。我已经看到我的三个特性被合并到下次发布的程序里。这对我此前的认识带来实实在在的冲击。我从众多朋友那里听到了不同的技术实习期的故事。他们很失望,因为不被当作真正的雇员对待,他们没有分配任何职责,或者他们感觉他们的意见不被理会。而我在红帽从来没有这种感觉。我在合作团队里发声,并且开源的妙处在于如果你认为什么东西需要修改,那么你就有权力自由地修改它。

  我做的补丁当中,有两个其实没有分配给我的,而我做了,只是因为在用这个系统的时候想:“伙计,要是有个工具的话这事儿就容易了……”。这类做法是受开源文化支持和鼓励的,认为个人的自主判断或许是有益的、或许必要的。红帽是一个很棒的实习地,这里让我深深见识了软件工程师的工作到底是什么样子,包括好的和坏的方面。

  代码最终好用了,这让我有成就感,补丁合并到主分支,这让我自豪,还有我知道我贡献了一些有意义的东西,这让我快乐。另一方面,我依然感受了等待编译代码时的无聊,尽管没改什么但代码却不工作了的挫败感,以及突然发现追踪了两个小时的bug是因为用“==”去比较字符串时的强烈的沮丧。

  我确信当这个秋季我回到学校的时候,我已经变了个人。我将用Emacs而非MS Word来记事,我将重新教我的同学们正确地使用git进行项目合作,我将尽可能地用Fedora而非学校发给的Windows,我将站出来倡导自由和开源软件。

### 软件测试完整工作流程及步骤 软件测试的工作流程可以分为多个阶段,每个阶段都有明确的目标和任务。以下是完整的软件测试工作流程及步骤: #### 1. 需求分析 在这一阶段,测试人员需要深入理解产品需求,确保对功能、性能、安全等方面的需求有清晰的认识。通过阅读需求文档、与产品经理沟通等方式,整理出所有需要测试的功能点,并记录可能存在的疑问,确保需求无误[^2]。 #### 2. 测试计划制定 测试计划是整个测试工作的指导性文件,主要由测试负责人或小组长完成。测试计划的内容包括但不限于以下方面: - **目的**:明确测试目标、时间安排以及预期成果。 - **人员**:确定参与测试的团队成员及其职责分工。 - **任务划分**:指定谁负责哪些功能模块的测试及用例编写。 - **时间规划**:制定测试用例编写、执行测试、上线等关键时间节点。 - **资源准备**:申请必要的硬件设备、软件工具或其他支持资源,如服务器、自动化测试工具等[^1]。 #### 3. 测试设计阶段 此阶段的核心任务是编写详细的测试用例。测试用例应覆盖各种测试类型,如冒烟测试、随机测试、黑盒测试、性能测试等。完成后,需组织评审会议,确保用例的完整性、正确性和可执行性。如果发现需求变更或理解错误,应及时调整。 #### 4. 测试执行阶段 在测试执行阶段,首先进行冒烟测试以验证核心功能是否正常运行。若冒烟测试通过,则按照测试用例逐一执行测试;若未通过,则将问题反馈给开发团队进行修复。测试过程中发现的缺陷需提交至缺陷管理系统,跟踪其修复状态并进行回归测试,确保修复后的功能稳定[^3]。 #### 5. 评估阶段 测试完成后,需出具测试报告,总结测试过程中的发现和结果。测试报告的内容通常包括项目背景、测试范围、缺陷数据统计、遗留问题、测试风险评估、产品质量评估等。测试报告不仅为当前项目的决策提供依据,也为后续项目的维护和改进奠定基础[^4]。 --- ### 注意事项 - 测试流程中涉及多个岗位人员的合作,如开发工程师、产品经理、客服、技术支持等,确保信息流通顺畅。 - 最终测试完成时,要求所有测试用例的状态为“通过”或“已挂起”,所有缺陷的状态为“已关闭”或“已挂起”[^3]。 --- ```python # 示例代码:简单的冒烟测试脚本 def smoke_test(function_to_test): try: result = function_to_test() if result is not None: print("Smoke Test Passed") else: print("Smoke Test Failed") except Exception as e: print(f"Smoke Test Error: {e}") # 假设 function_to_test 是一个待测试的函数 smoke_test(lambda: "Sample Output") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值