![]() |
Software Quality Assurance
|
|
The software development process describes how software is developed at EMOTIVE.
The software development process is clearly structured yet flexible enough to address the specific requirements of developing software products. With a team of about 20 employees, great emphasis is placed on agility and adaptability. Established methods and principles are applied in a way that meets the needs of smaller teams. Here is an overview of the approach.
Note: EMOTIVE is a software product manufacturer and not a development service provider. Software product development and software project development differ in some ways. Software project development is customer and requirement-oriented, while software product development is market and user-oriented. The two approaches differ in terms of target group, development process, financing and long-term orientation.
Why This Approach Chosen?
This approach aims to deliver innovative, reliable, and sustainable software products that align perfectly with the needs of users and stakeholders. By maintaining flexibility and focusing on quality, the team ensures that each product is both functional and impactful.
The following aspects were the focus:
The software development for the OTX Tool Chain is starting by creating the Software Requirements derived from the inputs like
The Specification is realized in Issue Tracking System (REDMINE) within a ticket of the WIKI. In some cases the requirements are specified in Confluence or other formats (e.g. Word or PDF) whereby here a linked reference to Issue Tracking System (REDMINE) is mandatory.
Before a Requirement is ready to implement it has to pass a review from the PM. The PM is approving the requirement for implementation if the review is successful.
The ticket workflow, see Ticket States is the reference for the workflow to create a specification.
PL
creates a new ticket with state New
in the public Issue Tracking System (REDMINE) area (Customer visible) and mirrored in the internal area (emotive only) Note: If the content of the subject in the ticket is too big then sub-tickets will be created and linked to the main ticket. This is only done in the internal area.
PL
describes the scope of the update or change in the ticketPM
is executed if all inputs and sub-tickets are created accordinglyTo Review
must be set.PL
assigns the ticket to the DEV-TL
or if the developer is clear direct to the DEV
for implementation. The DEV-TL
can assign the ticket to a DEV
.The design phase is like an extended specification phase, see Specification. It is only executed if it is required. If the implementation is clearly defined and has no impact on the existing design this phase can be skipped. If the implementation is complex the design phase is mandatory (e.g. API-Design). The decision is taken at the specification review by the PL
or PM
.
After review and approval of the specification the ticket is inside the ticket store and ready for implementation by a developer DEV
. When the DEV
has finished with the last ticket, he selects a ticket from the ticket store assigned to him according to priority.
For tickets with the same priority, the DEV
can select the next ticket at his own opinion but according to the following criteria:
When the DEV
accepts a ticket, the following procedure must be followed:
DEV
sets the ticket status to In Progress
, see Ticket States.DEV
reads the ticket carefully to understand the content.Feedback
.In Progress
and assigns it back to the DEV
. Note: This process can be carried out until there is clarity about the content and implementation.
DEV
has understood the ticket, he estimates the processing time and updates the completion date in the ticket.DEV
is obliged write the code for the generated user documentation for each APIDEV
must stop the work at the ticket. Because some requirements are missing or an urgent ticket must be implemented. In this case the DEV
must set the state to Pending
and write the reason into the ticket.DEV
DEV
is obliged to commit his code in a meaningful and timely manner. Meaningful stands in this context for committing logical and functional connected blocks together for a better understanding and assignment into the Software System later on. Timely stands in this context for at least one commit at the end of the working day. If it cannot be committed, then it must be backed up to an internal network drive using a patch! Important: It must be noted that the updated code is still compilable.
To Review
is set to TRUE, a code review using the 4-eye principle must be carried outPL
decides whether the code review needs to be repeated after an gap or error found by the TE
.DEV
, then the implementation must be tested by DEV
according to the following criteria:DEV
must either rewrite or update the API unit testsDEV
only needs to test for errors at the 1st levelResolved
.After the ticket is set to Resolved
be the DEV
, the ticket is inside the To be tested
store and ready for testing by a tester TE
. When the TE
has finished with the last ticket, he selects a ticket from the "To be tested" store according to the priority criteria described above for the DEV
.
TE
) takes the ticket, sets the status to In Testing
TE
tests against the specification. He independently selects a suitable test procedure for this.TE
or commissioned to DEV
. Changes relevant to release are:Note: New tickets may have to be created for this. This also applies if other errors are found during testing that have nothing directly to do with the ticket.
TE
finds a defect, he documents it in a traceable manner in the ticket, sets the ticket to the status In Progress
and assigns it to the DEV
again.DEV
processes the ticket, see point 4 above Note: This process is repeated until the
TE
finds no more errors.
Adapt UserDoc
is set, the TE
is responsible to update the user documentation.TE
can do it by its own or create a new ticket with the tracker "Documentation", link it with the to be tested ticket and assign it to an other team member.TE
tested the ticket and finds no errors, the state must be set to Tested
Note: Only tickets with the status
Tested
should be published.
The following categories are distinguished for the delivery of the software:
Important: A PoC may not be used productively.
The following steps are performed for delivery:
PM
or PL
decides whether a release is granted anyway or whether the error must be eliminated first. Note: Tests for known problems can be hidden.
IMPORTANT: A detected virus does not mean that the file contains a virus! It only means that the related virus scanner means that there is a virus. Note, that each file is scanned with more than 50 different scanners.
After the software has been released and delivered, questions may arise or errors or defects may become apparent. The software is maintained and further developed for this purpose. The following process has been established for maintenance:
If a question or problem arises, a ticket is created, see Issue Tracking System (REDMINE).
Note: Foreign program code, foreign terms, file formats or log files cannot be processed without FAQ_ExtendedIntegrationSupport.