Category Archives: Thoughts

18 things to keep in mind while testing any application

In the world of software QA testing, mastering the best practices is the key to success. This article presents 18 essential tips for QA professionals. From thorough test result analysis to maximum coverage and negative scenario testing, it covers a range of critical aspects. It emphasizes the importance of dividing applications into modules, early test case preparation, and involving testers from the start. The significance of regression testing, performance testing, and thinking beyond requirements is highlighted. Effective communication, prioritization, and continual learning round out the best practices, ensuring QA testers excel in their field and deliver high-quality software products.

1) Thorough Analysis of the Test Results:
As a software QA testing professional, it is crucial to go beyond reporting bugs and provide a comprehensive analysis of the test results. Error logs can reveal valuable insights into the nature and root causes of defects. By including this analysis in the bug report, testers make it easier for developers to understand and address the underlying issues. This not only expedites the bug-fixing process but also fosters effective collaboration between testers and developers, leading to improved software quality. problem.

2) Attain Maximum Coverage:
While achieving 100% test coverage may be impractical, testers should strive to cover as many combinations and scenarios as possible. By employing a systematic and strategic approach, testers can maximize test coverage. This involves identifying key functionalities, critical paths, and representative data sets to ensure that the most critical aspects of the software are thoroughly tested. Additionally, testers can leverage techniques such as equivalence partitioning and boundary value analysis to optimize coverage and prioritize test cases.

3) Divide and Conquer:
To achieve maximum test coverage, it is beneficial to divide the application into smaller modules and write separate test cases for each module. This approach facilitates focused and detailed testing of individual components, ensuring comprehensive coverage across the entire system. By breaking down the testing effort into manageable units, testers can effectively address complexities, identify defects, and maintain a high level of quality throughout the software development lifecycle.

4) Emphasize Negative Scenarios:
In addition to testing positive scenarios, it is crucial to include test cases for negative scenarios or invalid conditions. This ensures that the software behaves correctly when exposed to unexpected inputs or error-prone situations. By deliberately testing edge cases, boundary conditions, and invalid inputs, testers can validate the system’s robustness, error-handling capabilities, and adherence to specifications. Thorough negative testing helps uncover vulnerabilities and ensures that the software remains stable, secure, and user-friendly in all scenarios.

5) The Right Mindset
Approach QA testing with the mindset of discovering defects and identifying areas for improvement. Instead of assuming the software is defect-free, maintain a critical perspective and actively seek out potential bugs. This mindset encourages a thorough examination of the software and motivates testers to conduct comprehensive tests, resulting in higher-quality products. A vigilant and inquisitive approach to testing helps uncover issues that may have otherwise gone unnoticed, promoting a culture of continuous improvement and defect prevention.

6) Early Test Cases preparation :
To optimize the testing process, it is beneficial to start test case preparation during the analysis and design phase. Involving testers early on enables a better understanding of the requirements and facilitates the creation of comprehensive test cases. By actively participating in requirements discussions, testers can gain insights into the system’s intended functionality, identify potential test scenarios, and ensure that test cases align with the expected outcomes. Early test case preparation contributes to improved test coverage and enhances the overall effectiveness of the testing effort.

7) Ready with Test Cases before the completion of development :
Rather than waiting for the completion of development, testers should aim to have test cases ready in advance. Providing developers with test cases during the development process allows them to analyze and validate their work against the expected outcomes. This proactive approach enables early defect detection, smoother collaboration between testers and developers, and reduces rework efforts. It also enhances the overall development process by ensuring that quality considerations are integrated from the outset.

8) Address “Regression” effectively:
Regression testing plays a critical role in ensuring that modifications or enhancements to the software do not introduce new defects or cause regressions in existing functionality. By including regression test steps within test cases, testers can perform quick regression checks during system testing itself. This approach saves time and effort by identifying and addressing regression issues early on, minimizing the risk of functional regression and maintaining the stability of the software.

9) Test the “Performance”:
For applications where response time is crucial, thorough performance testing is essential. Testers should design and execute performance tests to assess the application’s behavior under various load conditions, stress scenarios, and unfavorable environments. By simulating realistic workloads and analyzing performance metrics, such as response times, resource utilization, and scalability, testers can identify performance bottlenecks, optimize system performance, and ensure a seamless user experience.

