CN107122218A - 一种软件开发方法及系统 - Google Patents

一种软件开发方法及系统 Download PDF

Info

Publication number
CN107122218A
CN107122218A CN201710200947.0A CN201710200947A CN107122218A CN 107122218 A CN107122218 A CN 107122218A CN 201710200947 A CN201710200947 A CN 201710200947A CN 107122218 A CN107122218 A CN 107122218A
Authority
CN
China
Prior art keywords
test
software code
software
compiling
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710200947.0A
Other languages
English (en)
Inventor
孙吉平
史继超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201710200947.0A priority Critical patent/CN107122218A/zh
Publication of CN107122218A publication Critical patent/CN107122218A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件开发方法及系统,该系统可以对软件代码的修改内容进行增量编译后,自动对软件代码审查,自动化执行软件代码逻辑测试及功能测试,最后将编译、软件代码审查及测试过程中的结果整理为文档,发送出去供相关人员参考。由于本发明设置的软件开发系统能够自动完成软件开发的各个流程,所以过程简单且易于实现,缩短了软件开发的时间及降低成本。

Description

一种软件开发方法及系统
技术领域
本发明涉及计算机技术领域,特别涉及一种软件开发方法及系统。
背景技术
随着计算机技术的发展,可以实现各种功能的软件被开发出来,数量也越来越多。在开发软件时,采用的通常方法为:首先,编写高质量的软件代码;其次,编写完整的单元测试;再次,对所述软件代码进行审查;再次,对审查后的软件代码进行白盒测试,也就是逻辑驱动测试;最后,对软件代码进行黑盒测试,也就是测试软件代码可以实现的功能。完成后,就实现了软件代码的开发工作,就可以运行软件代码,实现其功能。
但是,采用上述方式进行软件开发过程,在实施各个步骤时都存在缺陷,具体地说:编写高质量的软件代码需要有经验的程序员完成,程序员水平参差不齐,只能通过严格的代码编写规范来约束代码风格和常见语言错误,全靠人工实现,无法保证软件代码的质量一定符合要求;在对所述软件代码进行审查时,通常需要组织多个有经验的开发人员同时对软件代码的一个功能单元进行审查和讨论,人工审查需要事先了解审查单一的功能并且具备相应的经验,花费时间长,执行过程中常常流于形式,在时间紧迫的软件开发周期内,不乏因为缺少对代码的审查造成软件发布后异常的情况,造成的损失难以估算;在进行白盒测试时需要有熟悉软件代码的高水平的测试人员完成,而大多数开发团队并没有能完成相关工作的合适人员;在进行黑盒测试时,必须以场景测试为核心,验证软件功能的可用性,无法完全覆盖代码逻辑,无可避免地在某些特殊情境下代码执行异常。
综上,采用上述方式进行软件开发,需要大量的高水平且了解软件代码的各个功能单元的人员手工安按照整个测试流程才能完成,不容易实现,花费的时间及成本很高。
更进一步地,虽然软件代码质量需要有严格的规范来约束,尽量不使用不正当的写法不造成难以排查的漏洞(bug),但是,仍然避免不了软件代码出现bug,需要在软件发布后,对软件代码进行修复。在对发布的软件进行功能增强或修复过程中,对发布的软件代码进行修改,有时软件代码的改动会对软件运行造成意想不到的异常情况,牵一发而动全身,可能由于软件代码的修改对软件的运行造成问题。这时,仍然需要对修改后的软件代码进行审查、白盒测试及黑盒测试等过程,不容易实现,花费大量的时间及人工成本。
发明内容
有鉴于此,本发明实施例提供一种软件开发方法,该方法能够使得软件开发过程简单且易于实现。
本发明实施例还提供一种软件开发系统,该系统能够使得软件开发过程简单且易于实现。
根据上述目的,本发明是这样实现的:
一种软件开发方法,包括:设置软件开发系统,该方法还包括:
所述软件开发系统对接收的软件代码进行编译;
所述软件开发系统对编译后的软件代码审查,得到审查文档;
所述软件开发系统对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
所述软件开发系统将审查文档及测试文档发送。
一种软件开发系统,所述系统包括:编译单元、审查单元、测试单元及报告反馈单元,其中,
编译单元,用于对接收的软件代码进行编译;
审查单元,用于对编译后的软件代码审查,得到审查文档;
测试单元,用于对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
报告反馈单元,用于将审查文档及测试文档发送。
由上述方案可以看出,本发明实施例设置软件开发系统,该系统可以对软件代码的修改内容进行增量编译后,自动对软件代码审查,自动化执行软件代码逻辑测试及功能测试,最后将编译、软件代码审查及测试过程中的结果整理为文档,发送出去供相关人员参考。由于本发明设置的软件开发系统能够自动完成软件开发的各个流程,所以过程简单且易于实现,缩短了软件开发的时间及降低成本。
附图说明
图1为本发明实施例提供的软件开发方法流程图;
图2为本发明实施例提供的软件开发方法具体例子流程图;
图3为本发明实施例提供的软件开发系统结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明实施例为了使得软件开发过程简单且易于实现,设置软件开发系统,该系统可以对软件代码的修改内容进行增量编译后,自动对软件代码审查,自动化执行软件代码逻辑测试及功能测试,最后将编译、软件代码审查及测试过程中的结果整理为文档,发送出去供相关人员参考。这样,就可以自动完成软件开发的各个流程,所以过程简单且易于实现,缩短了软件开发的时间及降低成本。
图1为本发明实施例提供的软件开发方法流程图,设置软件开发系统,其具体步骤为:
步骤101、所述软件开发系统对接收的软件代码进行编译;
在该步骤中,软件代码可以是全新的,也可以是增量的,这里可以不限制,如果是软件代码是增量的,可以进行增量编译;
步骤102、所述软件开发系统对编译后的软件代码审查,得到审查文档;
步骤103、所述软件开发系统对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
步骤104、所述软件开发系统将审查文档及测试文档发送。
在该方法中,在步骤101中,还包括:根据接收的软件代码进行测试程序的编译;
在步骤103中,所述进行逻辑测试是根据测试程序对软件代码进行测试。
在该方法中,还包括:所述软件开发系统将通过测试的软件代码并入对应的软件代码分支,并发送并入报告。在这个情况下,通过测试的软件代码为对应的软件代码的增量代码。
在该方法中,在步骤101中,还包括:如果编译失败,则建立编译报告并发送,所述发送可以是发送错误邮件或即时消息。
在该方法中的步骤102,还包括:如果审核失败,则建立审核失败并发送,所述发送可以是发送错误邮件或即时消息。
在该方法中的步骤103,还包括:进行逻辑测试及功能测试失败,则记录失败报告及提交代码的提交人,发送给提交代码的提交人,发送方式采用发送错误邮件或即时消息方式。
本发明实施例设置的软件开发系统设置了软件代码测试的各个阶段流程,当运行时,测试人员根据所述系统的指示,依次进入编译阶段、审查阶段、逻辑测试阶段及功能测试阶段,并在每个阶段按照运行的所述系统进行相应操作并得到相关的报告,从而无需测试人员需要对软件代码开发的全局进行把控,操作简单且易于实现。
举一个具体例子说明,图2为本发明实施例提供的软件开发方法具体例子流程图,其具体步骤为:
步骤201、测试人员提交软件代码到所述软件开发系统中;
步骤202、所述软件开发系统检测到软件代码要变更,建立任务,对软件代码中的变更部分进行增量编译,同时编译得到测试程序;
在本步骤中,具体地,步骤202a,如果编译失败,则确定软件代码提交人员,通过所设置的报告反馈功能发送错误邮件或即时消息;
步骤202b,如果编译成功,则继续后续步骤的执行;
步骤203、所述软件开发系统对编译后的软件代码进行静态审查,排除软件代码中的不良语法造成的隐患;
在本步骤中,具体地,步骤203a,如果审查失败,则确定软件代码提交人员,通过所设置的报告反馈功能发送错误邮件或即时消息;
步骤203b,如果审查成功,继续后续步骤的执行;
步骤204、所述软件开发系统触发测试任务,根据编译的测试程序对软件代码进行测试,并记录得到测试程序的执行结果;
在本步骤中,具体地,步骤204a,如果测试失败,则确定软件代码的最后一次提交的测试人员,记录测试失败结果,通过所设置的报告反馈功能发送错误邮件或即时消息,提醒开发人员及时修改完善;
步骤204b,如果测试成功,则继续后续步骤的执行;
步骤205、所述软件开发系统进行全功能的回归测试,并记录得到全功能的回归测试结果;
在本步骤中,具体地,步骤205a、如果测试失败,则记录测试失败的测试用例及失败结果,通过所设置的报告反馈功能发送错误邮件或即时消息;
步骤205b,全功能回归测试通过,继续执行后续步骤;
步骤206、所述软件开发系统将完成测试的软件代码并入迭代的软件代码分之,并通过所设置的报告反馈功能发送错误邮件或即时消息。
图3为本发明实施例提供的软件开发系统结构示意图,该系统包括:编译单元、审查单元、测试单元及报告反馈单元,其中,
编译单元,用于对接收的软件代码进行编译;
审查单元,用于对编译后的软件代码审查,得到审查文档;
测试单元,用于对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
报告反馈单元,用于将审查文档及测试文档发送。
在该结构中,编译单元,还用于根据接收的软件代码进行测试程序的编译后,发送给测试单元;
测试单元,还用于根据测试程序对软件代码进行测试。
在该系统中,所述系统还包括并入单元,用于将通过测试的软件代码并入对应的软件代码分支;
所述报告反馈单元,还用于发送并入报告。
采用本发明实施例提供的系统及方法,由于是所设置的软件开发系统规范化整个软件代码的开发,使得软件代码在提交到系统后,自动执行编译、代码审查及功能测试,提高软件开发效率。采用本发明实施例提供的系统及方法,减少了测试人员工作,只需要维护各软件开发系统的各个测试阶段,也就是测试用例即可。采用本发明实施例提供的系统及方法,减少了软件代码中误写错误和简单语法错误,提高了代码质量。采用本发明实施例提供的系统及方法,减少软件代码开发人员的功能测试花费时间,使得软件代码开发人员集中精力解决主要问题。采用本发明实施例提供的系统及方法提高软件代码质量来保证软件质量,减少了测试成本及极大程度降低软件发售后由于质量问题造成的损失。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种软件开发方法,其特征在于,包括:设置软件开发系统,该方法还包括:
所述软件开发系统对接收的软件代码进行编译;
所述软件开发系统对编译后的软件代码审查,得到审查文档;
所述软件开发系统对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
所述软件开发系统将审查文档及测试文档发送。
2.如权利要求1所述的方法,其特征在于,所述软件代码为增量软件代码。
3.如权利要求1所述的方法,其特征在于,所述根据接收的软件代码进行测试程序的编译;
所述进行逻辑测试是根据测试程序对软件代码进行测试。
4.如权利要求1所述的方法,其特征在于,还包括:
所述软件开发系统将通过测试的软件代码并入对应的软件代码分支,并发送并入报告。
5.如权利要求1所述的方法,其特征在于,所述编译之后,还包括:如果编译失败,则建立编译报告并发送。
6.如权利要求1所述的方法,其特征在于,所述审核之后,还包括:如果审查失败,建立审核失败并发送。
7.如权利要求1所述的方法,其特征在于,所述测试之后,还包括:进行逻辑测试及功能测试失败,则记录失败报告及提交代码的提交人,发送给提交代码的提交人。
8.一种软件开发系统,其特征在于,所述系统包括:编译单元、审查单元、测试单元及报告反馈单元,其中,
编译单元,用于对接收的软件代码进行编译;
审查单元,用于对编译后的软件代码审查,得到审查文档;
测试单元,用于对编译后的软件代码进行逻辑测试及功能测试,得到测试文档;
报告反馈单元,用于将审查文档及测试文档发送。
9.如权利要求8所述的系统,其特征在于,所述编译单元,还用于根据接收的软件代码进行测试程序的编译后,发送给测试单元;
所述测试单元,还用于根据测试程序对软件代码进行测试。
10.如权利要求8所述的系统,其特征在于,所述系统还包括并入单元,用于将通过测试的软件代码并入对应的软件代码分支;
所述报告反馈单元,还用于发送并入报告。
CN201710200947.0A 2017-03-30 2017-03-30 一种软件开发方法及系统 Pending CN107122218A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710200947.0A CN107122218A (zh) 2017-03-30 2017-03-30 一种软件开发方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710200947.0A CN107122218A (zh) 2017-03-30 2017-03-30 一种软件开发方法及系统

