What is Jira backlog grooming?

What is Jira backlog grooming? It’s the process of adding important context and estimates to backlog items as well as prioritizing them. First mentioned by Mike Cohn in 2005 and later polished by Kane Mar in 2008, backlog grooming was finally added as an official scrum element in 2011.

Grooming is an open discussion between the development team and product owner. The user stories are discussed to help the team gain a better understanding of the functionality that is needed to fulfill a story. This includes design considerations, integrations, and expected user interactions.

How do you groom a story?

1.Groom the stories

  1. Remove the stories from the backlog that are no longer needed.
  2. Clarify the stories by elaboration the conditions of satisfaction as required.
  3. Estimate the stories with the best known facts at that time.
  4. Adjust the priority of the story with the permission of the Product Owner.

What is the difference between grooming and refinement?

Grooming or refinement? Meeting or not? The term grooming has been discouraged since the word has bad connotations, but it is still widely used. Backlog refinement stands for the same thing, which is, keeping the backlog up to date and getting backlog items ready for upcoming sprints.

What is the difference between sprint planning and grooming?

Image result

While the sprint planning meeting is an official scrum meeting, there is no compulsion to have a separate meeting to groom the backlog. … In this type of grooming session, the product owner acts as a facilitator of the grooming meeting.

Backlog grooming is the process of refining outstanding user stories or backlog items, breaking big items into smaller tasks and prioritizing those which need to be tackled first. Together, this helps shape the next sprint session’s objectives.

How to uninstall Jenkins from Mac OS?

How to uninstall Jenkins from Mac OS?

If you have installed Jenkins using homebrew and if you want to uninstall it completely, this is how you do it:

brew uninstall jenkins --force
brew cleanup

If you have installed it as a package from Jenkins.io follow this post.

How to uninstall Jenkins from MAC

I installed Jenkins as pkgfrom jenkins.io. There was some issue and I wanted to delete it. I couldn’t find Jenkins folder or Uninstall Command ($/Library/Application\ Support/Jenkins/Uninstall.command) in Library, so this is what I did,

  1. Go to /Applications–> Delete the Jenkins folder
  2. Delete /Users/Shared/Jenkins
  3. Delete Jenkins user(there will be a standarduser with no nameusername for the first time when jenkins is installed) from “Users & Groups”

After this I re-installed Jenkins and it seem to work.

Library VS Framework

library performs specific, well-defined operations. A framework is a skeleton where the application defines the “meat” of the operation by filling out the skeleton. The skeleton still has code to link up the parts but the most important work is done by the application.

Many of us will be unaware of this difference which is really important to understand during development. The possible answer to this question, if asked, will be “Framework is a collection of various libraries”. However, this definition is not entirely true. “Who calls whom” i.e. the caller/callee relationship defines the difference between the two terms. It is our code which calls the library code while in framework, it is framework’s code which calls our code. Let’s see how. 

No alternative text description for this image

Library

A library provides a set of helper functions/objects/modules which your application code calls for specific functionality. Libraries typically focus on a narrow scope (e.g., strings, IO, sockets), so their API’s also tend to be smaller and require fewer dependencies. It is just a collection of class definitions. Why we need them? The reason being very simple i.e. code reuse, use the code which has already been written by other developers. Example, some library has a method named findLastIndex(char) to find the last index of a particular character in a string. We can straightaway call findLastIndex(charToFind) function of the library and pass the characters whose position we need to find as a parameter in the function call. 
 

Framework

Framework, on the other hand has defined open or unimplemented functions or objects which the user writes to create a custom application. (C++/Java users will understand this as it is much like implementing an abstract function). Because a framework is itself an application, it has a wider scope and includes almost everything necessary to make a user application as per his own needs. Wikipedia makes it more clear: 

“In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software” 
 

framework vs library

Thus, the key difference is in the “Inversion of Control”, commonly called as IoC. When we call a method from a library, we are in control. But in framework, the control is inverted i.e. the framework calls us. It defines a skeleton where the application defines its own features to fill out the skeleton. Example, in Javascript, we usually use this: 
 

$(document.ready(){     // this call will be done by the jquery 
// framework when document will be ready.
    
    function() {
        /* your code */    // our implementation inside the framework's function
    }
});



While in library, we normally have its object to call its functions or we simply call them. Ex: 
 

str = "nysoft.usa"
var pos = str.lastIndexOf("."); // simply calling function of string library



Important Points: 
 

  • Library : It performs a set of  specific and well-defined operations. Examples : Network protocols, compression, image manipulation, string utilities, regular expression evaluation, math etc
  • Framework: It is known to be a skeleton where the application defines the content of the operation by filling out the skeleton. Examples of frameworks: Web application system, Plug-in manager, GUI system. The framework only defines the concept but an application further defines the functionality that is useful for end-users.
  • Inversion of control: When we call a method from a library, we are in control. But in framework, the control is inverted i.e. the framework calls us.
XPath normalize-space example in Selenium WebDriver

