软件工程实践-软件评测

2023春软件工程实践 2023年福大-软件工程实践-W班社区-CSDN社区云
这个作业要求在哪里 软件工程实践——软件评测作业-CSDN社区
这个作业的目标 调研评测InsCode,IT屋,Online Compiler and IDE
其他参考文献 构建之法

文章目录

    • 1. 产品调研
        • 1.1 InsCode
          • 1.1.1 体验
          • 1.1.2 bug
        • 1.2 IT屋
          • 1.2.1 体验
          • 1.2.2 bug
        • 1.3 Online Compiler and IDE
          • 1.3.1 体验
          • 1.3.2 bug
        • 1.4 采访意见
          • 1.4.1 A同学:
          • 1.4.2 B同学:
    • 2. 产品评测
        • 2.1 定量评价
          • 2.1.1 评价表格
          • 2.1.2 定量分析结果
        • 1.2 定性评价与结论
    • 3. 产品分析
    • 4. 产品建议
        • 4.1 市场概况
        • 4.2 市场现状
        • 4.3 市场与产品生态
    • 5. 产品规划
        • 5.1 NABCD分析
        • 5.2 如果你是项目经理,可以招聘6个人,你认为应该如何配置角色(开发,测试,美工等等)
        • 5.3 16周详细计划

1. 产品调研

1.1 InsCode
1.1.1 体验

介绍:近日由CSDN团队发布的基于GPT的线上开发/项目管理/团队协作的平台。

  • 基本功能

    首页
    首页中央是热门项目推荐,可以看到有ChatGPt应用、Web游戏、还有实用软件非常丰富,可以通过顶部最近项目或左侧的导航栏来快速进入项目,往下拖是关注和热门作者的作品发布动态
    可以看到基本上都是我们系学生的测试动态,网站热度可能有点低

    创建项目
    点击首页左侧导航的创建项目,就可以建立项目,项目创建时必须选择的是代码模板或者git仓库来源来实现快速创建项目

    运行项目
    在项目编辑页面,左侧可以查看选择项目文件查看,编辑好代码后,点击在最顶部上Run按钮就可以在右侧终端上看到运行效果

    访问项目
    Inscode还支持访问他人发布的项目,可以在项目页面fork和运行项目,在下方可以通过评论区发表评论

  • 优缺点分析

    • 优点

      • 可以使用模板来快速创建想要的项目,减少重复性的工程以及由人工copy的复制不全等错误

      • 无需安装,可以通过浏览器随时随地访问,创造了新的编程场景

      • 减少了环境配置时间和成本

      • 整合了git的版本控制功能便于团队协作开发,并且开发仓库默认由GitCode支持,在国内访问比GitHub更加稳定快速

      • 丰富的模板和社区内容

      • UI美观,界面交互逻辑清晰

    • 缺点

      • 网络响应速度过慢,虚拟机配置过低跑不起大型工程

      • 代码编辑器功能简单,没有代码提示补全

      • 环境配置是编辑在一个脚本上,每次执行程序都需要执行脚本来重新安装环境,很浪费时间

      • 代码执行速度过慢远不如本地

      • 不支持移动端,使用场所受限制

      • 还有些小bug

  • 改进意见:
    建议制作插件与现有的IDE工具集成或者推出基于Inscode代码模板和远程演示的开发框架, 使平台的功能能在客制化的电脑配置和开发工具中使用, 目前产品社区内容和开发工具做比较优秀,对于小微型的项目可以直接从社区里找出优质模板进行快捷开发与部署,但是目前Inscode虚拟机的运算和网络响应速度完全无法支撑真正的大型产品的开发并且在目前的代码编辑方面和插件生态上远不如工业界流行使用的IDE, 只有与现有的IDE集成,才能让Inscode真正进入软件开发领域。

1.1.2 bug

Bug严重性标准:

