Introduction
A simple portal for tracking testing reports, bugs found and then mapping all this way back to features and releases. However JIRA and other such project management tools provide the features that are mentioned in this document but still this solution can come in handy for those who don't want an outside tool rather a quick dirty solution.Note this is for a general solution overview and focuses more on data modelling. Any installation and setup related findings is homework for reader :)
What all is compassed in testing ?
- Testing Report
- Bugs
- Releases
- Features
- Test cases
- Environment
What all do you need to see in a testing dashboard ?
- Timeline of all testing that has happened till date
- Individual testing report
- Test cases, which cases map to which feature(s)
- Testing cycles for a specific release
- Bugs introduced in a release, mapped to which feature(s)
The portal solution involves :
- Mongodb
- Mongodb Compass - mongodb dashboard tool
- Elasticsearch
- Kibana - elastic search dashboard tool
How will it work
Managing Testing Metadata in Mongodb
We use mongodb as database/storage for all the testing related metadata we have i.e. bugs, test cases, release versions, testing cycles. Exact modelling of data will come in later section. To manage mongodb as well as to have an interface to enter metadata/information in mongodb, we can use Mongodb Compass (a solution by mongodb itself).Making sense of data
Kibana has excellent dashboard functionality, it provides various chart types for every possible reporting type that one may need. So to facilitate Kibana we integrate ElasticSearch with Mongodb. Check out this post https://www.linkedin.com/pulse/5-way-sync-data-from-mongodb-es-kai-hao for integration. For me I used the river option (option 3) in the linked post, but as you may see that is now deprecated for 2.0x version. Once this integration is done, you can create custom dashboard in Kibana based on the data you have and voila!Data Modelling
Here I am hoping you have some basic knowledge of Mongodb or atleast understand how JSON works.Testing Report
A testing report is basically number of testcases that passed and failed on a particular release deployed on a specific environment. This can be modelled as :{
"id": "<uuid>",
"environment": "<string>",
"release": "<releaseId>",
"bugs": ["<bugId>", "<bugId>", "<bugId>", "<bugId>", "<bugId>"],
"result": {
"passed": ["<testCaseId>", "<testCaseId>", "<testCaseId>", "<testCaseId>"],
"failed": ["<testCaseId>", "<testCaseId>", "<testCaseId>", "<testCaseId>"]
},
"timestamp": "<date>"
}
Test Case
Test case is just the description of the scenario that will be tested, expected outcome and feature to which it maps.{
"id": "<uuid>",
"description": "<string>",
"expected": "<string>",
"features": ["<featureId>", "<featureId>", "<featureId>"],
"timestamp": "<date>"
}
Release
Release is basically the latest stable working tag of software which has some new features and follows an increment style i.e. build upon last release.{
"id": "<uuid>",
"tagVersion": "<string>",
"incrementedOn": "<releaseId>",
"features": [{
"id": "<uuid>",
"description": "<string>"
}, {
"id": "<uuid>",
"description": "<string>"
}, {
"id": "<uuid>",
"description": "<string>"
}],
"timestamp": "<date>"
}
Bug
Bug is an anamoly found in functionality of software during testing cycle. It maps to a feature and may or may not present in multiple releases.{
"id": "<uuid>",
"introducedIn":"<releaseId>",
"presentIn": ["<releaseId>", "<releaseId>", "<releaseId>"],
"features": ["<featureId>", "<featureId>", "<featureId>"],
"timestamp": "<date>"
}
It is truly a well-researched content and excellent wording. I got so engaged in this material that I couldn’t wait reading. I am impressed with your work and skill. Thanks. software development company Phoenix
ReplyDeleteThis is a useful overview of building a lightweight testing portal around structured testing metadata. I like the way the solution connects testing reports, test cases, bugs, releases, features, and environments instead of treating each testing activity as isolated information. The focus on data modelling also makes the approach practical for creating a simple internal solution.
ReplyDeleteUsing MongoDB to store testing metadata is a natural fit for the JSON-based models shown in the article, particularly for representing relationships between releases, bugs, features, and test cases. The examples provide a good starting point for developers exploring a MongoDB Course and learning how application data can be structured around document-oriented storage.
The combination of MongoDB with Elasticsearch and Kibana is another interesting part of the design. Once testing information is available for indexing, dashboards can make it easier to examine testing timelines, failures, release-level bugs, and other quality metrics. This architecture is also relevant to developers exploring a MENN Stack Course, particularly when MongoDB is used as part of a broader JavaScript-based application stack.
ReplyDeleteThe testing dashboard requirements described here also show why presenting structured data clearly is important. Charts and dashboards can turn collections of test results and release information into something much easier to interpret, making Data Visualization Training a relevant extension of the reporting concepts discussed in the article.
ReplyDelete