Wednesday, December 21, 2022

20 Software Testing Considerations

Before going into details of Software Testing Consideration. Let's understand what is Consideration?

- It is a careful thought, i.e. the act of thinking carefully about something you will make a decision about.



Following are the list of 20 ways to achieve Software Testing Consideration (all of these may not be applicable in each testing scenario. However, this is an exhaustive list which can be used to choose what would be relevant in certain scenarios):

1) Create Realistic Test Cases

Assessing how a software application will respond in a real-world scenario is essential to ensure the success of performance testing. Thus, creating realistic tests that keep variability in mind and taking into consideration the variety of devices and client environments to access the system is essential. Also important is mixing up device and client environment load, varying the environment and data, and ensuring that load simulations do not start from zero.


2) Proofread the content and Peer Review

Your content should be consistent, grammatically correct, and error-free. Don’t forget to check headings, labels, email notifications, and alerts.


3) Test using the most popular web browser/browsers

If you're developing a web application, your system should look and function the same regardless of the web browser you use. We test ours on the latest versions of Edge, Internet Explorer, Firefox, Chrome, and Safari.


4) Test it using the most popular devices

If your system will be used on mobile devices, you should test styling and functionality on a variety of screen sizes. We test on an iPad, iPhone, Android Nexus 7 tablet, and a subset of Android smartphones.


5) Validate all links

Each button and link should perform as expected—whether that’s an action within the system or an external link.


6) Review visuals

Fonts should follow a consistent style, and the graphics used throughout the system should align with your brand standards.


7) Verify site security

Validate each page is secure with HTTPS over SSL for general data security. We also recommend testing data access at the account level to make sure only accounts with appropriate access can see the data. 


8) Validate forms

If your system has forms, make sure you can fill them out and that the submit buttons work. Double-check field validation and that form data is collected and stored according to requirements. You’ll also want to make sure users are directed to the right place upon submission.


9) Validate email notifications are sent as expected

This line item is two-fold. First, ensure the appropriate people at your organization receive notifications when users take action in the system. Second, ensure the email notifications sent to users are clear and are triggered at the appropriate times.


10) Validate business logic

Run scenarios in the system to verify the output is what you’d expect as an expert in your organization.


11) Role play

Every system is different. For the best results, if you aren’t really a user of the system (maybe it’s your clients who will ultimately use it), put yourself in the mindset of a true end user and attempt to accomplish common tasks as well as edge cases that may not have been communicated to the developer.


12) Test Early And Test Often

Leaving performance testing as an afterthought is a recipe for testing disaster. Instead of conducting Performance testing late in the development cycle, it should take the agile approach and be iterative throughout the development cycle. This way the performance gaps can be identified faster and earlier in the development cycle.


13) Focus On Users Not Just Servers

Since it is real people that use software applications, it is essential to focus on the users while conducting performance testing along with focusing on the results of servers and clusters running the software. Along with measuring the performance metrics of clustered servers, testing teams should also focus on user interface timings and per-user experience of performance.


14) Performance is Relative

Performance might mean something to you and something else to the user. Users are not sitting with a stopwatch to measure load time. What the users want is to get useful data fast and for this, it is essential to include the client processing time when measuring load times.


15) Correlating Testing Strategy With Performance Bottlenecks

In order to be effective in performance testing creating a robust testing environment and gaining an understanding of the users perspective of performance is essential. It is also essential to correlate performance bottlenecks with the code that is creating these problems. Unless this is done problem remediation is difficult.


16) Quantifying Performance Metrics

In order to assess the efficacy of the performance tests, testing teams need to define the right metrics to measure. While performance testing, teams should thus clearly identify:

The expected response time – Total time taken to send a request and get a response.

The average latency time.

The average load time.

The longest time taken to fulfill a request.

Estimated error rates.

The measure of active users at a single given point in time.

Estimated number of requests that should be handled per second.

CPU and memory utilization required to process a request.


17) Test individual units separately and together

Considering that applications involve multiple systems such as servers, databases, and services, it is essential to test these units individually and together with varying loads. This will ensure that performance of the application remains unaffected with varying volumes. This also exposes weak links and helps testing teams identify which systems adversely affect the others and into which systems should be further isolated for performance testing.


18) Define the Testing Environment

Doing a comprehensive requirement study, analyzing testing goals and defining the test objectives play a big role in defining the test environment. Along with this, testing teams should also take into consideration logical and physical production architecture, must identify the software, hardware, and network considerations, and compare the test and production environment when defining the testing environment needed.


19) Focus on Test Reports

Test design and test execution are essential components of good performance testing but to understand which tests have been effective, which need to be reprioritized and which ones need to be executed again testing teams must focus on test reports. These reports should be systematically consolidated and analyzed and the test results should be shared, to communicate the results of the application behavior to all the invested stakeholders.


20) Monitoring and Alerts

To ensure continuous peak performance, testing teams have to set up alert notifications that can intimate the right stakeholders if load times fall below normal or in the event of any other issue. This ensures proactive resolution of performance bottlenecks and guarantees good end user experience.

Wednesday, August 17, 2022

The Three Amigos

The 3 Amigos is a method where Dev, BA and QA Come Together!

Did you know?