In this example we will discuss about the usage of normalize-space in Xpath.

We already aware of the Functions like text(),contains(),starts-with(),last() and position() in Xpath. Refer to this link to know details about these functions. Xpath Functions.

Generally, normalize-space(String s) is a method in Xpath useful to remove any leading or trailing spaces in a String. This is also works like a trim() function in java.lang.String class. We will see different examples

<tr>
<td>
<a href="//money.rediff.com/companies/thomas-cook-i/16610005"> Thomas Cook (I) </a>
</td>
<td>A</td>
<td>244.60</td>
<td>252.95</td>
<td>
</tr>

In the above example the table data has spaces for Thomas Cook. If we use Xpath Text Function it doesnt provide any value as an output. Please check the screenshot below:

Usage of Xpath text() Function

Usage of normalize-space(text()) method in Xpath.Please check the screenshot below:

xpath-normalize-space-example

Selenium WebDriver Example to fetch the price for a particular Stock:

package org.totalqa.selenium;
 
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class XpathAxesLocators {
 
	public static void main(String[] args) {
		
		System.setProperty("webdriver.gecko.driver", "geckodriver.exe");
		FirefoxDriver driver = new FirefoxDriver();
		driver.get("https://money.rediff.com/gainers/bse/daily/groupa?src=gain_lose");
		
		/**
		 * Solution 1 using Axes Locators
		 */
		WebElement e = driver.findElement(By.xpath("//a[normalize-space(text())='Thomas Cook (I)']/parent::td/following-sibling::td[2]"));
		try{
			if(e.isDisplayed())
			{
					String price =  e.getText();
					System.out.println("Stock Price" + price);
			}
		}
		catch(NoSuchElementException ex)
		{
			System.out.println("Stock Name Not Exists"+ ex.getMessage());
		}
		
		/**
		 * Solution 2 using findElements()
		 */
		List<WebElement> trList = driver.findElements(By.xpath(".//*[@id='leftcontainer']/table/tbody/tr/td[1]/a"));
		for(int i=0;i<trList.size();i++)
		{
			if(trList.get(i).getText().contains("Thomas Cook (I)"))
			{
				e = driver.findElement(By.xpath(".//*[@id='leftcontainer']/table/tbody/tr["+(i+1)+"/td[3]"));
				System.out.println("Stock Price:::" + e.getText());
				break;
			}
		}
		
	}
}

Therefor the extra spaces in the table data is ignored and identified the element and fetches the stock price.

Output:

Stock Price::: 244.60

Conclusion:

In the example we have learnt how to use the normalize-space in Xpath.

Top 10 Advantages of Working from Home

WFH means Work From Home

Flexible schedule. You can take breaks at any moment, feel no rush to hang up on your family members when they call, and eat lunch at any weird time you want.

Custom environment. Setup your noise level just the way you want it — somewhere between insanely quiet to being at the front row of a Flosstradamus show.

Cozy clothes. You get to wear those sweatpants from college with the letters peeling off, or the leggings your friends don’t know you own. (And hopefully never will.)It’s easier to make calls. You won’t have to scramble to find a conference room or deal with a particularly chatty co-worker. (Granted, kids and pets at home can make this tough for some remote employees.)Knock off some weekend to-do’s. That Mt. Everest laundry pile waiting for you? That thing you set a reminder to get from the store 11 weeks ago? Cross. It. Off.No office distractions. Avoid co-workers debating the merits of cryptocurrency, sirens wailing outside your window, the AC kicking in as you hide your icicle tears.Zero commuting. From bed to … bed? Hey I’m not judging, it’s nice.Save money. Lunch is expensive if you work in a city or downtown. In San Francisco, it’s not crazy to see a $15 sandwich or $4 coffee. At home, you can save big time by going to the store and preparing food.Forget crowds and traffic. No stuffing yourself into a rickety transportation tube, having people scuff your new shoes, or walking behind agonizingly slow people who apparently don’t know what a straight line is. (Am I bitter? No … not bitter … )More time with loved ones. Take care of a sick significant other at home, be ready for your kids earlier in the day, get some extra snuggles in with your doggo, or simply get some quiet time to yourself!

Top 10 Disadvantages of Working from Home

Willpower. Gotta get jamming on this new project, but Netflix says you still have 4 episodes of Tiger King to watch…

Difficulty sticking to a routine. The order you do things at work is almost never the order you do things at home. It can be tough to mirror your schedule and processes once outside the office.

Missing important calls or pings. Oops, my phone was on do not disturb and I missed a meeting! Or my boss slacked me and asked to prioritize something else and now it’s 4:45pm …

Calling UberEats anyways. You thought you were saving money, didn’t you? Blam-o! $20 minimum and a $5 fee for the higher rated Thai place. Should’ve remembered to buy bread …

Power naps. This could arguably could be in advantages … unless it accidentally lasts 45 minutes after your delivered double entree Thai lunch.

Boredom. Those office convos? Kinda missing Susan’s cat stories, eh? How long can you go without seeing another living human being?