Publications (1)

Publication Number Publication Date
CN107122218A true CN107122218A (zh) 2017-09-01

Family

ID=59718295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710200947.0A Pending CN107122218A (zh) 2017-03-30 2017-03-30 一种软件开发方法及系统

Country Status (1)

Country Link
CN (1) CN107122218A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491663A (zh) * 2018-11-01 2019-03-19 北京车和家信息技术有限公司 代码审查方法及装置
CN112748911A (zh) * 2019-10-29 2021-05-04 牟杨 一种智能仿生软件生成系统及方法
US20240095149A1 (en) * 2022-09-19 2024-03-21 Visa International Service Association Continuous testing for distributed system to control breaking change

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260303A (zh) * 2015-10-10 2016-01-20 浪潮电子信息产业股份有限公司 一种基于自动化测试的敏捷测试方案
CN106484606A (zh) * 2015-09-01 2017-03-08 阿里巴巴集团控股有限公司 一种代码提交方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484606A (zh) * 2015-09-01 2017-03-08 阿里巴巴集团控股有限公司 一种代码提交方法和设备
CN105260303A (zh) * 2015-10-10 2016-01-20 浪潮电子信息产业股份有限公司 一种基于自动化测试的敏捷测试方案

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张涛主编: "《软件技术基础实验教程 2015年1月第1版》", 31 January 2015, 西北工业大学出版社 *
方睿主编: "《网络测试技术》", 31 December 2010, 北京邮电大学出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491663A (zh) * 2018-11-01 2019-03-19 北京车和家信息技术有限公司 代码审查方法及装置
CN112748911A (zh) * 2019-10-29 2021-05-04 牟杨 一种智能仿生软件生成系统及方法
US20240095149A1 (en) * 2022-09-19 2024-03-21 Visa International Service Association Continuous testing for distributed system to control breaking change