严重性级别 描述 功能 安全性 用户体验 可量化指标
建议修复 轻微影响,不影响系统功能 用户感受略有影响 1星
一般 轻微影响,但可以绕过 部分功能失效 部分信息泄露 用户感受明显影响 2-3星
重要 中等影响,可能会影响系统的正确性 大部分功能失效 可能导致信息泄露或篡改 严重影响用户体验 4-5星
严重 严重影响,可能导致系统崩溃或数据丢失 功能完全失效 可能导致系统崩溃或数据泄露 无法正常使用 6-7星
致命 非常严重的影响,会导致系统崩溃或不可用 完全失效 可能导致系统严重破坏或数据丢失 无法使用 8-9星

Bug1:

Bug描述: 项目运行环境卡死,程序无法执行 严重性等级:严重

测试环境:Windows 10 ,Edge浏览器 功能模块:项目运行

可复现性:偶然发生(40次发生3次)

触发条件:在项目编辑界面,快速反复点击Run按钮,让程序在不断重新执行。会发现右边终端卡死,不管怎么点击运行,一个只有光标闪动
可能成因 :控制台提示RR Terminal has already been disposed: Error: Terminal has already been disposed:,有可能每次执行程序时,用户进程都产生一个子进程来执行程序,反复点击后由于运行的子进程过多,用户进程被系统杀死
修改建议:建议后端加入执行频率的判断来防止恶意操作。

软件工程实践-软件评测_第1张图片

Bug2:

Bug描述: 安装Linux软件异常缓慢 严重性等级:重要

测试环境:Windows 10 ,Edge浏览器 功能模块:项目运行

可复现性:必然发生

触发条件:正常Linux安装host,sudo,rar等软件也基本上是秒完成,但这里安装通常要持续4分钟以上,导致无法执行后续程序

可能成因:在用pip安装大型库时下载速度都是5m/s,终端网络和硬盘读写没有问题,可见是可能因为Linux系统防火墙设置,拦截了软件安装指令。

修改建议:运维人员应该检查一下他们提供的服务器的防火墙

1.2 IT屋
1.2.1 体验
  • 介绍: 基本上包含所有主流技术栈的在线编译的工具和教程的网站,可以让初学者进行编程学习和在线编译。

  • 基本功能

首页
首页由菜鸟教程和问答区组成,其中菜鸟教程可以通过点击标签来切换显示的教程种类

在线工具
可以在这个界面,选择一种编程语言进行在线编辑和编译,网站会输出结果

问答库
将鼠标到导航栏问答库,下拉框会自动展开,点击后就可以进入对应语言的问答的流式展示页面

软件工程实践-软件评测_第2张图片

软件工程实践-软件评测_第3张图片

菜鸟教程
点击导航栏的菜鸟教程选择一门技术栈就可以进入菜鸟教程
软件工程实践-软件评测_第4张图片

  • 优缺点分析

    • 优点
      • 工具齐全,覆盖场景全面。

      • 教程丰富,讲解循序渐进

      • 工具执行速度快

    • 缺点
      • 界面不美观

      • 搜索功能存在大BUG

      • 广告占据较大版面

      • 讨论页面内容过老(最近在2022年9月)

  • 改进意见:
    对于工具大全建议推出筛选栏,筛选用户自己想要的功能或者推出去掉工具无用图标只要工具名字链接的列表。菜鸟教程建议引入视频动画、音频等模态来促进理解。调整广告版面,至少在在线编译底下结果与按钮之间的广告要小一些,目前非常影响用户查看结果搜索功能的BUG太明显,太影响用户体验了建议尽快修复。

1.2.2 bug

Bug3:

Bug描述: 搜索功能无法使用中文与英文大写 严重性等级:重要

测试环境:Windows 10 ,Edge浏览器 功能模块:搜索栏

可复现性:必然发生

无论输入任何字段只要含有中文和大写因为就无法返回结果