10) Leave full spectrum Testing to QA:
To maintain objectivity and ensure a fresh perspective, it is generally advisable for testers not to test the code they have developed themselves. When individuals test their own code, there is a higher likelihood of overlooking mistakes or biases due to familiarity. Instead, encourage collaboration among developers and testers, enabling independent verification and validation of the software. This approach promotes rigorous testing and helps identify defects that may have been overlooked by the developer.

11) Think beyond Requirements:
While testing based on specified requirements is essential, testers should also explore scenarios that may not be explicitly mentioned in the documentation. By thinking creatively and applying domain knowledge, testers can identify potential risks, edge cases, and scenarios that may not have been considered during requirements gathering. This broader approach to testing helps uncover hidden defects, enhances software robustness, and contributes to a more comprehensive testing strategy.

12) Leverage Past Experiences and Data:
Learning from past experiences is invaluable in software QA testing. Testers can refer to historical data, statistics, graphs, and previous test results to identify defect-prone areas, determine common patterns, and allocate testing efforts accordingly. By leveraging this knowledge, testers can focus on critical areas, allocate resources effectively, and adapt their testing approach based on past trends and insights. This data-driven approach enhances the efficiency and effectiveness of the testing process.

13) Continuous Learning:
The field of software QA testing is continuously evolving, and testers should actively seek opportunities for learning and skill development. Throughout the testing process, testers encounter new terms, concepts, and technologies. Keeping a record of these learnings and documenting them in a personal knowledge base helps build a repository of valuable insights. These learnings can contribute to the preparation of test closure reports, facilitate knowledge sharing, and ensure continuous improvement in testing practices.

14) Early Involvement of the Testing team:
To achieve optimal results, it is advisable to involve testers from the early stages of the software development lifecycle. Engaging testers during requirements analysis and design phases allows them to gain a deep understanding of the application’s functional and non-functional aspects. This early involvement facilitates proactive test planning, identification of potential testing challenges, and the formulation of effective testing strategies. By participating in requirements discussions and design reviews, testers can contribute their expertise and ensure the development process is aligned with quality goals.

15) Share Best Practices:
To foster a culture of excellence and continuous improvement, testers should share their best practices with other QA testing professionals. By sharing insights, techniques, and lessons learned, testers can contribute to the growth and development of the testing community. This exchange of knowledge promotes collaboration, inspires innovation, and ensures that industry-wide best practices are shared and implemented consistently.

16) Effective Communication and Collaboration:
Testers should actively engage in discussions and maintain effective communication with developers, business analysts, and other stakeholders. Direct interaction helps clarify requirements, resolve conflicts, and ensure that everyone is on the same page regarding the expected behavior of the software. When conflicts or misunderstandings arise, timely face-to-face discussions or written communications (such as emails) should be used to address and resolve them. Effective communication fosters collaboration, reduces misunderstandings, and ensures a shared understanding of quality objectives.

17) Prioritization and Risk Management:
To optimize testing efforts, testers should prioritize their work based on risk analysis and project constraints. By identifying critical functionalities, high-risk areas, and potential showstoppers, testers can allocate their resources effectively. Prioritization ensures that testing efforts are focused on the most critical areas, reduces the risk of major defects slipping through, and facilitates risk-based decision-making throughout the project lifecycle..

18) Effective Bug Reporting:
Writing clear, concise, and detailed bug reports is crucial for effective communication between testers and developers. A well-crafted bug report includes not only the symptoms and steps to reproduce the bug but also provides the impact of the bug on the application. Testers should analyze the bug, include possible causes, and provide any additional information that aids in reproducing and fixing the issue. Well-documented bug reports expedite the debugging process, enable efficient collaboration between testers and developers, and ensure that issues are resolved accurately and promptly.

By implementing these practices, software QA testing professionals can enhance their effectiveness, improve the overall quality of the software, and contribute to the success of projects.

 

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
ISQTB Certification

Tips for ISTQB Certification Exam

ISQTB CertificationWhen we think of certifications, most of us think that “Do I really need a certification?”, “Is it worth putting the labour and money(a good amount most of the times) for just a piece of paper from some XYZ organisation?” , “Will it help me at a later stage of my career?” These thoughts flood sometimes our brains so much and leave us so confused that we take a lot of time only to decide that whether we should go for a certification or not, leave the preparation part aside.