Working slowly. Sometimes the office has an energy. Sometimes your home does not.

No second monitor. How did I ever work without two giant screens looming above me??? All 74 of my tabs are essential!

Iffy WiFi. At home or in a cafe, when the wifi start to spaz and you switch locations a couple of times but honestly spend more time parking and ordering a 6-shot mint mojito coffee with coconut milk and 16 grains of sugar than doing work.

Waiting for an answer. You need to ask a super quick question, but it’ll impact how you do something for the next hour or even the rest of the day. And there’s no response. (Cue “The Waiting.”)The Office Michael Scott call me ASAP as possibleFOMO at Home.

FOMO at Work.The grass is always greener on the other side.

When you’re at work, nothing sounds more amazing than a toasty day indoors with your favorite blanket. When you’re at home, you reminisce about making jokes with your co-workers and wonder if the coffee machine made good coffee that day.

Either way, it’s important to choose the environment you’ll be most successful in. As you begin to work longer and build more experience, learning to focus in any surrounding is a valuable life skill, and will only help your professional career in the long run — especially as remote-first companies are gaining traction.

If you’re still newer to the remote workforce, start by simply finding out where you do your best work and why.

What is test coverage in software testing? It’s advantages and disadvantages

Test coverage measures the amount of testing performed by a set of test. Wherever we can count things and can tell whether or not each of those things has been tested by some test, then we can measure coverage and is known as test coverage.

The basic coverage measure is where the ‘coverage item’ is whatever we have been able to count and see whether a test has exercised or used this item.

test coverage formula

There is danger in using a coverage measure. But, 100% coverage does not mean 100% tested. Coverage techniques measure only one dimension of a multi-dimensional concept. Two different test cases may achieve exactly the same coverage but the input data of one may find an error that the input data of the other doesn’t.

There are many different types of coverages which we will look at in detail, in subsequent topic, some of them are:

  1. Statement coverage
  2. Decision coverage
  3. Condition coverage

Benefit of code coverage measurement:

  • It creates additional test cases to increase coverage
  • It helps in finding areas of a program not exercised by a set of test cases
  • It helps in determining a quantitative measure of code coverage, which indirectly measure the quality of the application or product.

Drawback of code coverage measurement:

  • One drawback of code coverage measurement is that it measures coverage of what has been written, i.e. the code itself; it cannot say anything about the software that has not been written.
  • If a specified function has not been implemented or a function was omitted from the specification, then structure-based techniques cannot say anything about them it only looks at a structure which is already there.
Test Architect

Test Architect is the senior position who looks after solutions for problems faced while testing. The role seeks deep technical knowledge and up-to-date knowledge about latest tools and technologies.  This role does not asks for people/team management skills.

Test Architect is not a common role. It is only found in organizations that focus heavily on the use of automation and technology in testing.

Test Architects must generally fulfill the following criteria

  • Significant years of experience (minimum of 8 years)
  • Must be a technical specialist

Skills required

  1. Experience in creating test automation framework, using latest and relevant tools.
  2. Sound knowledge of different technologies and approach to automation.
  3. Deep understanding about which test cases should be selected for automation.
  4. Strong technical leadership abilities

Roles and responsibilities of a Test Architect

Reports to : Test Manager / Quality head

Role and Responsibilities

  1. Helps in defining automation approach for testing.
  2. Supports test manager in fulfilling strategic goals by providing technical support and help in terms automation.
  3. Identifies effective technologies and tools aligned with what being already in use.
  4. Helps and designs test automation framework based on past experience and demand of current project.
  5. Works in identifying best suitable test cases for automation.
  6. Helps in creating Test environment and test data.
  7. Co-ordinates for testing via automation.
  8. Monitors, enhances, improves automation activities as per demand of project.
  9. Collaborates with team in mentoring and training team members for automation.
Senior Software Tester / Senior QA Engineer

This role may also be called as Senior QA Engineer in some organizations. Every company has different criteria when it comes to defining a designation. Most senior positions are decided in terms of years of experience.

Senior software tester is the role that comes with

  • Few years of experience (typically 4-5 years)
  • Multiple achievements (multiple projects, strict timelines, identification of critical bugs)
  • Constant learning (different tools, processes, methods)

Roles and responsibilities of a Senior Software Tester

Reports to : Test Lead