可能成因:可能Sql后端编码错误,没有考虑中文和大写。
建议:检查该功能的后端数据库代码。建议检查数据库的字段的编码是不是utf-8

Bug4

Bug描述: 搜索后出现零访问无简介的文章 严重性等级:建议修复

测试环境:Windows 10 ,Edge浏览器 功能模块:搜索

可复现性:必然发生

可能成因:数据库搜索的时候是在发表文章记录来搜索的,将已删除的文章一起select。

建议:检查该功能的后端数据库代码。

1.3 Online Compiler and IDE
1.3.1 体验
  • 介绍: 基本上包含所有主流技术栈的在线编译的工具和教程的网站,可以让初学者进行编程学习和在线编译。

  • 基本功能

    在线编译
    网站的首页就是该页面,插入范例并编辑程序再提交编译就可以看到结果

    最近代码
    支持查看最近所有公开的提交记录,点击记录可以看到他人的提交界面

软件工程实践-软件评测_第5张图片

范例
可以查看多种语言的代码模板,点击上方的蓝色模板名称,就可以跳转到模板对应的位置,点击fork就可以快速调转至在线编译界面,此时编译界面代码已经应用范例

  • 优缺点分析

    • 优点
      • 执行速度快

      • 可以插入模板

    • 缺点
      • 模板不能自定义且很简单

      • 功能单一

      • 广告过多

      • 范例和recent code的不方便阅读和搜寻信息

  • 改进意见 :Recent code 应该显示别人提交代码的简述,只要一串字母id不明所以,用户只能一个个点进去链接去看代码的作用!代码管理可以引入版本控制功能,将多次同代码的提交记录作为修改和分支。

1.3.2 bug

​ 暂时未发现

1.4 采访意见
1.4.1 A同学:

采访对象背景: 某211大学的人工智能专业学生

采访需求:他想试试云开发的流程并且学习shell技术来试试网络炼丹

体验内容: Inscode

采访记录:

软件工程实践-软件评测_第6张图片
用户改进意见:1. 建议Inscode的虚拟机能够安装远程桌面,让他能边上水课边用笔记本在实验室工位电脑跑实验就好了

1.4.2 B同学:

采访对象背景:某财经大学大三学生

需求: 由于他的专业实习需要学习数据分析的内容 Go和Python语言,但他的笔记本电脑配置似乎很差,想试试能不能通过在线平台来学习
体验内容:IT屋、Inscode、Online Compiler and IDE

采访记录:
软件工程实践-软件评测_第7张图片

用户改进意见: 1. IT屋要美化UI,修复搜索BUG 2.Online Compiler and IDE 要加强社区建设 3. Inscode 最好推出教程

2. 产品评测

2.1 定量评价
2.1.1 评价表格

参考自邹欣老师的评价表格 由于其中软件适应性,三款软件的情况基本一样而且都限制在网页端 所以去掉,每项满分10分打分从6分开始按情况加减分,最低分0分

类别 描述 评分
功能 分析三个核心功能,功能设计和质量
细节 有什么为用户考虑的细节?
用户体验 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)
辅助功能 一些辅助功能如皮肤等
差异化功能 这个软件独特的功能。它对用户的吸引力有多大?
软件的效能 占用内存、启动速度、内存泄漏情况
成长性 记住用户的选择、适应用户的特点,用户越用越方便
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。让用户方便地从错误中恢复工作,快捷操作键可调整。
2.1.2 定量分析结果
评分表 InsCode IT屋 Online Compiler and IDE
功能 8 9 6
细节 8 5 6
用户体验 7 4 4
辅助功能 7 6 5
差异化功能 9 8 7
软件的效能 8 6 6
成长性 9 8 7
用户有控制权 8 7 6
1.2 定性评价与结论

