I wanted to share some of my findings related to testing and knowledge management (KM) and how I see the connection between them. I started to work as a part-time tester in a small start-up almost 2 years ago. Since then, I have learned some things through practice. I also discovered lots of interesting resources online. MoT was one of the most helpful.
Exploratory testing advocates influenced a lot of how I see testing. (Next week, I will be participating in Rapid Software Testing Explored 4-days online course hosted by Michael Bolton)
It so happened that roughly at the same time I discovered the community around ObsidianMD - a very interesting tool for note-taking and KM. As I learned more about that tool and various aspects of note-taking and KM, it turned out they can be very helpful for both my testing activities and the learning process.
I’d like to mention 3 main things which influenced my journey:
- Rapid Software Testing methodology and Session-Based Test Management in particular. These are mostly publications, videos and resources created by several exploratory testing enthusiasts and advocates (James Bach, Michael Bolton, Elizabeth Hendrickson, Louise Gibbs and others)
- ObsidianMD + Markdown. ObsidianMD is a personal knowledge management tool, markdown editor.
- One particular article written by Alan Richardson aka EvilTester.
There are probably a lot of definitions of knowledge management. I like to think about KM as a system that helps to solve problems that we face when dealing with a large amount of information. That information is consumed, stored, searched, reused, shared, used in our work, etc.
Similarly, when we talk about knowledge management in testing, we want to find the answers to some important questions which cover such areas as:
- test management approach (how do you organize your testing? how do you manage your time?)
- testing method (what do you do to discover important risks, generate test ideas, avoid shallow testing?)
- measuring progress (have you tested this area enough? Can you explain why? how do you track progress, what’s been covered within a day, week, a month?)
- reporting (what is the current progress on testing feature X? Can you visualize it or present in a clear and concise form?)
- collaboration (You tested feature Y a couple of months ago (or year ago). Can you find and share your notes with a new tester so that person can find all necessary resources, set up instructions and spend less time learning the product?)
- traceability (which areas we covered when testing requirement Z? Can we trace the link between tests/test cases/ testing notes and test results, requirements?)
- visibility (What have you been testing last Monday? Can other team members see which cases/scenarios/areas you covered?)
- balance (How do you know if you’re maintaining a good balance between actual testing and note-taking, documentation?)
I find those questions very interesting, and I hope to hear from other testers what approach, system and tools they use to address them. What challenges do they face and what solutions they can share in this context.
- Heuristics and charters. I store them in atomic notes which can be accessed at any moment using a hotkey to view heuristic or charter examples. I regularly add new heuristics and charters as discover them in online resources or come up with my own ones.
- Mind maps. I use mind maps inside Obsidian for exploratory testing notes (2 mind map plugins available). I am planning to find or write a script to batch-export markdown notes to other mind-mapping formats.
- Outlining and tasks. I use ordered or bulleted lists and tasks to outline my exploratory testing notes, feature notes. Obsidian offers lots of customizable hotkeys related to lists and tasks. It is a very handy feature and makes it easy to track what’s already covered/completed.
- Linking. I link sessions, daily reports, monthly logs, feature notes and test plan between each other.
- Version control and sharing. I use Git to take snapshots of my knowledge base. I then sync my vault with private GitHub for sharing and backup.
- Automations. As I mentioned, I wrote multiple templates to automate tasks that I perform often. This
I took the vault that I use in my work as a basis and put together ObsidianMD starter kit for testers and QA enthusiasts. The main 2 goals are:
- Share my templates, findings and handy ObsidianMD settings with other testers who also use that tool in their work.
- To have a handy template in the cloud for myself. When I need to start a new testing project, I can download/clone this starter kit from GitHub. Without spending much time on settings and configurations, I can quickly start using it for my testing needs in less than 5 min.
The starter kit includes
- preinstalled Red Graphite Theme
- preinstalled plugins
- predefined hotkeys
- Templater scripts
- some heuristics (templates)
- some test charter examples (templates)
- sample folder structure and file name conventions
All the above is customizable as per your needs and preferences. It is the first version of the kit, so some areas in the description might be not clear or confusing. Feel free to reach out or post questions in repo’s issues.
Here is an example of my Obsidian graph that shows the links between various notes (markdown files). The largest dotes include feature list, templates, monthly logs, feature notes.
As I mentioned earlier, I hope to hear from other testers what approach, system and tools you use for knowledge. What challenges do you face?
Have you found something helpful in my post?
Please do not be too strict. English is my second language and I know I am not good at writing. Feel free to leave a comment and to point to my mistakes.