Role and Responsibilities

  1. Participation in Test planning, designing and estimation – After gaining few years of experience, the tester is expected to participate in Test planning meeting and contribute in same.
    • Test planning meeting is the meeting where high level test scenarios, challenges, risks, resources etc. are discussed and the Senior Tester can provide his inputs.
    • Test designing is the process where high level test scenarios are broken into medium/minute level test cases. Which kind of test cases to write, what to focus on, what risk factors to be considered etc. are the points where Senior Tester is expected to help.
    • Test estimation is a very important part of project planning. After years of experience, the Senior Tester can easily gauge how much time a particular task might take, considering all relevant factors.
  1. Review of test artifacts – Junior testers document test cases and submit it for review to Senior Tester.
  1. Test automation – The Senior Tester is expected to be good at one test automation tool.
  2. identify test cases to be automated.
  3. Automate them
  4. Provide results on timely basis
  5. Train junior team members for the same
  6. Collaboration with development team – With experience, the Senior Tester is expected to know communication tactics, to deal with Development team.
    • From reproducing the reported issue to emphasizing on fix for critical bugs to understand how the bug had been fixed and to know the change requests and their impacts, the tester has to work closely with developers.
    • As a Senior Tester, one is supposed to be able to work with development team comfortably, in any situation and under huge pressure.
  1. Reporting and tracking defects – With experience, what remains constant for a tester is to identify defects in software, report them and track them till they are satisfactorily fixed.
  2. Training need identification – The Senior tester knows the weaknesses of Junior testers in team. He knows what is stopping testers in performing their task efficiently. He identifies training needs for the team and conveys it to Test Lead.
  3. Communication training
  4. Process training
  5. Effective reporting training
  6. Tools training

How to utilize experience as Senior Software Tester

  1. Encouraging test automation
    • After gaining some experience in field, the main target for every tester is to learn required automation tool and implement it.
    • As an experienced tester, you know that executing each test case manually is not a good idea and not advisable too.
    • Automating regression test cases saves time for testers to execute functional test cases and do thorough exploratory testing.
    • As a senior tester, you are expected to come up with suggestions about which tools can be used to make the process smooth and effective.
    • The senior tester is supposed to help/start implementing automation and should train/mentor junior team members for the same.
  2. Identifying loopholes in processes being followed
    • Industry experience enables a tester to understand different processes and their effectiveness.
    • As a senior team member, you are expected to share your experience while following different processes and data about which process is not effective and why.
    • Also, as a senior, you are supposed to come up with a solution about the loopholes/problems you are seeing in current processes.
    • Transparent discussion about process improvement, with Leads and management is expected from senior testers.
  3. Mentoring and Training junior team members
    • You gained experience because someone helped you to grow during initial phase of career. As a senior now, it’s your responsibility to train junior team members.
    • The senior tester works as a communication bridge between junior team members and lead.
    • The senior tester is expected to train junior team members efficiently so that best output can be generated.
  4. Data analysis skills
    • The senior tester is expected to analyze the test results and should be able to provide insight about product quality in different terms like performance, functional, user’s perspective etc.
    • For non-reproducible bugs, senior tester should be able to help to junior testers as well as developers, by analyzing test environment, test data, sequence of steps taken and timing etc.
    • For automation, the senior tester should be able to analyze the results which the automation script execution has generated.
  5. Flexible to support
    • As a senior team member, you know the criticality of bugs and how soon they should be resolved. In this context, you are supposed to be available to help with reproducing the bug and to verify the bug fixes.
    • Due to tight timelines for testing, if the task is not completed, the senior member should be flexible enough to stretch out and complete the task.
  6. Self organized with no monitoring required
    • As a junior, you worked under constant monitoring and learned how things work. Now, as a senior tester, you know what is the priority of particular task and relevant timeline and how you should approach.
    • The senior team member is aware of processes being followed and therefore he aligns his working style to match with the processes.
    • Understanding the importance of timely reporting comes with experience. As a senior tester, you are skilled about how to report, what to include in report, whom to report etc.
Bangla Typing Practice

