Rosie Sherry
Rosie Sherry
CEO & Founder at Ministry of Testing
She/Her
I am Open to Speak, Write
Hey! I'm Rosie. I started MoT and continue to lead it in the best way I can. I got into testing in the year 2000!

Badges

TestBash Trailblazer
Bio Builder
Career Champion
Avid Reader
Club Explorer
Article Maven
Testing Scholar
MoT Advanced Certificate in Test Automation
Trend Spotter Bronze
99 Second Speaker
The Testing Planet Contributor
MoT Streak
In the Loop

Contributions

How is a Quality Engineer different from a Test Engineer? image
  • Rosie Sherry's profile
We explore 5 ways to look at the difference between Test and Quality Engineers roles
Jane, Jane, Jane image
  • Rosie Sherry's profile
A man holding a cardboard sign that says "Jane, Jane, Jane"
Exploring the software testing career path towards Quality Engineering image
  • Rosie Sherry's profile
How essential are testing skills for a modern day Quality Engineering professional?
Test efficiency image
  • Rosie Sherry's profile
What is test efficiency?Test efficiency measures how well a testing process finds defects while using minimal time, effort, and resources. It shows how testing activities boost software quality and help meet delivery deadlines. Do you have any examples of test efficiency?Test efficiency uses metrics like defects found per test case, execution time, and defect leakage rate. For instance, if a team runs 100 test cases and finds 80 defects, the test suite's efficiency depends on how it uncovered these issues with minimal effort and without redundant tests. Why is test efficiency important?Test efficiency helps teams optimize testing strategies, cut unnecessary work, and maximize defect detection. Efficient testing creates faster development cycles, reduces costs, and makes software more reliable. What are the challenges of improving test efficiency?Challenges include finding the right balance between speed and quality, eliminating redundant tests, and achieving good coverage without excessive runtime. Poor test design and ineffective automation hurt efficiency. Teams improve efficiency through regular monitoring, refined test strategies, and smart automation tool use.
Recovery testing image
  • Rosie Sherry's profile
What is recovery testing?Recovery testing checks how well software bounces back from crashes and failures. It tests whether an application can restore itself after issues like power outages, network drops, or system failures. The goal is to confirm the system returns to normal operation with minimal data loss. Do you have any examples of recovery testing?Testers create failures on purpose to see how systems respond. They might:  Force-shutdown a database server and verify the app reconnects properly Cut network connections to see if the application handles the interruption Corrupting data files to test if backup systems work correctly Simulating power outages during critical operations Why is recovery testing important?Systems fail—it's pretty much inevitable. Recovery testing ensures applications handle these failures gracefully. It protects business operations from extended downtime, maintains data integrity during disruptions, builds user confidence in system reliability, and confirms disaster recovery plans actually work. What are the challenges of recovery testing?Recreating realistic failures poses several challenges.  Setting up environments that mimic production systems is difficult, as is determining acceptable recovery timeframes for different failures. Testers struggle to replicate complex scenarios like hardware failures or cyberattacks, and need to make sure automated recovery mechanisms work consistently. The process requires careful balance between thorough testing and avoiding damage to test environments.
Defect density image
  • Rosie Sherry's profile
What is defect density?Defect density measures how many bugs exist within a specific amount of code. It helps you quantify software quality objectively, and you can use it to compare modules, track improvements over time, and identify problematic code areas.  Defect density works by normalizing defect counts against code size, creating a consistent measurement across different components. Do you have any examples of defect density?Here's an example calculation that shows defect density for a typical software module: Total lines of code: 10,000 Number of defects found: 15 Size measurement: thousand lines of code (KLOC) = 10,000 ÷ 1,000 = 10 KLOC The formula for defect density is: Defect Density = Number of defects ÷ Size in KLOC So: Defect Density = 15 ÷ 10 = 1.5 defects/KLOC This means your module contains 1.5 bugs per thousand lines of code, which helps you compare its quality against industry standards or other modules. Why is defect density important?Defect density provides an objective quality measure. It lets you track improvements, compare components, and identify areas that need additional testing or refactoring. Lower defect density usually indicates better quality. What challenges exist with defect density?Defect density depends on accurate defect reporting and doesn't account for variations in complexity. A low score might indicate high quality… or insufficient testing. Different languages and projects also have different acceptable ranges. 
State transition testing image
  • Rosie Sherry's profile