All of us during our careers might have surely felt the need of certification in some way or the other. The need may be as simple as gaining more knowledge or as complecated as the determination to become one of the best certified resources available in the field.

Continue reading Tips for ISTQB Certification Exam

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
McCarthy,Steve Jobs, Dennis Ritchie

Tribute: Geekdom Loses Three Greatest Minds In A Single Month.

McCarthy,Steve Jobs, Dennis RitchieI am not sure if it is an unfortunate coincidence or a sadistic prank by fate that three popular figures of the IT industry who died this month were all pioneers in their respective fields. If you don’t know who Steve Jobs is, I may be able to understand but you would have to be living under a rock to not know of his sad demise. While Steve Jobs died, after a long fight with pancreatic cancer, on 5th October 2011, exactly 1 week later a greater legend breathed his last.  Dennis Ritchie the creator of Unix and the C programming language was found dead in his home on 12th October 2011.  As if the loss to the digital world wasn’t devastating enough, 12 days later, on 24th October, John McCarthy, the inventor of LISP and the  concept of Artificial Intelligence, logged out of the world.

Continue reading Tribute: Geekdom Loses Three Greatest Minds In A Single Month.

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Aren’t we blessed ???

It was the night of 20th September 2011 and I was returning home after attending a party at a friend’s place in Saheed Nagar. My friend’s sister got a job in TCS which made him invite some of the close friends in our group for a party at their home only. My phone started ringing right from the evening.After at least 15 calls from different friends and explaining  them that I had some work to finish,finally I left office at around 8 o’clock. All of my friends already reached and were having a great time. By the time the food was ready we started gossipping and rewinding the happy college days. Finally got the call from aunty “Dinner is Ready”. The food was prepared by my friend’s mom and sister and as it was utterly delicious,all of us had a nice dinner filled up till the neck.After a small chat when we decided to leave,it started raining heavily. At the request by uncle and Manas(my friend) few of us decided to wait till the rain stopped or at least slowed down a bit.Few lwft as they used to stay nearby.

Continue reading Aren’t we blessed ???

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Blind Bard

A day @ Bhima Bhoi Blind School

Blind Bard
Blind Singer

It was the evening of 1st July 2011,when the daily official routine was heading towards an end,I just thought of checking my GPS hoping for a message from Soumyanwesh regarding salary. I was even happier to discover the message count showing “1”. But it was not a message from Soumyanwesh,it was not a message from the Finance Department nor a message related to salary.It was a message from a Mindfirean named Asish Tripathy and was related to the “Corporate Social Responsibility” what we term as CSR in short.

Continue reading A day @ Bhima Bhoi Blind School

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

The Customer is Always Right?

Is the customer always right? And if he is not, what do you do? One of our Software Development Leads faced this dilemma in almost an “Arjuna moment”..

(In the epic Mahabharata, as Arjuna stood ready for battle facing an army composed of his own family members, he wondered whether it was right for him to fight the battle at all. This dilemma froze his legendary skill and warrior will into non-action)
Situation Detail
(you can skip this section which has some technical details)

The client wants to make a mobile-compatible version of their web site. The web site is an online e-commerce site, developed using Adobe ColdFusion server technology.

Client priority is to get the mobile site out as quickly as possible. The thought process is to reuse as much as possible ColdFusion code developed for main web site, while generating a screen-compatible and down-sized mobile “face”. The strategy he suggested was to use front-end CSS scripts that would be added for mobile access only. Pages would be processed and downloaded exactly as the main web site. Then the additional CSS would also be downloaded on detection that page was being accessed from mobile. This CSS would do front-end browser-level manipulation (such as menu manipulation, image size and so on) to give an entirely different look and feel to pages, suited more to mobile screens.

While client wanted to follow this strategy, our technical and professional opinion said otherwise. Our Lead had tried to explain to client that this was a sub-optimal approach in the long run. Entire pages being downloaded and then “mobilized” using front-end CSS was essentially a trick with high bandwidth impact and soaring expense on data plans.

The real solution would be to restructure the application to move logic to sets of ColdFusion Components (CFCs) and use those from ColdFusion. ColdFusion code would be separate for mobile and normal web pages, and site redefinition should be done to evolve mobile-relevant functionality and pages. In short, a proper path to a mobile site.