বাংলা টাইপিং
১. ক্ষ = ক+ষ
২. ষ্ণ = ষ+ণ
৩. জ্ঞ = জ+ঞ
৪. ঞ্জ = ঞ+জ
৫. হ্ম = হ+ম
৬. ঞ্চ = ঞ+চ
৭. ঙ্গ = ঙ+গ
৮. ঙ্ক = ঙ+ক
৯. ট্ট = ট + ট
১০. ক্ষ্ম = ক্ষ + ম = ‍ক + ষ + ম
১১. হ্ন = হ + ন
১২. হ্ণ = হ + ণ
১৩. ব্ধ = ব + ধ
১৪. ক্র = ক + ্র (র-ফলা)
১৫. গ্ধ = গ + ধ
১৬. ত্র = ত + ্র (র-ফলা)
১৭. ক্ত = ক + ত
১৮. ক্স = ক + স
১৯. ত্থ = ত + থ (উদাহরন: উত্থান,
উত্থাপন)
২০. ত্ত = ত + ত (উদাহরন: উত্তম, উত্তর,
সত্তর)
২১. ত্ম = ত + ম (উদাহরন: মাহাত্ম্য)
নিচের যুক্তবর্ণের
তালিকাটি বাংলা সঠিকভাবে ল
িখতে সহায়ক হতে পারে।
এখানে বাংলায় ব্যবহৃত
২৮৫টি যুক্তবর্ণ দেওয়া হয়েছে। এর
বাইরে কোন যুক্তবর্ণ সম্ভবত বাংলায়
প্রচলিত নয়।
ক্ক = ক + ক; যেমন- আক্কেল, টেক্কা
ক্ট = ক + ট; যেমন- ডক্টর (মন্তব্য: এই
যুক্তাক্ষরটি মূলত ইংরেজি/
বিদেশী কৃতঋণ শব্দে ব্যবহৃত)
ক্ট্র = ক + ট + র; যেমন- অক্ট্রয়
ক্ত = ক + ত; যেমন- রক্ত
ক্ত্র = ক + ত + র; যেমন- বক্ত্র
ক্ব = ক + ব; যেমন- পক্ব, ক্বণ
ক্ম = ক + ম; যেমন- রুক্মিণী
ক্য = ক + য; যেমন- বাক্য
ক্র = ক + র; যেমন- চক্র
ক্ল = ক + ল; যেমন- ক্লান্তি
ক্ষ = ক + ষ; যেমন- পক্ষ
ক্ষ্ণ = ক + ষ + ণ; যেমন- তীক্ষ্ণ
ক্ষ্ব = ক + ষ + ব; যেমন- ইক্ষ্বাকু
ক্ষ্ম = ক + ষ + ম; যেমন- লক্ষ্মী
ক্ষ্ম্য = ক + ষ + ম + য; যেমন- সৌক্ষ্ম্য
ক্ষ্য = ক + ষ + য; যেমন- লক্ষ্য
ক্স = ক + স; যেমন- বাক্স
খ্য = খ + য; যেমন- সখ্য
খ্র = খ+ র যেমন; যেমন- খ্রিস্টান
গ্ণ = গ + ণ; যেমন – রুগ্ণ
গ্ধ = গ + ধ; যেমন- মুগ্ধ
গ্ধ্য = গ + ধ + য; যেমন- বৈদগ্ধ্য
গ্ধ্র = গ + ধ + র; যেমন- দোগ্ধ্রী
গ্ন = গ + ন; যেমন- ভগ্ন
গ্ন্য = গ + ন + য; যেমন- অগ্ন্যাস্ত্র,
অগ্ন্যুৎপাত, অগ্ন্যাশয়
গ্ব = গ + ব; যেমন- দিগ্বিজয়ী
গ্ম = গ + ম; যেমন- যুগ্ম
গ্য = গ + য; যেমন- ভাগ্য
গ্র = গ + র; যেমন- গ্রাম
গ্র্য = গ + র + য; যেমন- ঐকাগ্র্য, সামগ্র্য,
গ্র্যাজুয়েট
গ্ল = গ + ল; যেমন- গ্লানি
ঘ্ন = ঘ + ন; যেমন- কৃতঘ্ন
ঘ্য = ঘ + য; যেমন- অশ্লাঘ্য
ঘ্র = ঘ + র; যেমন- ঘ্রাণ
ঙ্ক = ঙ + ক; যেমন- অঙ্ক
ঙ্ক্ত = ঙ + ক + ত; যেমন- পঙ্ক্তি
ঙ্ক্য = ঙ + ক + য; যেমন- অঙ্ক্য
ঙ্ক্ষ = ঙ + ক + ষ; যেমন- আকাঙ্ক্ষা
ঙ্খ = ঙ + খ; যেমন- শঙ্খ
ঙ্গ = ঙ + গ; যেমন- অঙ্গ
ঙ্গ্য = ঙ + গ + য; যেমন- ব্যঙ্গ্যার্থ,
ব্যঙ্গ্যোক্তি
ঙ্ঘ = ঙ + ঘ; যেমন- সঙ্ঘ
ঙ্ঘ্য = ঙ + ঘ + য; যেমন- দুর্লঙ্ঘ্য
ঙ্ঘ্র = ঙ + ঘ + র; যেমন- অঙ্ঘ্রি
ঙ্ম = ঙ + ম; যেমন- বাঙ্ময়
চ্চ = চ + চ; যেমন- বাচ্চা
চ্ছ = চ + ছ; যেমন- ইচ্ছা
চ্ছ্ব = চ + ছ + ব; যেমন- জলোচ্ছ্বাস
চ্ছ্র = চ + ছ + র; যেমন- উচ্ছ্রায়
চ্ঞ = চ + ঞ; যেমন- যাচ্ঞা
চ্ব = চ + ব; যেমন- চ্বী
চ্য = চ + য; যেমন- প্রাচ্য
জ্জ = জ + জ; যেমন- বিপজ্জনক
জ্জ্ব = জ + জ + ব; যেমন- উজ্জ্বল
জ্ঝ = জ + ঝ; যেমন- কুজ্ঝটিকা
জ্ঞ = জ + ঞ; যেমন- জ্ঞান
জ্ব = জ + ব; যেমন- জ্বর
জ্য = জ + য; যেমন- রাজ্য
জ্র = জ + র; যেমন- বজ্র
ঞ্চ = ঞ + চ; যেমন- অঞ্চল
ঞ্ছ = ঞ + ছ; যেমন- লাঞ্ছনা
ঞ্জ = ঞ + জ; যেমন- কুঞ্জ
ঞ্ঝ = ঞ + ঝ; যেমন- ঝঞ্ঝা
ট্ট = ট + ট; যেমন- চট্টগ্রাম
ট্ব = ট + ব; যেমন- খট্বা
ট্ম = ট + ম; যেমন- কুট্মল
ট্য = ট + য; যেমন- নাট্য
ট্র = ট + র; যেমন- ট্রেন (মন্তব্য: এই
যুক্তাক্ষরটি মূলত ইংরেজি/
বিদেশী কৃতঋণ শব্দে ব্যবহৃত)
ড্ড = ড + ড; যেমন- আড্ডা
ড্ব = ড + ব; যেমন- অন্ড্বান
ড্য = ড + য; যেমন- জাড্য
ড্র = ড + র; যেমন- ড্রাইভার, ড্রাম
(মন্তব্য: এই যুক্তাক্ষরটি মূলত ইংরেজি/
বিদেশী কৃতঋণ শব্দে ব্যবহৃত)
ড়্গ = ড় + গ; যেমন- খড়্গ
ঢ্য = ঢ + য; যেমন- ধনাঢ্য
ঢ্র = ঢ + র; যেমন- মেঢ্র (ত্বক) (মন্তব্য:
অত্যন্ত বিরল)
ণ্ট = ণ + ট; যেমন- ঘণ্টা
ণ্ঠ = ণ + ঠ; যেমন- কণ্ঠ
ণ্ঠ্য = ণ + ঠ + য; যেমন- কণ্ঠ্য
ণ্ড = ণ + ড; যেমন- গণ্ডগোল
ণ্ড্য = ণ + ড + য; যেমন- পাণ্ড্য
ণ্ড্র = ণ + ড + র; যেমন- পুণ্ড্র
ণ্ঢ = ণ + ঢ; যেমন- ষণ্ঢ
ণ্ণ = ণ + ণ; যেমন- বিষণ্ণ
ণ্ব = ণ + ব; যেমন- স্হাণ্বীশ্বর
ণ্ম = ণ + ম; যেমন- চিণ্ময়
ণ্য = ণ + য; যেমন- পূণ্য
ৎক = ত + ক; যেমন- উৎকট
ত্ত = ত + ত; যেমন- উত্তর
ত্ত্ব = ত + ত + ব; যেমন- সত্ত্ব
ত্ত্য = ত + ত + য; যেমন- উত্ত্যক্ত
ত্থ = ত + থ; যেমন- অশ্বত্থ
ত্ন = ত + ন; যেমন- যত্ন
ত্ব = ত + ব; যেমন- রাজত্ব
ত্ম = ত + ম; যেমন- আত্মা
ত্ম্য = ত + ম + য; যেমন- দৌরাত্ম্য
ত্য = ত + য; যেমন- সত্য
ত্র = ত + র যেমন- ত্রিশ, ত্রাণ
ত্র্য = ত + র + য; যেমন- বৈচিত্র্য
ৎল = ত + ল; যেমন- কাৎলা
ৎস = ত + স; যেমন- বৎসর, উৎসব
থ্ব = থ + ব; যেমন- পৃথ্বী
থ্য = থ + য; যেমন- পথ্য
থ্র = থ + র; যেমন- থ্রি (three) (মন্তব্য: এই
যুক্তাক্ষরটি মূলত ইংরেজি/
বিদেশী কৃতঋণ শব্দে ব্যবহৃত)
দ্গ = দ + গ; যেমন- উদ্গম
দ্ঘ = দ + ঘ; যেমন- উদ্ঘাটন
দ্দ = দ + দ; যেমন- উদ্দেশ্য
দ্দ্ব
স্ত্রী = n g k z Shift+d
বউ = n g+s
হৃদয় = i a l Shift+w
সর্ব = n h Shift+a
পর্ব = r h Shift+A
ঋতু = g+a k s
বর্ষা = h Shift+N Shift+A f
র‍্যাব = v Shift+z f h
কৃষক = j a Shift+n j
চাক = y f j g
সুগন্ধা = n s o b+g Shift+L f
পর্যন্ত = r w Shift+A b g k
বন্ধু = h b g Shift+L s
কম্পিউটার = j d m g r g s t f v
পৃথিবী = r a d Shift+K h Shift+D
চন্দ্রবিন্দু = y b g l z d h b g l s
সমৃদ্ধশালী = n m a l Shift+L Shift+m f Shift+v Shift+D
জ্ঞান = u g Shift+i f b
কৃষ্ণ = j a Shift+N g Shift+B
স্বপ্ন = n g h r g b