InsCode:我对于InsCode的评价是:不错,它界面美观加上差异化的功能,一进入它的网页我就被惊艳到。加上看到首页上别人发布的琳琅满目的有趣又实用的项目为产品增添不少光彩,但是在实际体验编程的时候,它的网络响应速度还有程序执行时间都让我失望,所以我的评价是:不错 很喜欢但不会成为我日常的开发工具

IT屋:我对于IT屋的评价是:不错。 它和InsCode在功能和体验上像是两个极端,他界面粗糙随意,用户体验不行,比如在线工具中用户只能拖到页面在上百种模块肉眼找出他想要的使用的模块。但是他的功能实用、齐全并且程序运行和网络响应比inscode快(也许是因为没多少人使用),它的用户定位很明确:对于编程初学者将是不错的工具。

Online Compiler and IDE:我对于Online Compiler and IDE的评价是:一般。在线编译工具上IT屋的功能比他更齐全。在社区和代码管理方面上比起InsCode或者其他代码仓库竞品如:GitCode简直可以说没有,在查看代码只能看到所有用户公开的提交记录(只有一串随机的数字名字)没有描述得用户一个个点进去看才能知道代码的作用。

3. 产品分析

  • 开发时间估计:

    InsCode功能涵盖了代码编辑、代码托管、代码部署、代码审核、问题追踪、项目分享等多个方面, 实现难度较大可能需要6-12个月或更长的时间来完成

  • 同类产品对比排名

    InsCode在同类产品中可能位于中上游。InsCode与Github和Gitlab等类似的编程/团队协作/发布工具相比具有以下优势:

    • 即时代码协作功能使得多人同时协作开发代码变得更加容易和高效;

    • 代码自动化部署功能,大大减少代码上线时间和出错率;

    • 无需下载安装,直接在浏览器中编码,随时随地享受编程的乐趣;

    • 与CSDN一起建设的作品分享社区可以帮助开发者展示和讨论他们的代码、项目和想法。

  • 一个软件工程方面的建议

    文档编写和维护:InsCode涉及到很多技术细节和使用方法,因此需要编写和维护清晰和完整的文档,以便用户和开发者能够快速上手和使用;

  • BUG存在的原因分析

    我觉得一部分发现的bug都是软件团队没有发现而没有在发表前发布,在目前发现的bug的主要原因是:测试把关不严,敷衍了事。

4. 产品建议

4.1 市场概况

市场规模:软件开发和编程是当今数字化时代最重要的领域之一。随着人工智能、云计算和物联网等技术的不断发展,软件开发行业也在不断壮大。全球软件开发市场规模在2020年达到了5150亿美元,并预计在未来几年内将持续增长。根据Grand View Research的市场研究,全球商业软件和服务市场规模在2021年为4295.9亿美元,并预计从2022年到2030年以11.7%的复合年增长率增长而团队协作软件市场在2020年的收入为152.5亿美元,并预计在2021-2028年期间以13.2%的复合年增长率增长。

直接用户和潜在用户:

  • InsCode的直接用户包括开发者、程序员、企业和组织的IT部门。这些用户通常需要在线编程和团队协作工具来完成其日常工作。一个开发者可以在InsCode上创建一个项目,编写代码,与其他开发者协作,然后发布和运行代码。企业或组织的IT部门可以在InsCode上管理和发布他们的代码,并与其他部门或客户进行沟通和演示。

  • InsCode的潜在用户则包括个人开发者、小型公司、中型公司和大型企业。这些用户通常需要一个易于使用和价格实惠的在线编程平台来进行学习和开发。个人开发者可以在InsCode上学习和实践不同的编程语言,参与社区的讨论和分享,展示自己的作品。一个小型公司可以在InsCode上快速搭建和部署自己的Web应用程序,节省时间和成本。

4.2 市场现状