Summary
You have a situation where client wants to follow technical path X, which has disadvantages. And there is a longer path Y, which is the correct technical approach. What do we do? Should we do X just because client says so? Or should we do Y because that is the “right” way to do it?

Opinion
Clients make choices based on a wider set of thoughts and priorities, some of which we may not be aware of. There may be a trade show the client wants to attend, or venture capitalist they need to meet, and they need a “quick and dirty” mobile-enabled site rather than a true solution. Maybe the client has thoughts on how a split code-base may cause maintenance and consistency issues, in spite of code restructuring for logic centralization. Maybe the client is not savvy enough to understand the technical aspects of both solutions. Maybe the client is simply not smart enough. Many possibilities exist.

Although we work in 1’s and 0’s, the real world is not binary. There is no black and no white, it is a range of greys. There is no right and no wrong, it is a range of possibilities.

A client’s choice is not necessarily wrong just because it is not the technically superior solution – there may be aspects we are not aware of. When you understand those aspects, perhaps you would make the same choice in his shoes. Perhaps the same choice is correct in his context, even if it is wrong in isolation or in our opinion. And finally, the client may make a wrong choice – after all every human (including us) is born with the right to make wrong choices.

Confusion
As self-respecting professionals, following something blindly is, to say the least, a criminal sin. Client or no client, we need to know and express our opinion based on facts and expertise. We cannot accept day as night just because client says so. Doesn’t matter if he is the client, if something is wrong it is wrong. We are professionals, not clerical staff to follow orders blindly.

However, at the same time, we do have to accept client choices. This is a simple and fundamental truth. We do not work in isolation. We work for clients. Clients pay for work with their hard-earned money, and if a client makes a choice we do not agree with or understand, we still have to follow the client decision.

So what does this mean, how can you do both?? How can we preserve our professional integrity and yet accept something that goes against our professional opinion?

The answer is simple.

Clarity
Before choices are made, our duty is to advise the client, to update him with our professional advice and informed opinion on negatives and positives of available options.

Once a choice is made, our duty is to do. Our duty is to align and focus and do as per client choice, even when we professionally disagree with that choice.

Who gets to make the choice? The client.

Why? Not because he is paying and is the client – that is an immature and misdirected thought process. But simply because the work is being done for him, and only he knows the entirety and facets of the situation and conflicting priorities, and can make the choice that is right or wrong for what he is trying to achieve.

Bottomline
The customer is NOT always right, and it is our job to express that opinion to customers openly instead of blindly accepting whatever customers say. But it is also our job to respect customer decisions once they are made.
What do you think?

(This incident and thoughts reflect some opinions, beliefs and a way of looking at things. I hope sharing these will lead to debate and discussion)

 

Author – Chinmoy Panda

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Dot Com Bubble

Dot Com Bubble 2.0? An Analysis

Dot CoDot Com Bubblem Bubble 2.0?

“Two days back, when I opened Twitter to check the topics that are trending, a piece of news struck me: “Deal of the day site Groupon files for IPO”. When I continued to read, I gathered the following facts: The two and a half years old e-commerce company is valued at 20 Billion Dollars. Though the revenues saw a surge, the company spends more and more to get it, the company has never seen any profits ever, its balance sheet shows a net loss of 400 Million Dollars last year and the first quarter results this year too showed a loss.”

Does anything look unusual here? I guess it does, looks like history is going to be repeated.

Continue reading Dot Com Bubble 2.0? An Analysis

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Peer pressure vs beer pressure

Much has been written about the effects of peer pressure – both beneficial and harmful. The nadir of peer pressure was of course depicted by Chatur (Silencer) in the movie “3 Idiots” – a case of constant comparison and competition. Unfortunately, not enough research has been conducted on beer pressure – the pressure felt subsequent to beer intake. This has caused a large leaking hole in our body of knowledge on these two types of pressure, leaving youth of the world clueless about which pressure to adopt.Let us compare these two so that we may choose between them as informed adults. I strongly feel beer pressure is the right pressure, and my fair and unbiased arguments will hopefully prove the same.The Big Fight