What is Verification in software testing? or What is software verification?

Verification makes sure that the product is designed to deliver all functionality to the customer.

  • Verification is done at the starting of the development process. It includes reviews and meetings, walk-throughs, inspection, etc. to evaluate documents, plans, code, requirements, and specifications.
  • Suppose you are building a table. Here the verification is about checking all the parts of the table, whether all the four legs are of the correct size or not. If one leg of the table is not of the right size it will imbalance the end product. Similar behavior is also noticed in the case of the software product or application. If any feature of software product or application is not up to the mark or if any defect is found then it will result into the failure of the end product. Hence, verification is very important. It takes place at the starting of the development process.
  • Software verification and validationSoftware verification and validation
  • It answers the questions like: Am I building the product right?
  • Am I accessing the data right (in the right place; in the right way).
  • It is a Low-level activity
  • Performed during development on key artifacts, like walkthroughs, reviews and inspections, mentor feedback, training, checklists and standards.
  • Demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.

According to the Capability Maturity Model (CMM) we can also define verification as the process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE-STD-610].

Advantages of Software Verification :

Verification helps in lowering down the count of the defect in the later stages of development.
Verifying the product at the starting phase of the development will help in understanding the product in a better way.
It reduces the chances of failures in the software application or product.
It helps in building the product as per the customer specifications and needs.

