Thursday 12 March 2015

What really is thought leadership?

Most of us would like to be the future QA Thought leaders. Even before you think and step in that direction let us read an interesting blog by Rajini "What really is thought leadership?"

A thought leader may or may not always drive knowledge sharing but is certainly in a very good position to do so, given the access to knowledge he has. This person plays an important role in an organization in helping drive change and bring in newer practices to promote innovation. He stays in touch with the latest.....Continue reading athttp://www.qainfotech.com/blog/2015/03/what-really-is-thought-leadership/

We also have a professional LinkedIn  group of QA Thought Leaders, join us now- https://www.linkedin.com/groups/QA-Thought-Leaders-3936004




Monday 8 September 2014

Creating Business Value through matured QA and testing practices:

Today, IT industries are growing at a very fast pace so competition is increasing day by day. Stakeholders demand high quality products in lesser price and time. So, QA needs to focus not only to improve the quality of product but also on business values and delivery time to survive in industry.

QA Testing needs to track 'Business Metrics' and test the product with business focus that would help in increasing the quality of product and detecting the critical business process defects.

Test the product from the end user's point of view that would make the product user friendly and increase the demand of product.

It is always helpful for QA to understand its client's business process and their product's requirements completely in enhancing the quality of product at reduced cost and lesser time. 'Business Driven QA' approach is very successful that's why, 'Testing' phase is added into 'Software Life cycle' and outcome of these software are depended on success of 'Testing' phase.

Following are few of the examples to create Business Value with mature QA and testing practices that can benefit the client as well as their end users :-

1. Test with a Business Focus: A logical understanding by the QA Testing teams of the business procedure that the application would hold, enables them to simply notice serious business process bugs.
2. Test from an end-user’s perspective: Digging an application by following the end – user scenarios in mind helps the QA team bring an improved skill post to the final output.
3. Map Business Impact:  In a case, where test plan are based on the criticality of business requirements and analysis, optimal QA coverage is aimed with negligible risk.
4. Measure Business Metrics: Now-a-days, it is enormously significant to trail business program metrics as an alternative of just testing program metrics as its helps us enumerate and be in touch with the business value resulting from a QA program enabling QA to give good reason for its reliability.
5. Collaborative Testing: With the rising acceptance of Agile and progressive towards realizing DevOps vision, the testing team needs to move center from bug discovery to early and nonstop feedback and contributions to improving quality.
6. Continuous Test Automation: Testing near the beginning and endlessly also necessitates using a broad range of tools (commercial, in-house and open source) and scripting languages.
7. Visual Modeling: Need for synched and that too everyday collaboration with program team also comes the need to use visual modeling tools.
8. Mission Risk Mitigation: This mission is addressing the variety of risk and covering those risks based on thorough analysis of metrics.


A Business driven test program capture business metrics which ensure businesses to measure the success of test programs against business goals. To achieve this, test team gets involved in the very initial phases of project life cycle to understand the exact business process.

Whereas test program metrics of a traditional project covers normal testing life cycle like quality, productivity etc. It does not cover any detail regarding business impact of QA. Here, QA team comes into later phases of project usually during design or testing phase.

Here are some methods that can help in creating business value with QA practices:
1. Need to understand the exact business requirements/QA process which would be supported by the application being tested.

2. Need to test the application with an end user perspective which would help to deliver better quality product.

3. The tests in the test plan should be based on the criticality of the business requirements.

4. Need to create business program metrics along with testing program metrics. That would help us to quantify the business value derived from QA program.

To deliver a better quality work to the client is as much important as delivering best quality product to the end user. To provide an effective quality of testing and QA implementation, the company needs to have QA processes in place which also helps in keeping transparency in work status and reports in a sophisticated manner. QA manager should commit the upcoming challenges and should deliver the daily/final reports at the right time so as to maintain the client's trust.

As a QA team, all the deliverables should be as per the client's recommendations such as the Test strategies, Testing Tools that client favors for, ROI reports of automation, having bandwidth to provide extra efforts at the time of signing of the iteration or any other project risks.

Summary:
Today, IT industries are growing at a very fast pace so competition is increasing day by day. Stakeholders demand high quality products in lesser price and time. So, QA needs to focus not only to improve the quality of product but also on business values and delivery time to survive in industry.To provide an effective quality of testing and QA implementation, the company needs to have QA processes in place which also helps in keeping transparency in work status and reports in a sophisticated manner.

Keywords:  QA Testing, QA Process

Author:
Knowledge Sharing Team at QA InfoTech is responsible for research on new tools & technologies for effective software testing services across all industry verticals. QA InfoTech (an ISO 9001:2008 & CMMI III certified) is one of the leading Quality assurance Testing Companies with five testing “Centers of Excellence” in the United States and India.  It offers end to endqa testing services.
Links:

http://www.qainfotech.com/qa_process_management_services.html


Wednesday 14 May 2014

What are the core objectives and goals that you would like to set for the next generation to become a better tester and emerge as a QA Thought Leader. Share your ideas based on your experience.

Software testing requires excellent skills, and testers should be willing to expand their knowledge and work on improving their testing strategies. Below i have listed goals and objectives that i think should be set for the next generation to become a better tester and emerge as a QA Thought Leader. To become a good tester, the tester should think out of the box and explore the software and applications which helps to develop the attitude of the software tester. While testing the applications the tester should think from user's perspective since the bugs need to be fixed before the application reaches the end user. It's important to work with an end user's mindset to get the best output in finding bugs.

The tester should always keep in mind that quality is more important than quantity. Finding the most critical and valuable bugs is more important than number of bugs in an application. Also, the composition of bugs is equally important which allows the reported bugs to be fixed as quickly as possible. In addition to this, the written communication skills should also be excellent to ensure 'correct and complete composition of bugs', 'test cases' etc. While reporting the bugs, the tester should attach screenshots, number of instances found, operating system and other environment details, devices etc. without which the bug is useless.


The tester should question everything and learn form own mistakes. The most critical parts of the application should be prioritized while testing. The tester should always be open for the feedback, be it positive or negative. The tester's knowledge should be up to date and he should be aware of the latest and upcoming testing technologies in the industry. He should attend software testing conferences and classes to gain knowledge and be up to date.

Testing is something which requires a different attitude and a destructive approach with ability to think out of the box. A good approach in emerging as a tester with good testing skills keep yourself updated with the latest trends and technology that help in the overall criteria of setting goals and objectives. When a tester is free by thoughts and does not perform conventional approach of testing then goals are set by the tester.

Below are some points based on my experience that I would like to share to become a better tester:
- Testing must be done for quality over quantity?
- A good tester must always learn to prioritize.
- Don't be humble with software and think destructive mind set.
- Bug reports generated must continuously increase in context of effectiveness.
- To gain excellence in this field tester should be passionate to learn and find new ways and seek every possible opportunity.
- A good tester must be familiar with the software development process.
- Must be able to increase productivity and promote teamwork.
- One should possess diplomatic skills to promote improvements in QA processes.
- Have an ability to withstand pressures and provide appropriate feedback to managers and seniors when there are issues with processes/quality/schedules and risk.


A tester should have ability to classify short term and long-term goals with sense of completing them with bound time frame. Keeping out of the box thinking and desire to help other by going out of the way can make you project as a good leader. Tester should always be specific, skilled and should have the quality to nurture his/her skills at any point of time. QA should have the ability to understand that objectives are real task and they should not have that fear of insecurity and failure, as fear stops the growth and hampers work as well. So goals and objectives should have the clarity of thoughts and will to create a path of success on your own which others will take as an example to work for.

Monday 20 January 2014

Ship quickly may Ship bugs, do you agree with this?

It is rightly said that ‘Quick response is much more appreciated than a delayed response’. The statement is somewhat true that deliverables shipped too early before the timed deadline may contain bugs, however the uncertainty of finding a bug later depends entirely on the quality/skill set of the testers, how effective was the QA plan and/or policies followed by them, which include internal reviewers and QA engineers appointed and responsible for reviewing completed deliverables and sign-off. And if QA tasks are completed before and/or on time, covering the entire product as expected, then this cannot be considered as a negative point.
QA objective is to ensure that the requirements are met and the project's needs are being matched to what the client desires. QA team when involved in the development process from the onset of a project through maintenance, they know which area to focus more, and which scenarios to apply. Also, there can be the case when signing off a product too quickly leaves a positive impact on the client and the customers. This stands true when client is also expecting QA sign off as soon as possible so that they can start with succeeding milestones as well.

Ship quickly may ship bugs as it's easy to commit mistakes if time is less for thorough testing. It also depends on the criticality of  the product and how you handle your testing efforts. There is always a possibility that your product is vulnerable to bugs if you if don't have enough time for planning a testing strategy.There are sometimes certain deadlines for the product delivery and a tester often doesn't get much time to test the application efficiently. So, it is a sure responsibility of a tester to deliver a quality product to the customer in that given time or he can ask the client to extend the product delivery time. But if the tester is not confident about the quality of testing he has performed, he has surely left some bugs in the application. So it is better to the complete the testing by extending the working hours or can ask the client to extend the delivery date of the product so that he gain the confidence about the testing he has done and give a quality product to the customer.


Sometimes due to shortage of time, testers try to complete the testing in hurry and eventually leaving bugs in the deliverable. Due to less time given for testing, it is hard for the testers to think of out of box or negative scenarios or in some cases they may even miss some positive scenarios. A tester should have enough time to understand the requirements and test the product so as to provide a quality end product.


More on this at http://www.qainfotech.com/

Tuesday 13 August 2013

Software Testing

Good QA team needs a proper software staging environment for testing, If you agree please share your thoughts.

Yes, I completely agree with this statement because the test environment & conditions which we get during the testing phase can never actually matches up with the production environment. Especially the test data which we input in the application for testing is kind of constrained. So for End to End testing it is must for QA to get a environment we need a environment which is real imitation of production and hence here is why concept of staging environment came in to limelight.

There are numerous issues with the content in QA environment due to limited set of data which gets resolved by its own in the production environment after the deployment. But what if doesn’t gets resolved? What if it was the functional issue of application and not due to limited data? Being a tester one can’t rely on assumption. So it is must do task for a QA to test the application in proper staging environment before it gets deployed to the production.

As a Good QA team, we always tries to provide the best experience to customer by performing quality testing with what we have and it is rarely possible that what we have matches with production. While 'Staging Environment' is the exact replica of 'Production Environment'. Staging environment is separated from development server. It means, 'Staging Environment' allows the user to test the application in 'Production Environment' without providing access of application for customers. So QA can find bugs, performance issues, platform related issues and many other critical issues on 'Staging Environment' before the final product is pushed for the customers. QA team would be more confident that any critical issues or differences between dev server and final product, does not exists.

Staging environment is a replica of production environment i.e. the configuration of staging is same as that of production. Once the build pass testing on QA tier it needs to be tested on a configuration that is similar to production. Once QA team perform testing on staging environment and think that build is a production candidate they ask users (or business analysts) to perform UAT on the build to verify that everything is working fine. If staging environment does not exist then many issues can go into production without anyone's knowledge and hence can cost more in the later stages.

QA or software staging environment allows testing the software without closing down development work.  If development is in progress on the same environment it would be difficult for both the teams (dev and QA) to keep up with the current situation.  One person may break the software that has been tested while another person could be trying to test   .  Without the two being separate there is no way to do proper testing.  So, good QA team needs a proper software staging environment for testing to follow the organized approach.

"Testing on a staging environment provides a more precise measure of performance capacity and functional accuracy. As Web applications become more mission-critical for end-users, it becomes more and more important to test on environments that exactly imitate production because it's production where customers use your application. Any defect found in production is a fail to notice or an escape and it is not acceptable also from business point of view. Any defects experienced by customers in production negatively impact your application's and company's reputation.
Customers prefer not to be amazed. No one wants their system to go down or to go really slow or crash abruptly. As workers, we don't want to be negatively impacted at all by any kind of software up gradations. As a professionals, we want software upgrades to be flawless, barely discernible and a non-event. The only way to make sure that your software doesn't stop or obstruct with your professional users is to test on a staging environment.
As a company, it's attractive to go around creating a staging environment for per testing of production. However, when producing mission-critical software of any kind, the staging environment is essential to ongoing success.
"

Tuesday 18 June 2013

Software Testing


What do you think are the 3 most important Software Testing skills and why do you think so.

In today’s world Software Testing industry is growing at a very rapid pace. The number of people pursuing software testing as a career has grown immensely over the years. The need to deliver quality products has become the foremost goal of the software testing companies. So in order to achieve this, need of good software testers is tremendous.
Hence the 3 most important skills which a good software tester must possess would be:

1. Out of the Box thinkers: A good software tester should be able to create multiple what if scenarios. S/He should be able to put him/herself in customer’s shoes and apply all the scenarios in the workflow of the application.

2. Excellent Communication Skills: To be able to communicate the issue to the development team is the most important job of the tester. Hence every tester must possess excellent communication skill (Oral and Written both) in order to communicate the issues faced by him/her in the most effective and efficient manner.

3. Quick Learner: This is last and most important quality that a tester must have is the ability to adapt and learn quickly. The 2 applications for testing given to the tester may of completely different domains. For eg. One A Banking Website and another A Learning Management System. So tester needs to adapt himself quickly and should be able to switch quickly from banking website to a LMS.

4. Analytical Skills - An important goal of testing is to identify the hidden errors. To be an effective tester, the person must be able to analyze the given business situation and judge all the possible scenarios. He should have the capability to identify and test unfamiliar scenarios. Creating logical scenarios and validating the application under test before releasing it to production. This can be done effectively only by a person who has strong analytical skills.

5. Creativity – A person should have the out-of-the-box thinking so that s/he should exercise the system which requires one to try non-intuitive ways of accomplishing tasks. Those who are Task-oriented and receive a set of instructions and follow the given instruction every time cannot become good testers.

6. Communication Skills - Excellent communication skills are very important for reporting bugs. A tester must be able to effectively communicate his thoughts and issues encountered in the application. Arguments should be supported by facts; the language should be pragmatic rather than philosophical.

7. Ability to think out of the box, if a tester has the ability to think and apply such scenarios which are covering a vast logical area then the chances of finding defects increases.

8. Passion and Enthusiasm, as testing is a repetitive activity so sometimes it becomes very boring and tester losses its interest in finding bugs.

9. The most important skill is communication, as it is very important to communicate your findings to the developer so that it can easily understood to the developer and can fix it quickly

Friday 23 November 2012

SOFTWARE TESTING

   What are the Pros and cons of requirements-based software testing?

Requirement based software testing is testing of product based on requirements provided in requirement documents like Use Cases or 3Cs to ensure all features are developed as per the requirement or not. Test cases are created and executed based on requirements to make sure each and every requirement is covered correctly.
However, requirement based testing is not effective if requirements are not provided in detailed or defined properly. Sometimes, requirements are missed by Business Analyst and hence will not be developed and tested. Many times, real world business scenarios are not covered in requirement documents which are left undeveloped and untested.
So, requirement based testing is effective if requirements are documented properly.

In the beginning of the testing cycle, it is important to first validate the requirements and check their correctness, unambiguity, and logically and practically its consistency. In validating the requirements and verifying the build product, a requirements based testing is done. To achieve this, testers write a sets of test cases on all functionalities on the basis of the requirements outlines and provided by stakeholders.
As every coin has two sides, thereby requirement based testing has its own pros and cons, that are outlines as below:

Pros:

1) Firstly, As requirement based testing demonstrates that the software meets the requirement or not, so by this it adds value to the product/software if meets the requirement, so this leads to the building of an accurate and reliable product/software .

2) Secondly, there are always a variety of tests involved with requirement based testing like Black
Box, Integration, System, Coverage testing with which the quality is ensured

3) All the requirements are validated, if the product is build as per the requirements.

4) Logical consistency of the application is checked.

5) Acceptance of the application is marked from the stakeholders perspective.

Cons:

1) As most of the requirements are poorly defined, or even not defined as it should be, hence requirement based tests can never be better, because if the requirements are poorly defined , it would never be exact what to develop and what to test. Everything would work on guesses.

2)  As, Requirements-based testing is a black box testing. So till the application is producing the expected results, the test cases are passed. Requirement based testing is not concerned about how the results are produced, or the effects/impact it may show on other parts of application.

3) From RBT, how much a requirement is valid is not considered. No feasibility analysis for this done.

4) RBT should not be completely depended for the Pass/Fail of the application.