市场上有哪些产品?目前市场上已经有了许多在线编程和协作工具,例如GitHub、GitLab、Bitbucket、GitKraken。这些产品可以用于代码存储、版本控制和协作,已经成为开发者和程序员的必备工具。此外,还有一些代码发布平台(Heroku、AWS),它们可以用于部署、托管和运行Web应用程序。这些在线编程和协作工具的主要特点是:

  • 基于云服务,可以在任何地方和设备上使用。

  • 具有社区和代码讨论发布

  • 支持多种编程语言和框架,以及与其他开发工具的集成。

  • 提供免费或低价的计划,以及针对不同用户需求的定制化选项。

上述产品的定位优势与劣势在哪里?GitHub是目前最受欢迎的代码存储和版本控制平台之一。它的优势在于强大的社区支持、强大的集成和部署功能以及易于使用的界面。而GitLab是GitHub的竞争对手,它提供更加完整的CI/CD工具链以及更加灵活的部署选项。Bitbucket则是Atlassian公司的一款代码托管平台,它与Jira等工具的集成很强,适合企业内部使用。GitKraken是一款跨平台的Git客户端,提供图形界面和流畅的操作体验。

  • GitHub的定位是开源和私有项目的代码托管和协作平台。

  • GitLab的定位是开源的DevOps平台,它提供从项目管理到持续集成和部署的一站式解决方案。

  • Bitbucket的定位是专注于企业和团队的代码托管和协作平台

  • GitKraken的定位是简洁而强大的Git图形化客户端

上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何在这些产品中,GitHub、GitLab和Bitbucket之间存在直接的竞争关系。它们都提供类似的代码存储和版本控制功能,并且在这方面都有其独特的优势和劣势。GitKraken虽然也提供Git客户端,但其主要优势在于图形界面和操作体验。

在这些竞争关系中,GitHub是最大的市场领导者,其市场份额远远超过其它平台。GitLab在功能和性能方面与GitHub相当,但其自由和开放的模式,以及更具有定制化的部署选项,使其在某些场景下具有优势。Bitbucket则主要面向企业和组织内部使用,特别是那些使用Jira等Atlassian产品的企业。在与这些竞争对手的竞争中,InsCode可能面临一些挑战,例如需要提供更具有吸引力的功能和性能,以及更好的用户体验。同时,InsCode还需要开拓新的市场份额,尤其是在小型公司和个人开发者中。

这个领域正处于成长阶段随着软件开发的不断发展和技术的不断更新,开发者和程序员需要更加先进和高效的开发和协作工具。在线编程和团队协作平台正逐渐成为这个市场的主流产品,并且未来将继续发展和壮大。在这个领域,InsCode有机会成为一个具有潜力的竞争对手,并获得更大的市场份额。

4.3 市场与产品生态

这个产品的核心用户群是什么样的人?典型用户是什么样的?表面需求,潜在需求都是什么这个产品的核心用户群是软件开发者和程序员,他们需要一个方便、高效和安全的在线编程/团队协作/代码发布平台。典型用户是具有一定编程基础和经验的中高级开发者,他们可能是从事互联网、教育、培训、竞赛等领域的专业人士或爱好者。他们的学历一般为本科以上,年龄一般在18-40岁之间,专业一般为计算机、软件工程、信息技术等相关领域。他们的爱好一般为编程、浏览互联网等。他们的收入一般为中等以上,但并不是他们选择这个产品的主要动机。他们的表面需求是能够在线上编写、运行和部署代码,并且支持多种编程语言。他们的潜在需求是能够与其他开发者进行协作和分享,并且学习和使用优秀的开源项目和经验。

产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性他们不仅可以通过社区功能来交流和互动,也可以通过项目功能来协作和贡献。这些功能有利于形成一个活跃和有价值的用户生态,促进用户之间的知识传播和创新合作。

产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性产品的子产品,以及其他相关产品之间也存在一定的关系,例如 Cloud IDE、GitCode、InsCode 社区等。这些产品可以相互集成和衔接,实现数据和资源的共享和流转。这些产品也可以与如 GitHub、GitLab、Bitbucket、Heroku、AWS 等其他平台和工具进行集成。这些集成有利于构建一个完整和强大的产品生态,满足用户在不同场景和需求下的使用体验。

5. 产品规划

5.1 NABCD分析
  • Need,需求
    团队希望做一个可以适用于IDEA、Pycharm等开发工具插件,插件可以访问InsCode的社区模板并应用模板来创建项目。这样可以方便开发者快速启动和管理自己的项目,节省时间和精力,提高效率和质量。

  • Approach,做法
    团队可以利用InsCode平台提供的API和SDK,开发一个通用的插件框架,然后针对不同的开发工具进行适配和定制。

  • Benfit,好处 :

    • 提供一个丰富和便捷的项目模板库,让开发者可以快速找到合适的模板,启动自己的项目;

    • 简化项目创建和管理的流程,让开发者可以专注于代码编写和创意实现;

    • 增加开发者对InsCode平台的粘性和忠诚度,让开发者可以更深入地使用InsCode平台的各种功能。

  • Competitors,竞争

    目前市场上有一些类似的插件或工具,例如CodeSandbox和StackBlitz都有着丰富和多样的项目模板库,而且可以直接在浏览器中编辑和运行代码,但是它们都需要网络连接,不能在本地使用,而且它们的项目管理和社区功能也不如InsCode平台。

  • Delivery,推广

    • 在InsCode平台上宣传和推荐InsCode插件,让已有的用户了解和下载插件;

    • 在IDEA、Pycharm等开发工具的官方商店或社区上发布和推荐InsCode插件,让更多的开发者知道和使用插件;

    • 在各种编程相关的媒体、论坛、博客等平台上发布和推荐InsCode插件,让更多的潜在用户了解和使用插件;

    • 鼓励用户在社交媒体上分享和评价InsCode插件,提高插件的口碑和影响力。

5.2 如果你是项目经理,可以招聘6个人,你认为应该如何配置角色(开发,测试,美工等等)
  1. 前端工程师(2人):负责开发 Inscode 插件前端部分。

  2. 后端工程师(2人):负责开发 Inscode 社区模板后端部分。

  3. 测试工程师(1人):负责测试 Inscode 插件和社区模板,确保软件质量。

  4. UI设计师(1人):负责设计插件界面和社区模板的视觉效果

5.3 16周详细计划
周次 目标 关键结果 行动计划
1 确定需求 确定基本的IDEA、Pycharm插件要求,了解Inscode社区的API 与团队讨论插件要求,阅读API文档
2 设计插件 完成插件设计方案 建立设计文档,与UI/UX团队合作
3 开始开发 基本的插件开发 确定技术栈和编程语言,编写代码
4 完成插件基础功能 插件基础功能 编写测试用例,测试基础功能
5 添加Inscode社区的API 添加API,以便访问社区内容 阅读API文档,编写代码
6 完成API集成 实现API集成,确保API的稳定性和安全性 完成API测试,确保API的正确性
7 开发插件的用户界面 开发用户界面,以便用户可以轻松地访问Inscode社区内容 编写代码
8 测试和修复漏洞 测试插件并修复所有的漏洞 执行综合测试,修复所有的漏洞
9 发布Beta版本 发布Beta版本以便用户可以测试 准备发布Beta版本
10 用户反馈和改进 收集用户反馈并改进插件 分析用户反馈,做出改进
11 插件性能优化 优化插件性能 执行性能测试,优化性能
12 插件文档 编写插件文档 编写使用指南和开发文档
13 发布正式版本 发布正式版本 准备发布正式版本
14 推广 推广插件以获得更多用户 制定推广计划,推广插件
15 用户支持 支持用户,解决问题 建立用户支持体系,回答用户问题
16 团队回顾 总结整个项目,回顾团队表现 进行团队回顾,总结经验教训

你可能感兴趣的:(功能测试,segmentfault)