What is Condition coverage?

This is closely related to decision coverage but has better sensitivity to the control flow. However, full condition coverage does not guarantee full decision coverage.

  • Condition coverage reports the true or false outcome of each condition.
  • Condition coverage measures the conditions independently of each other.

Other control-flow code-coverage measures include linear code sequence and jump (LCSAJ) coverage, multiple condition coverage (also known as condition combination coverage) and condition determination coverage (also known as multiple condition decision coverage or modified condition decision coverage, MCDC). This technique requires the coverage of all conditions that can affect or determine the decision outcome.

What is Branch Coverage or Decision Coverage? Its advantages and disadvantages
  • Branch coverage is also known as Decision coverage or all-edges coverage.
  • It covers both the true and false conditions unlikely the statement coverage.
  • A branch is the outcome of a decision, so branch coverage simply measures which decision outcomes have been tested. This sounds great because it takes a more in-depth view of the source code than simple statement coverage
  • A decision is an IF statement, a loop control statement (e.g. DO-WHILE or REPEAT-UNTIL), or a CASE statement, where there are two or more outcomes from the statement. With an IF statement, the exit can either be TRUE or FALSE, depending on the value of the logical condition that comes after IF.

Advantages of decision coverage:

  • To validate that all the branches in the code are reached
  • To ensure that no branches lead to any abnormality of the program’s operation
  • It eliminate problems that occur with statement coverage testing

Disadvantages of decision coverage:

  • This metric ignores branches within boolean expressions which occur due to short-circuit operators.

The decision coverage can be calculated as given below:

decision coverage formula

In the previous section we saw that just one test case was required to achieve 100% statement coverage. However, decision coverage requires each decision to have had both a True and False outcome. Therefore, to achieve 100% decision coverage, a second test case is necessary where A is less than or equal to B which ensures that the decision statement ‘IF A > B’ has a False outcome. So one test is sufficient for 100% statement coverage, but two tests are needed for 100% decision coverage. It is really very important to note that 100% decision coverage guarantees 100% statement coverage, but not the other way around.

1 READ A
2 READ B
3 C = A – 2 *B
4 IFC <0THEN
5 PRINT “C negative”
6 ENDIF
Code sample 4.3

Let’s suppose that we already have the following test, which gives us 100% statement coverage for code sample 4.3.

TEST SET 2   Test 2_1: A = 20, B = 15

The value of C is -10, so the condition  ‘C < 0’ is True, so we will print ‘C negative’ and we have executed the True outcome from that decision statement. But we have not executed the False outcome of the decision statement. What other test would we need to exercise the False outcome and to achieve 100% decision coverage?

Before we answer that question, let’s have a look at another way to represent this code. Sometimes the decision structure is easier to see in a control flow diagram (see Figure 4.4).

decision coverage example

The dotted line shows where Test 2_1 has gone and clearly shows that we haven’t yet had a test that takes the False exit from the IF statement.
Let’s modify our existing test set by adding another test:

TEST SET 2
Test 2_1: A = 20, B = 15
Test 2_2: A = 10, B = 2

This now covers both of the decision outcomes, True (with Test 2_1) and False (with Test 2_2). If we were to draw the path taken by Test 2_2, it would be a straight line from the read statement down the False exit and through the ENDIF. We could also have chosen other numbers to achieve either the True or False outcomes.

What is Statement coverage? Advantages and disadvantages

The statement coverage is also known as line coverage or segment coverage. The statement coverage covers only the true conditions. Through statement coverage we can identify the statements executed and where the code is not executed because of blockage.

  • In this process each and every line of code needs to be checked and executed

Advantage of statement coverage:

  • It verifies what the written code is expected to do and not to do
  • It measures the quality of code written
  • It checks the flow of different paths in the program and it also ensure that whether those path are tested or not.

Disadvantage of statement coverage:

  • It cannot test the false conditions.
  • It does not report that whether the loop reaches its termination condition.
  • It does not understand the logical operators.

The statement coverage can be calculated as shown below:

statement coverage formula

To understand the statement coverage in a better way let us take an example which is basically a pseudo-code. It is not any specific programming language, but should be readable and understandable to you, even if you have not done any programming yourself.

Consider code sample 4.1 :
READ X
READ Y
I F X>Y THEN Z = 0
ENDIF
Code sample 4.1

To achieve 100% statement coverage of this code segment just one test case is required, one which ensures that variable A contains a value that is greater than the value of variable Y, for example, X = 12 and Y = 10. Note that here we are doing structural test design first, since we are choosing our input values in order ensure statement coverage.

Now, let’s take another example where we will measure the coverage first. In order to simplify the example, we will regard each line as a statement. A statement may be on a single line, or it may be spread over several lines. One line may contain more than one statement, just one statement, or only part of a statement. Some statements can contain other statements inside them. In code sample 4.2, we have two read statements, one assignment statement, and then one IF statement on three lines, but the IF statement contains another statement (print) as part of it.

1 READ X
2 READ Y
3 Z =X + 2*Y
4 IF Z> 50 THEN
5 PRINT large Z
6 ENDIF
Code sample 4.2

Although it isn’t completely correct, we have numbered each line and will regard each line as a statement. Let’s analyze the coverage of a set of tests on our six-statement program:

TEST SET 1
Test 1_1: X= 2, Y = 3
Test 1_2: X =0, Y = 25
Test 1_3: X =47, Y = 1

Which statements have we covered?

  • In Test 1_1, the value of Z will be 8, so we will cover the statements on lines 1 to 4 and   line 6.
  • In Test 1_2, the value of Z will be 50, so we will cover exactly the same statements as Test 1_1.
  • In Test 1_3, the value of Z will be 49, so again we will cover the same statements.

Since we have covered five out of six statements, we have 83% statement coverage (with three tests). What test would we need in order to cover statement 5, the one statement that we haven’t exercised yet? How about this one:

Test 1_4: X = 20, Y = 25

This time the value of Z is 70, so we will print ‘Large Z’ and we will have exercised all six of the statements, so now statement coverage = 100%. Notice that we measured coverage first, and then designed a test to cover the statement that we had not yet covered.

Note that Test 1_4 on its own is more effective which helps in achieving 100% statement coverage, than the first three tests together. Just taking Test 1_4 on its own is also more efficient than the set of four tests, since it has used only one test instead of four. Being more effective and more efficient is the mark of a good test technique.

What is Validation in software testing? or What is software validation?

Validation is determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs.

  • Validation is done at the end of the development process and takes place after verifications are completed.
  • It answers the question like: Am I building the right product?
  • Am I accessing the right data (in terms of the data required to satisfy the requirement).
  • It is a High level activity.
  • Performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment.
  • Determination of correctness of the final software product by a development project with respect to the user needs and requirements.
Software verification and validation
Software verification and validation

According to the Capability Maturity Model (CMM) we can also define validation as The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610].

A product can pass while verification, as it is done on the paper and no running or functional application is required. But, when same points which were verified on the paper is actually developed then the running application or product can fail while validation. This may happen because when a product or application is build as per the specification but these specifications are not up to the mark hence they fail to address the user requirements.

Advantages of Validation:

  1. During verification if some defects are missed then during validation process it can be caught as failures.
  2. If during verification some specification is misunderstood and development had happened then during validation process while executing that functionality the difference between the actual result and expected result can be understood.
  3. Validation is done during testing like feature testing, integration testing, system testing, load testing, compatibility testing, stress testing, etc.
  4. Validation helps in building the right product as per the customer’s requirement and helps in satisfying their needs.

Validation is basically done by the testers during the testing. While validating the product if some deviation is found in the actual result from the expected result then a bug is reported or an incident is raised. Not all incidents are bugs. But all bugs are incidents. Incidents can also be of type ‘Question’ where the functionality is not clear to the tester.

Hence, validation helps in unfolding the exact functionality of the features and helps the testers to understand the product in much better way. It helps in making the product more user friendly.

How to be a good tester?

After joining software testing field, to grow, one has to work hard. But with hard work, there are some points to be taken care to become a good tester.  Let’s have a look at them :

  1. Understand priorities : As a tester, you are given multiple tasks with pre-defined timeline. If priority of each task is understood, as a tester, you will not mess up things or will not stress out. Based on experience, you should be able to prioritize things like
    • What should be tested first and what can be given less priority
    • Which test cases to be automated and which should be executed manually
    • Which bug fix should be verified on critical basis and which one can be delayed for some time.
  1. Quality Vs Quantity : As a junior tester, you are inclined to report more number of bugs. But rather than quantity of bugs, you should focus on quality of bugs.
  1. Testing ideas : As a tester, you are supposed to understand how the product will be used by end user. Based on that, generate number of ideas to test the product differently, to cover every aspect of the product.
  1. Effective bug reporting : As much as it is important to identify bug, equally important is to report the bug effectively.