Amigos is a word mainly used in Spanish speaking areas and is used to address or refer to a Friend. So is the friendly concept of The 3 Amigos in Agile with multiple benefits!

Three amigos refers to the primary perspectives to examine an increment of work before, during, and after development.  Those perspectives are:

  1. Business Analyst – What problem are we trying to solve?
    The Business Analyst makes sure that everyone in the team has the same understanding and expectation from the User Stories.
  2. Developer – How might we build a solution to solve that problem?
    The developers discuss their understanding of the requirements and what it takes to build the Increment.
    Since the health of the software is always measured by its high-quality standards, the quality assurance team elaborates on the functional and non-functional aspects of the software increment and details out the test cases identified to test the Increment.
  3. Test Analyst/Quality Analyst/Software Tester – What about this, what could possibly happen
    The Test and other team members help in enriching the test cases by finding edge cases and missing scenarios. They also make sure that all the Acceptance Criteria are met by the test cases.

By sharing the different perspectives on a project, the Three Amigos can raise their own concerns and discuss answers in real time.

There are many ways to organize these meetings, and sometimes more than three people participate. The more perspectives in the meeting, the more gaps the organization can fill.

The 3 Amigos helps communication between the disciplines and promotes understanding of:

  • Collaborative Requirements – What problem are we trying to solve
  • Ready for Development Consensus – How might we build a solution to solve that problem
  • Acceptance for Definition of Done – What is needed to get the story into “Done”

Failure to conduct the Three Amigos meeting in Agile could cause each team member to have mixed or different perceptions of the project at hand. This is why the business analyst, developer and QA must collaborate and examine the product development through the lens of what’s important to their customers and business.

Benefits of Three Amigo’s Approach

The 3 Amigos’ Strategy can have a massive impact on the effectiveness both individually and as a team, and on the quality and maintainability of your Scrum projects, increasing your team’s agility, adaptability and innovation. Embedding such strategy into your agile process leads to continuous improvement and embracing the most important values and principles of the Agile Manifesto and likely yields the following benefits.

  • Sharing and building an understanding of the SDLC
  • Collaboration in sprint meetings and sprint reviews
  • Identifies confusion and misunderstandings early, allowing for faster delivery
  • Ensures developers, as a team, discuss the increment of work needed
  • Helps go over the acceptance criteria and other attributes
#TheThreeAmigos #Agile #Amigos #Developer #Tester #BusinessAnalyst

Tuesday, December 28, 2021

Zephyr Test Management

Zephyr is an extension for JIRA. It is a native application that exists in JIRA and brings quality test management capabilities to any JIRA project. When Zephyr is used with JIRA, the test can be created, viewed in any JIRA project, and executed immediately or as part of a testing cycle that may be linked to other issues. The detailed testing metrics can be tracked via customizable Zephyr gadgets. Zephyr is designed to streamline and enhance your test management workflow. Whether you're looking for custom dashboards, detailed reports or in depth analytics data Zephyr is there to support you. 


All teams work differently. It’s important to find a test management solution that best fits your needs. Whether you’re Agile or Waterfall, or somewhere in-between, Zephyr test management solutions support development natively on Jira as well as securely on-premises.

Zephyr is divided based on three capability. An organization can choose between three world-class solutions and find what’s right for your size and complexity:

Quick start your testing in Jira

Small, Agile Teams
  • Test design
  • Test executions
  • Automation and integration with BDD and CI tools
  • Single-project reporting


Advance your testing in Jira

Mid-Size, Growing Teams
  • Reusability-at-scale features
  • Lightweight test planning
  • Automation and integration with BDD and CI tools
  • Cross-project reporting


Achieve continuous testing agility in a standalone solution

Mid-Large, Complex Teams
  • Bi-directional Jira integration
  • End-to-end traceability
  • Enterprise-grade test planning and auditing
  • Flexible support for third-party automation frameworks
  • Legacy ALM migration path and transition plan
  • Premium enterprise support

Zephyr provides multiple deployment options:

  • Zephyr for JIRA Cloud
  • Zephyr for JIRA Server
  • Zephyr for JIRA Data Center

Features of Zephyr for JIRA
  • Native to JIRA allowing users to test right inside JIRA
  • Testing is integrated into the project cycles and it enables you to track software quality and make empowered go/no-go decisions.
  • Create, Plan, and Execute Tests
  • Create, view, and modify test steps and attachments for individual tests. Build test execution cycles, execute the tests, and link defects to specific tests.
  • Track Quality Metrics
  • Zephyr provides easy-to-use dashboard which provides testing metrics on the testing activities throughout every project.

Continuous Testing
Zephyr is designed to give you the capability to test at scale as well as operate within the CI/CD pipeline. Integration to all the popular CI/CD tools gives you the capability to trigger execution runs and collate everything that's happening as part of your test process. No other tool gives you the ability to control your capability to test continuously with such a rich feature set to help you manage the whole process.

Example:


Zephyr gives you a slick user experience coupled with a feature set that provides everything you could ever need. More than this we strive to provide the integration too the full tool set used within today's agile software development projects. That might be Jenkins, Bamboo or Team City on the CI/CD side of things. On the test automation tool front we have you well covered with support for most of the tools on the market. Needless to say we deliver close integration with the likes of TestComplete and ReadyAPI. Everything you need to connect the dots between your agile tool set.

Featured Posts