What is state transition testing?State transition testing verifies how a system moves between different states in response to inputs or events. This black-box testing technique maps out system states and the conditions that trigger transitions between them. It's especially valuable for testing authentication flows, workflows, financial systems, and embedded software where behavior depends on the current state. Do you have any examples of state transition testing?In an e-commerce checkout process, states might include:  Cart Review → Payment Method Selection → Payment Processing → Order Confirmation A tester would verify all valid paths (successful payment leads to confirmation) and invalid paths (expired credit card properly returns to payment selection with error message). Another example is a login system where testers validate transitions between states like: Unauthenticated → Credentials Entered → Authentication Processing → Authenticated/Failed Why is state transition testing important?State transition testing catches bugs that only appear during specific state changes. It verifies that applications handle sequential operations correctly, prevent unauthorized state access, and maintain data integrity between transitions.  This testing is crucial for security-critical applications where improper state management could create vulnerabilities. It also improves user experience by ensuring smooth workflows and appropriate error handling. What are the challenges of state transition testing?State explosion is the biggest challenge—as systems grow more complex, the number of possible states and transitions increases exponentially.  Other challenges include: Identifying all relevant states and transitions Creating efficient test cases that maximize coverage Testing timing-dependent transitions Handling complex prerequisite conditions Maintaining test suites as the application evolves Tools like state tables, directed graphs, and automated test frameworks help manage these challenges.
Localization testing image
  • Rosie Sherry's profile
What is localization testing?Localization testing checks if software works correctly for specific regions, languages, or cultures. It confirms that translations, date formats, currencies, and UI layouts function properly for users in different locations. Do you have any examples of localization testing?Localization testers often check translated content, regional formatting, and cultural “appropriateness”. They verify elements like date formats, currency symbols, right-to-left text support, and localized images.  For example, for an e-commerce site expanding to France, testers might make sure prices show in euros (€), French translations read naturally, and legal disclaimers meet local regulations. Why is localization testing important?Users in different regions need a seamless, culturally appropriate experience. Poorly localized software confuses users, creates usability problems, or offends through incorrect translations or culturally insensitive content. Good localization also helps businesses comply with regional laws. What challenges exist in localization testing?Managing multiple language versions, maintaining context in translations, and testing across different devices and systems create difficulties. Automated translation tools often miss language nuances. Solutions include hiring native-speaking testers, using specialized testing tools, and creating structured test plans.
Defect management image
  • Rosie Sherry's profile
What is defect management?Defect management is the process where teams identify, track, prioritize, and resolve software issues. This systematic approach ensures teams handle bugs efficiently, which minimizes their impact on product quality and user experience. Do you have any examples of defect management?Defect management follows a clear workflow:  identify → log → classify → prioritize → assign → resolve → verify → close When a tester finds a bug, they record it in a tracking tool with specific details like reproduction steps, severity level, and the difference between expected and actual behavior. A developer then fixes the issue, and the tester verifies the solution works properly. Why is defect management important?Defect management matters because it helps teams methodically address software problems, which improves product reliability. An effective defect process ensures teams fix critical bugs quickly, prevents issues from recurring, and strengthens collaboration between testers and developers. What are the challenges of defect management?Defect management challenges include processing large numbers of bugs, maintaining clear team communication, and correctly ranking issues by impact. Inadequate tracking leads to forgotten bugs, while excessively formal processes can delay development. You clear these obstacles with quality tracking tools, clear resolution standards, and strong collaboration practices.
Monkey testing image
  • Rosie Sherry's profile
