Hey, Passionate testers!
What was so exciting about the 90s? (just kidding)
Well, one thing that was really exciting was that a lot of testers used to test challenging desktop-based applications. While the world and most testers have moved to web and mobile-based applications. There are still use cases for desktop apps, especially when it comes to software that works with OS processes, file systems, etc.
In order to preserve this information as this is timeless in nature. Information such as resources, ideas, checklists, tools, and heuristics associated with desktop application testing is scattered. I am creating this page to compile all such stuff in one place. If you see anything that could be added, please help me by posting about it in the comment section. Thank you. 🧡
Automation Tools
- Microsoft/WinAppDriver: Windows Application Driver (github.com)
- askui – Humanizing UI Automation
- FlaUI/FlaUI: UI automation library for .Net (github.com)
- karate/karate-robot at master · karatelabs/karate (github.com)
- WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO
- Home – AutoIt (autoitscript.com)
- Test Run: Automating UI Tests In WPF Applications
- TestComplete | SmartBear Software
- appium/appium-mac2-driver – For mac
Exploratory Tools
- Sysinternals – Sysinternals | Microsoft Learn – Collection of Powerful Tiny Tools
- Process Explorer – Sysinternals | Microsoft Learn
- Utilities (best free portable apps) | PortableApps.com
- RegMon for Windows – Sysinternals | Microsoft Learn
- Instant Eyedropper: Identify Color Code
- Bare Metal Software > BareTail – Free tail for Windows
- Perlclip – Satisfice, Inc.: Inject Data to the Application.
- AutoHotkey: For Data Injections
- NSSM – the Non-Sucking Service Manager
- Wireshark · Go Deep.
- Shell Scripts – Set environment variables, misc. tasks.
Easy Traps (Heuristics)
- YouAreNotDoneYet.pdf (thebraidytester.com)
- User preferences – Saved somewhere? Can they be manipulated or written externally too?
- Data Import & Export – Size, Format, Garbage Data?
- Log Files – Format, Data, Location, Understandable?
- Regional & Language Settings – Location, Language, Keyboard, Time?
- Supported Architecture – x86, x64?
- Minimum Resource Needs – RAM, Virtual Memory, Free HDD Space, Network Speed?
- Spell Check – Grammar, Typos, Language Issues?
Resources
- Heuristic Test Strategy Model – Satisfice, Inc.
- kdeldycke/awesome-falsehood: 😱 Falsehoods Programmers Believe in (github.com)
- Microsoft UX Guidelines: Guidelines – Win32 apps
- Windows Desktop Application Test Automation with WinAppDriver and .NET Core | by Enes Kuhn | Maestral | Medium – Waking up WinAppDriver using the NSSM.
- Build Your First Automation Test For a Desktop App Using WDIO | by Amr Salem | Medium
- Automate Desktops Apps – WinAppDriver | LambdaTest
Test Ideas – I
- Invoking Application:
- Double Click
- Command Line (w/ or w/out options)
- Via Run
- Open with
- Send To
- String:
- Diverse Length, Chars
- ASCII, Unicode
- Compatibility:
- Backward Compatibility
- Forward Compatibility
- Dependent Hardware
- Installation:
- Novice: Quick Installation, Single Click, Cancel, Rollback, Progress, Local Language, Clean Uninstall, Modified Install, Repair, Re-Install (Same Version, Different Version), Readme, Installation Instructions.
- Expert: Customizations, Unattended installation (CLI)
- Path Test:
- Path on default location, Local HDD
- Remote HDD, Shared Drive, Sharepoint, etc.
- Invalid Path
Test Ideas – II
- Testing Types to Consider:
- Security
- Performance – RAM, CPU %, etc.
- Interoperability – Formats & Protocols
- Usability
- Portability
- Accessibility
- Disaster Recovery
- Installation & Deinstallation
- Internationalization
- Localization
- Compatibility
- Data Integrity
- Test for Consistency:
- Title, Message, Header, Footer.
- Font Size, Color Scheme, Logo
- Terminology
- With Legacy Apps
- Other Culprits:
- Loading unnecessary components
- Waits | Deadlocks
- Memory Leaks | Corruption
- Un-optimized Algorithm
- Heavy Graphics
- Excessive CPU | Memory Load