Test case management: agiletc platform

Time:2022-5-16

Platform introduction

After investigating some use case management platforms in the industry (TestLink / QC / Zen / cloud effect, etc.), we sorted out the basic functions that a use case management platform should have:

Test case management: agiletc platform

Final system architecture:

Test case management: agiletc platform

Mode of use

Access to other platforms

The difficulty of embedding agiletc into other project management platforms is mainly the front end. At present, the front end has also adopted the component-based method to facilitate external reference. The front-end directory structure is as follows:

web
|--Dist // compiled file
|-- src
     |--Components // core components, caselist & casemgt
     |-- pages
          |--Casepage // use case list
          |--Testtask // use case details
          |--Testtasklist // view the task list based on requirements
     |-- …

If you are accessing other platforms, you can directly refer to the code in the pages directory.

import Casemgt from './components/case/casemgt'
<Casemgt
     {...this.props}
     type="oe"
     baseUrl=""
     kityApiPrefix="KITY_dev" 
     oeApiPrefix="" 
     doneApiPrefix=""
/>

Several parameters are as follows:

attribute explain type Default value
type Embedded platform type string oe
baseUrl Prefix of page route string Example: / biz / 13 / requirement
oeApiPrefix The request prefix that needs to be forwarded to the OE backend string api_dev

Independent use

After running this project, you can see the entry page. Click to enter the use case list. As shown below. You can see the list of use case sets created.

Test case management: agiletc platform

Users can create a new use case set and fill in the name of the use case set and the associated requirements. You can upload XMIND directly. The details are shown in the figure below.

Test case management: agiletc platform

After creating the use case set, you will directly jump to the editing interface, as shown in the following figure.

[picture uploading… (image-6b561-163478579955-7)]

After editing and saving the case, you can return to the list page. You can now create a test task.

[picture uploading… (image-b76627-163478576955-6)]

To create a test task, you need to fill in relevant information, such as person in charge, test cycle, etc. Test cases can be filtered by priority or custom tags.

[image uploading… (image-148593-163478576955-5)]

After the test task is created, it will be displayed under the docked use case set.

Test case management: agiletc platform

After that, you can click the test task name and execute the test task by marking the icon.

Test case management: agiletc platform

Problems in platform development

1. What are the use case platforms in the industry?

a. Offline use case management schemes generally include excel and XMIND.

advantage

  • Perfect function: it can meet the demands of use case management
  • Stable and reliable
  • Good operation experience

shortcoming

  • Management difficulties caused by the increase of use case set
  • Black box of test process, no perception of case writing and test execution process, and no process improvement
  • Low synergy efficiency
b. Online use case management
test-link QC ZenTao Cloud effect
System properties Open source / commercial business Open source / commercial business
Operation type Form filling Form filling Form filling Fill in the form and support brain map display
Functional support project management

Use case management
Test plan management
Test statistics | requirements management
test case management
Test process management
Bug management
Authority management
test case management
Test process management
Bug management
Permission management brain map import
test case management
Test process management
Bug management
Authority management|

2. What are the brain map editor schemes?

When selecting brain map editor, we mainly consider the environment and value to users, including the system architecture and the current situation of manpower at that time.

Selection angle Analysis process Conditions to be met by the scheme
environment Relying on the project management web platform. The platform adopts a front-end and back-end separated architecture. The front end is react and the back end is spring boot Web version brain map editing
development cost Technology stack: basic Java capabilities
QA part-time, develop after business testing Low cost of learning and transformation
User value (new experience – old experience) – replacement cost
Improve the operation experience of the new system and reduce the replacement cost Similar to XMIND operation experience
Add customization functions of test task management and use case management

The following brain map frameworks were investigated:

Open source tools kityminder jsMind My Mind xmind Free Mind
Technical architecture JavaScript

Adopt angular framework
Web brain map editing | JavaScript
Web brain map editing | JavaScript
Web brain map editing | Java
Local app version, no web version | Java
Local app version, no web version|
|User value | interaction is basically consistent with XMIND
Compatible with XMIND use cases | different from XMIND operation
Support node folding
No icon identification | close to XMIND operation
Icons are not easy to use
Node folding is not supported | operation habits are consistent | interaction is close to XMIND|
|Development cost | medium: produced by Baidu, good layered packaging | low, about 4K | medium | high: the project is complex, the code quantity is 30K + | the code is not downloaded successfully|

Finally, Baidu's kityminder was selected for secondary development.

3. How does multi person collaboration work?

Multi person collaboration has experienced three versions. At the beginning, the locking scheme was adopted, which does not support multi person real-time collaboration. After one user opens editing, other users cannot edit. After that, some people gave feedback on the demands of multi person cooperation. In order to support fast online, we use diff patch to solve editing conflicts and polling to realize real-time communication. As shown in the figure. After user a changes, it will send diff to the server, and each client will regularly pull up the latest case from the server. There is a problem here. If the pull-out time is set too short, the interaction between the client and the server will be particularly frequent; If the setting time is too long and the update is not timely, the use case will be lost. In fact, the interactive experience is poor after the function is launched. Finally, websocket is used to solve the problem of real-time communication. As shown in the figure, the change of client a will be sent to the server in time. After the server accepts the change, it will be pushed to other clients.

[picture uploading… (image-3d332a-163478579954-2)]

4. How to do distributed deployment?

Why distributed deployment? Benefits of distributed deployment: 1 Avoid service unavailability caused by single point of failure; 2. Carry a larger number of users. If distributed deployment is carried out directly, there will be problems as shown in the figure above. For the three clients of a / B / C, one use case is opened, and the server will establish three sessions to save the link information with the client. At this time, three sessions are not in one container. For example, after user a edits the use case, it synchronizes to the server, and the server sends the change to clientb, but C cannot obtain the latest change.

Test case management: agiletc platform

This is a problem of communication between services. The first thought is to use the message queue. As shown in the figure, after user a changes, it will be synchronized to the server. The server will send the change to client B and send the content to the message queue. Service 2 can consume messages, update use cases and synchronize to client C. At this point, there is a problem: the message is an asynchronous action. Here, if clientc is a user who has newly opened the use case set, if you connect to service 2, you may find that the use case has not been opened, you will read the use case from the database, and you will read the old use case. Therefore, a layer of redis is added. To save the latest case content in the session.

Test case management: agiletc platform