What is monkey testing?Monkey testing is a software testing technique where you throw random inputs at an application to see if it breaks. Testers use this unscripted, messy approach to find crashes, bugs, and edge cases that planned testing might miss. It's great at catching stability issues when users do unexpected things. Do you have any examples of monkey testing?In practice, monkey testing might look like: Rapidly tapping random areas on a mobile screen Typing nonsense into form fields Jumping frantically between features Using tools that generate thousands of random actions Pressing multiple buttons at once Entering extreme values in number fields Why is monkey testing important?Monkey testing finds vulnerabilities that careful testing misses. By copying unpredictable user behavior, it puts your application through stress it wasn't designed for. This helps catch memory leaks, crashes, and stability problems before real users find them. It's a tough but useful way to strengthen your software against real-world chaos. What are the challenges of monkey testing?The randomness that makes monkey testing effective also creates problems. When you find a bug, recreating it can be nearly impossible without good logs. Coverage is uneven—you might hit one area repeatedly while totally missing others. For best results, pair monkey testing with focused exploratory testing and solid test logs to record exactly 
Test plan image
  • Rosie Sherry's profile
What is a test plan?A test plan is a document that maps out your testing strategy, objectives, resources, and schedule. It defines what you'll test, how you'll do it, and who's responsible for each piece. This blueprint keeps everyone aligned and focused. Do you have any examples of test plans?Test plans vary by organization and methodology, but here's a common example: TEST PLAN: Mobile Banking App v2.0 OBJECTIVES Verify all payment functions work across iOS/Android Validate biometric login meets security standards Ensure 99.9% uptime during peak usage periods 2. SCOPE In-scope: Login, payments, account management, push notifications Out-of-scope: Marketing content, back-office functions 3. SCHEDULE Functional testing: March 1-7 Performance testing: March 8-10 Security testing: March 11-14 UAT: March 15-20 4. RESOURCES 2 iOS testers, 2 Android testers 1 performance engineer 1 security specialist Test environments: Dev, Staging, UAT 5. RISKS & CONTINGENCIES Risk: Third-party payment gateway unavailable Mitigation: Scheduled maintenance windows confirmed Why is a test plan important?Test plans prevent chaos. They help make sure everyone understands goals and approaches before work begins. With a clear plan, teams can track progress, maintain test coverage, and make informed release decisions. They also serve as documentation for future projects and regulatory compliance. What challenges can arise when creating a test plan?Shifting requirements can quickly make test plans obsolete. Estimating testing time accurately remains difficult, especially for complex features. Many teams struggle to balance detail with flexibility, particularly in agile environments.  The solution? Create living test plans that provide structure but remain adaptable through regular reviews and updates.
Configuration testing image
  • Rosie Sherry's profile
What is configuration testing?Configuration testing evaluates how software performs across different hardware, software, network, and system setups. It makes sure your application works correctly in all supported environments, preventing compatibility issues before users encounter them. Do you have any examples of configuration testing?Configuration testing includes running tests on multiple environment combinations:  Different operating systems (Windows, macOS, Linux) Browsers (Chrome, Firefox, Safari) Hardware specifications For mobile apps, you might test on devices with varying RAM, processors, and screen sizes to verify consistent performance. Why is configuration testing important?Users access applications from diverse platforms, and your software must work seamlessly across all supported environments. Testing prevents compatibility issues, ensures consistent user experience, and reduces costly post-release fixes that damage user trust. What are the challenges of configuration testing?The biggest challenge is the sheer number of possible environment combinations. It's impossible to test everything, so you must prioritize based on user analytics. Setting up test environments can drain resources and time. Cloud testing platforms and virtualization help manage these challenges by providing flexible, scalable testing infrastructure.
Login or sign up to create your own MoT page.
Subscribe to our newsletter
We'll keep you up to date on all the testing trends.