Similar Documents

Publication Publication Date Title
Kumar et al. A comparative study of black box testing and white box testing techniques
Daniel et al. ReAssert: Suggesting repairs for broken unit tests
Tao et al. Automatically generated patches as debugging aids: a human study
US20030046029A1 (en) Method for merging white box and black box testing
US7895575B2 (en) Apparatus and method for generating test driver
Singh et al. Automated testing of mobile applications using scripting technique: A study on appium
CN107122218A (zh) 一种软件开发方法及系统
Mayerhofer Testing and debugging UML models based on fUML
JP4959941B2 (ja) ソフトウェアの双方向プロービング
Yang et al. Specification-based test repair using a lightweight formal method
Mijatov et al. Testing functional requirements in UML activity diagrams
Dalal et al. Software Testing-Three P'S Paradigm and Limitations
Malik Software testing: Essential phase of sdlc and a comparative study of software testing techniques
CN108959078A (zh) 一种Windows端软件自动化测试方法及系统
US20240045791A1 (en) System and method for generating failing tests from failed proofs
CN115794639A (zh) 基于流程的可视化测试及可视化仿真模拟测试系统和方法
Alsayed et al. Improving software quality management: testing, review, inspection and walkthrough
Gupta et al. Test driven software development technique for software engineering
Massicotte et al. Generating aspects-classes integration testing sequences a collaboration diagram based strategy
Wallin Verification and validation of software components and component based software systems
Ganji et al. Code coverage criteria for asynchronous programs
Rexhepi et al. Software testing techniques and principles
Gupta et al. Possibility of reuse in software testing
Kriuchkova CREATION OF REQUIREMENTS SPECIFICATION FOR TEST FRAMEWORKS
Meenakshi et al. Software testing techniques in software development life cycle

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170901

RJ01 Rejection of invention patent application after publication