1. Peer pressure leads to fear, beer pressure leads to cheer
Constant comparison causes anxiety and fear of various kinds to build up inside individuals. This anxiety can affect the quality of life and work of even the most saintly person. On the other hand, beer pressure results in instant and all-forgiving, all-forgetting cheer that warms up the soul and fires up the mind.2. Peer pressure causes bottling up, beer pressure results from un-bottling
Those who choose peer pressure are always looking over their shoulder to look at who is drawing close, as if the race can have only one winner. Bottled emotions cause scarred lives and incomplete human beings. The very first act in beer pressure, on the other hand, is un-bottling, a magnificent celebration of the release of human potential.

3. Peer pressure causes loneliness, beer pressure causes belonging
When you choose peer pressure, you are alone – every friend is a peer is an enemy. When you undergo beer pressure, you know you have a purpose, a mission, and you belong to a worldwide movement called “No Bottle Left Unopened” – all in it together.

4. Peer pressure is a complex path, beer pressure is a simple path
Complex is the person who cannot get away from comparison. Peer pressure takes you down a complicated path built out of competition and deceit, slyness and jealousy, envy and hatred. Beer pressure generally creates for you a straight and simple path, generally to the nearest washroom.

5. Peer pressure makes you mad, beer pressure makes you glad
Peer pressure = can’t get badder
Beer pressure = gladder in the bladder
Mathematical justice for poetic art.

6. Peer pressure implies hierarchy, beer pressure means equality
Comparison inevitably assumes that there is an underlying hierarchy of superiority and inferiority, of humans stacked on an unequal ladder. Beer pressure assumes nothing and believes in fundamental equality of humankind. You build an equal world glass by glass.

7. Peer pressure is measured in numbers, beer pressure is measured in decibels
Peer pressure is based on comparison of numbers. Exam scores, weights lifted, goals scored. Numbers don’t have personality. Numbers are drab. Numbers are black and white. Decibels, on the other hand, are colorful. Beer pressure is measured in decibels. Decibels come in flamboyant red and flaming orange and fantastic indigo and fabulous turquoise and f… perhaps we should stop here.

8. Peer pressure kills, beer pressure fills
No explanation required.

9. Peer pressure is free, beer pressure costs money
True. But free things are not necessarily good things. And beer pressure does invariably cause free speech, so there.

10. Peer pressure is driven by expectation, beer pressure is driven by desire
You truly shine when the person inside you can come out and shine. Peer pressure hides your true self, since you act as peers cause you to act. Your life is driven by others, from outside. When you enjoy beer pressure, your life is driven by you, from inside. That is when you truly shine.

11. Peer pressure means a small view of life, beer pressure encompasses the universe
Restricting our world view to our immediate others – our peers – is such a limited view of this wonderful world we live in. Break those barriers. Adopt beer pressure and you will feel at one with the universe – vasudeva kutumbakkan – which may someday lead to world peace. It is our duty to try.

12. Peer pressure elevates performance, beer pressure elevates
There is an argument that peer pressure can also be healthy competition while beer pressure is unhealthy consumption. I agree that peer pressure can elevate performance under the right laboratory conditions. However, my learned friends forget that beer pressure elevates – period. Doesn’t matter what – performance, life, friends, family, memory, mood, work – beer pressure elevates all. Indeed, there are frequent instances of elevation leading further to levitation.

And the winner is…

Evaluating with a fair mind the dozen arguments presented above, it is crystal-clear that beer pressure wins over peer pressure. Peer pressure needs to be banned and banished, and a movement has to begin for beer pressure to be made mandatory.

Some readers will oppose this conclusion even after agreeing with above arguments – submitting unconsciously to the very peer pressure they need to oppose. However, please understand the simple significance of this matter. The future of world history depends on what we do today. Let us build a culture that wipes out peer pressure in favor of beer pressure.

Relevance to Software and IT Industry

Leaders and managers in software companies especially, have to build maturity and responsibility in their software engineering teams with young people who have just been liberated from years of peer pressure. This is a tremendous challenge not to be taken lightly even slightly. There is no better path to this goal than beer pressure. The way to build team spirit is to do it with spirit.

I hope all leaders recognize the dangers of peer pressure, and promise not to use peer pressure to create differences among people in pursuit of “better performance”. Instead, use beer pressure to bind people together. Performance is science, togetherness is magic.

 

Peer pressure is for losers. Peer pressure is un-cool. Cool is the person who is incomparable, for s/he is peerless. Be yourself.

Down with peer pressure. Hail beer pressure.
Cheers 😉

Author – Chinmoy Panda

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •