Month: April 2025

  • Give and Take by Adam Grant

    Give and Take by Adam Grant

    This text explores the concept of “givers,” “takers,” and “matchers” in various contexts, examining how different approaches to reciprocity impact success. It analyzes the strategies employed by successful givers across diverse fields, such as business, politics, and sports, highlighting the importance of factors like sincerity, perspective-taking, and effective communication. The text also investigates the challenges faced by givers, including burn-out and exploitation, and offers strategies for mitigating these risks. Furthermore, it discusses the interplay between altruism and self-interest, emphasizing the benefits of “otherish giving” – a balanced approach that prioritizes both personal and collective well-being. Finally, the text provides practical advice and examples to help readers cultivate more effective giving behaviors.

    Give and Take: A Study Guide

    Quiz

    Instructions: Answer each question in 2-3 complete sentences.

    1. What is the key difference between “takers” and “givers” according to the text?
    2. How did David Hornik’s approach to offering term sheets differ from typical venture capitalists?
    3. What is the “national debt” that Sampson jokingly referred to, and how did it shape his approach to life and law?
    4. According to the text, what are “idiosyncrasy credits,” and how do they relate to collaborative environments?
    5. What does the story of Jonas Salk illustrate about the importance of giving credit in scientific collaboration?
    6. How did Adam Rifkin build his network of contacts and what was the core of his approach?
    7. How do “intention questions” influence people’s behavior? Give an example from the text.
    8. What does it mean for a person to have a “disagreeable giver” personality?
    9. What was the “metronome incident” and how did it change the author’s perspective on his own limitations?
    10. Explain the significance of the name “Dennis” and its connection to dentistry according to the text.

    Quiz Answer Key

    1. Takers seek to get more than they give, prioritizing their own interests, while givers focus on contributing to others’ needs, often putting the needs of others ahead of their own. This difference in perspective guides their actions and interactions.
    2. Unlike most venture capitalists, Hornik did not set deadlines for entrepreneurs to make decisions. He gave them ample time to explore their options, thus prioritizing the entrepreneur’s best interests over his own immediate gain.
    3. Sampson’s “national debt” was a loan he incurred from a failed business and his partner’s death. This forced him to pay off the large debt. He committed to paying back every cent, highlighting his willingness to prioritize moral responsibility over personal gain.
    4. “Idiosyncrasy credits” are positive impressions accumulated through generous actions in a group. These credits give group members a license to deviate from expectations.
    5. Jonas Salk took sole credit for the polio vaccine, which led to colleagues and his isolation later in his career. The text shows that giving credit to others is essential for maintaining relationships and advancing collaboration.
    6. Rifkin built his extensive network by being genuinely curious and helpful, asking thoughtful questions and listening patiently. He focuses on giving and connecting people to each other without expectation of return.
    7. “Intention questions” influence behavior by prompting people to commit to a course of action. Asking someone if they plan to floss their teeth makes them more likely to do so, by triggering their commitment.
    8. A “disagreeable giver” has a tough or confrontational demeanor but is genuinely generous with their time and expertise. They may have high expectations but ultimately care about the well-being of others.
    9. The author was unable to master the metronome in diving practice and was nicknamed “Frankenstein.” It showed him that his skills are limited. This helped him understand that other people also have weaknesses.
    10. The text explains that statistically, there were far more dentists named “Dennis” than expected. This is because people are attracted to things that remind them of themselves.

    Essay Questions

    1. Analyze the impact of reciprocity styles (giving, taking, matching) on personal and professional success, drawing on examples from the text.
    2. Explore the concept of “powerless communication” and its effectiveness in various contexts, such as sales, leadership, and negotiations.
    3. Discuss the ways in which givers can avoid being taken advantage of (“doormats”) and find a healthy balance between helping others and maintaining their own well-being.
    4. Evaluate the role of networking in the context of giver, taker, and matcher personalities, and how they approach this activity with different motivations and strategies.
    5. How can the ideas presented in this book, about giving and taking, be applied to a specific field of work like healthcare, technology, or education?

    Glossary of Key Terms

    • Giver: An individual who prioritizes helping others and contributing to their needs, often without expecting immediate reciprocation.
    • Taker: An individual who primarily focuses on getting more than they give, putting their own interests ahead of others.
    • Matcher: An individual who aims for equal exchanges in relationships, seeking reciprocity in their interactions with others.
    • Idiosyncrasy Credits: Positive impressions accumulated in the minds of group members through acts of generosity, allowing an individual to deviate from group norms.
    • Five-Minute Favor: A small, quick act of help that someone can do for another without major time investment.
    • Dormant Ties: Past connections or relationships that have fallen dormant, but that can be reactivated with a positive effect.
    • Lekking: A behavior observed in animals where males display to show their desirability. The term is used to describe takers in human society who display self-serving behaviors to attract help.
    • Perspective Taking: The ability to see a situation from another person’s point of view. It can lead to more generosity.
    • Otherish: Acting in a manner that seeks to benefit both one’s self and others, while also being concerned about one’s own well being.
    • Powerless Communication: A style of communication characterized by modesty, asking questions, and expressing vulnerability. It is often used by givers and can be very persuasive.
    • Intention Questions: Questions that prompt people to articulate a plan, making them more likely to follow through with a desired behavior.
    • Elevation: The warm feeling experienced when one is moved by others’ acts of giving, inspiring a sense of moral inspiration.
    • Reciprocity Ring: A structured activity in which members make requests for help and offer to help others. This shows the power of networks.
    • Sunk Cost Fallacy: The tendency to continue investing in a failing project because of the time and money already invested.
    • Chunking: A strategy used by givers to organize tasks and responsibilities to avoid becoming overwhelmed. The act of combining smaller tasks in order to see a broader goal.
    • Sprinkling: A strategy used by givers where the individual does not combine small tasks into a larger goal but does small tasks as they come without a bigger vision.
    • Pronoia: The opposite of paranoia, the belief that the world is conspiring to do one good.

    Give and Take: A Summary of Adam Grant’s Work

    Okay, here is a detailed briefing document summarizing the key themes and ideas from the provided excerpts of “Give and Take” by Adam Grant:

    Briefing Document: “Give and Take” by Adam Grant

    Executive Summary:

    This document analyzes excerpts from Adam Grant’s “Give and Take,” focusing on the dynamics of giving, taking, and matching in various professional and personal contexts. Grant challenges the notion that success is solely driven by self-interest, highlighting the power of generosity and other-focused behaviors. The excerpts explore how givers achieve success, identify and avoid being taken advantage of, and understand how both individual and situational factors influence our reciprocity styles. The core message is that by understanding and cultivating giving behaviors, we can foster both personal and collective success.

    Key Themes and Ideas:

    1. Reciprocity Styles: Givers, Takers, and Matchers
    • Givers: Individuals who prioritize others’ needs, often giving more than they receive. They seek to contribute and help, placing others’ interests ahead of their own.
    • “Although Hornik hoped Shader would conclude that the right decision was to sign with him, he put Shader’s best interests ahead of his own, giving Shader space to explore other options.”
    • Takers: Those who aim to get more than they give, tilting reciprocity in their own favor. They are self-promoters and prioritize their own interests.
    • “Takers have a distinctive signature: they like to get more than they give. They tilt reciprocity in their own favor, putting their own interests ahead of others’ needs.”
    • Matchers: Individuals who strive for a balance in giving and receiving, believing in “tit for tat.”
    1. The Surprising Success of Givers:
    • Grant highlights how givers often achieve exceptional long-term success, challenging the conventional wisdom that success requires being a taker. Examples provided include venture capitalist David Hornik, George Meyer (writer for The Simpsons) and C.J Skender.
    • “Hornik has been extremely successful as a venture capitalist while living by his values, and he’s widely respected for his generosity.”
    • Success often stems from their ability to build strong, lasting relationships, earn trust, and foster collaboration.
    • “I get to create an environment where other people can get deals and build relationships, and I live in the world I want to live in.”
    1. Identifying and Navigating Takers:
    • Takers often disguise themselves as givers to gain access to networks and resources.
    • “To avoid getting shut out, many takers become good fakers, acting generously so that they can waltz into our networks disguised as givers or matchers.”
    • Takers often exhibit subtle signals, “lekking,” that reveal their self-serving motives: boasting, taking excessive credit, and making self-promotional statements.
    • The author describes this as “leaking clues”. “Luckily, research shows that takers leak clues. Well, more precisely, takers lek clues.”
    • Being able to recognize these signs is crucial in avoiding exploitation.
    1. The Power of Giving in Networking and Collaboration:
    • Givers build strong networks by focusing on helping others and making genuine connections. This includes activating dormant ties.
    • “Each time he gave, he created a new connection.”
    • Collaboration is enhanced when individuals prioritize contributing and sharing credit, as seen with the example of George Meyer.
    • “One of the best things about developing that credibility was if I wanted to try something that was fairly strange, people would be willing to at least give it a shot at the table read,”
    • The lack of crediting others can destroy relationships. “Thou shalt give credit to others.”
    • Groups reward individuals who are willing to sacrifice and give through “idiosyncrasy credits”. “Groups reward individual sacrifice.”
    1. The Importance of Perspective-Taking:
    • Givers demonstrate an aptitude for understanding others’ perspectives and needs, enabling them to contribute more effectively.
    • “When I gave further thought to Michael’s interests, I realized that the booklets would be more valuable to him if he could sponsor them exclusively, rather than featuring other companies’ ads.”
    • Perspective-taking can be hindered by the “perspective gap”, where we struggle to understand others’ feelings or preferences.
    1. Giver Motivation and Avoiding Burnout:
    • Givers can avoid burnout by focusing on making an impact through chunking – focusing on the impact of their work and those they have helped.
    • They are motivated by creating an environment in which others can benefit and are more likely to feel energized by giving when they are connecting it to the difference it is making to the lives of others.
    • The idea that Givers are most likely to burn out is challenged by this text.
    • “Some people think I’m delusional. They believe the way you achieve is by being a taker,”
    1. The Otherish Approach to Success
    • Givers can develop an otherish approach, by balancing the needs of others with their own interests. They can achieve this by combining both modesty and assertiveness to overcome the pushover effect.
    • “Whether you’re nice or not nice is separate from whether you’re self-focused or other-focused. They’re independent, not opposites.”
    • Givers can be both agreeable and disagreeable but should prioritize the needs of others above their own.
    1. Powerless Communication:
    • Givers often use “powerless” communication styles such as asking questions, being modest, and expressing vulnerability.
    • “By asking questions and listening to the answers, Grumbles showed his customers that he cared about their interests. This built prestige: customers respected and admired the concern that he showed.”
    • This seemingly weaker approach can be highly effective in building trust and influencing others.
    • “I don’t look at it as selling,” he explains. “I see myself as an optician. We’re in the medical field first, retail second, sales maybe third. My job is to take the patient, ask the patient questions, and see what the patient needs. My mind-set is not to sell. My job is to help.”
    1. The Scrooge Shift:
    • The text explores the psychology of why we are more likely to give to others when they are more similar to us.
    • “People were more likely to give microloans to borrowers who shared their first initials or their occupations.”
    • It looks at how feeling a part of a community can increase our desire to give.
    • It illustrates how small acts of giving can be contagious and inspire others to act kindly.
    1. Recognizing and Cultivating Talent:
    • Givers are often skilled at recognizing and nurturing talent in others, prioritizing long-term potential over immediate achievement.
    • Talent experts make mistakes when they are too focused on short term successes over investing in someone’s potential and long term development.
    • “Stu was a kind person, considerate of other people’s feelings,” Wayne Thompson told me. “But he never let that influence selections. If he didn’t think a guy could play, he put his arm around him and wished him well.””
    • Givers are better placed to make judgements on talent when they don’t feel egotistically responsible for previous negative decisions.

    Key Quotes:

    • “If I don’t look out for myself first, no one will.” – This is the mindset of Takers.
    • “It’s a win-win, I get to create an environment where other people can get deals and build relationships, and I live in the world I want to live in.” – David Hornik on the benefits of being a Giver.
    • “It’s not just about building your reputation; it really is about being there for other people.” – Adam Rifkin on the value of helping others.
    • “He just went through it line by line, and he was incredibly generous. His notes helped me fix things that were bugging me at the bottom of my soul, but I couldn’t articulate them.” – Tim Long, on the generosity of George Meyer.
    • “We should be like that. —Marcus Aurelius, Roman emperor” – An encouragement to become givers.

    Conclusion:

    These excerpts from “Give and Take” argue that a giving orientation is not a weakness but a powerful force for success. By understanding the dynamics of reciprocity, learning to identify and navigate takers, and cultivating a genuine desire to help others, individuals can create more productive and fulfilling personal and professional lives. The key lies in balancing the need to contribute with the need to protect oneself, adopting an otherish approach that recognizes the value of both giving and receiving.

    This briefing provides a foundation for understanding the core arguments of “Give and Take”. Further reading is recommended to explore all of the nuances and supporting evidence for the ideas presented.

    The Generosity Paradox

    How can I distinguish between a genuine giver and a taker who is faking generosity?

    Takers often exhibit subtle clues, similar to animals displaying their desirability in “lekking” rituals. Takers tend to disproportionately talk about themselves, seek excessive credit, and use first-person singular pronouns (like “I” and “me”). Genuine givers are more likely to ask about others and express genuine interest in their experiences. Takers may also try to rush or demand things from others, whereas givers are more patient and considerate.

    What are some key ways givers can avoid burnout and maintain their energy when helping others?

    Givers can avoid burnout by focusing on making a significant impact rather than spreading their efforts too thin. They benefit from “chunking” their efforts, concentrating energy on specific meaningful projects rather than “sprinkling” it across many smaller activities. Social support and positive feedback from those they help can also provide an energy boost and reinforce their commitment to giving. Givers also need to ensure that they are getting as much as they are giving, not necessarily in the form of direct reciprocation but in the form of social connection, professional growth, and a sense of meaning and purpose.

    Can being a giver be compatible with being assertive, and how might givers negotiate effectively?

    Yes, givers can and should be assertive, but they often need to overcome the perception that giving is synonymous with being a pushover. They can use an “otherish” approach to negotiation. This involves understanding not just their own interests, but also the interests and needs of the other party. Givers can effectively influence others through methods that involve asking questions, listening actively, and reframing situations to benefit both parties. They can also leverage relational accounts – emphasizing past helpful actions. It’s also beneficial for them to recognize and articulate their own value.

    How does “powerless communication” help givers influence others?

    Powerless communication, which includes elements like asking questions, showing vulnerability, and using tentative language, enhances a giver’s influence by making them appear more approachable, authentic, and trustworthy. This approach builds prestige by demonstrating that the giver values the audience’s input and is not solely focused on their own needs or competence. By showing vulnerability, givers establish credibility and encourage reciprocity. This form of communication also encourages others to share information which enables the giver to be more helpful.

    How can givers recognize and develop potential in others?

    Givers excel at recognizing potential by focusing on passion, engagement, and a growth mindset rather than just present abilities. They prioritize building relationships and creating a supportive environment. Givers are also skilled at providing encouragement and constructive feedback, and they often value and seek out potential in individuals who are not immediately obvious “stars”. Givers tend to have more patience with people they recognize potential in even if the immediate results don’t match their investment.

    Why do givers often struggle with taking credit for their contributions?

    Givers often downplay their contributions due to a focus on collective success and a genuine desire to avoid seeming self-promotional or arrogant. This is often rooted in a belief in shared responsibility and not wanting to appear that they are taking advantage of others. This humility, though often genuine, can sometimes limit their own visibility and advancement. Givers can overcome this by reframing how they talk about their contributions as not just personal achievements but achievements that benefit the team, project, or even the larger society.

    How do personal connections like names and fingerprints impact giving behavior?

    Surprisingly, superficial similarities, such as sharing a name or initials, can increase empathy and the likelihood of helping others. People are more inclined to help individuals who remind them of themselves. This seems to be an effect of subconscious biases that result in more “enthusiasm, friendliness and open-mindedness.” It can provide a starting point to make a deeper, more meaningful connection but similarity is not a replacement for other factors.

    Why is a sense of community and the feeling of “elevation” important for promoting giving behaviors?

    A sense of shared identity, whether a local community or a common belief, enhances the impact of giving. When people feel connected and see others giving, they feel a sense of “elevation” – a warmth that pushes a “reset button,” replacing cynicism with inspiration and leading to a desire to act in ways that match the example. In contrast, when giving behaviors are associated with those who are perceived as “outsiders”, that same desire is far less common. Seeing generosity in others inspires similar generosity.

    Give and Take: A Network of Givers

    Okay, here is the timeline and cast of characters based on the provided text:

    Timeline of Main Events

    • Early 1990s:George Meyer begins writing for The Simpsons and wins multiple Emmy Awards.
    • Craig Newmark leaves IBM and takes a job at Charles Schwab.
    • 1992:A Simpsons episode written by Meyer, “Mr. Lisa Goes to Washington,” is nominated for an Environmental Media Award.
    • 1993:Craig Newmark starts looking for ways to socialize after moving to the Bay Area.
    • 1995:Newmark begins emailing friends about local arts and technology events which grows to 240 people by June.
    • 1996:Newmark’s email list moves to a listserv and becomes the website Craigslist.
    • Early 2000s:Adam Rifkin offers a contract to Evan Williams of Blogger to help the company stay afloat, which indirectly helps Williams later cofound Twitter.
    • C.J. Skender’s accounting students sweep the CPA exam top three spots in North Carolina.
    • 2001:Adam Rifkin contracts with Blogger to do work for his company KnowNow, so that Blogger can survive.
    • 2003:A Simpsons fan named Rob Bauer crossbreeds a tomato and tobacco (tomacco), inspired by the show.
    • 2004:George Meyer leaves The Simpsons.
    • 2005:Rifkin and Joyce Park found 106 Miles.
    • 2007Scientists name a new species of moss frog in Sri Lanka after George Meyer’s daughter.
    • 2010:Tim Long, a former Simpsons writer, receives feedback and assistance from George Meyer in getting published in The New Yorker.
    • 2011Tim Long’s dream of being published in The New Yorker is fulfilled twice.
    • LinkedIn names Adam Rifkin one of their top networkers.
    • 2012:A startup funded by David Hornik is valued at more than $3 Billion on its first day of trading.
    • Freecycle has more than nine million members in over 110 countries.
    • Ongoing:David Hornik continues to have a high success rate with entrepreneurs accepting his term sheets.
    • C.J. Skender continues to teach at Duke University and the University of North Carolina.
    • Adam Rifkin continues to organize and host the 106 Miles networking events.

    Cast of Characters

    • Adam Grant: The author of “Give and Take” and the one sharing all these stories.
    • Adam Rifkin (Panda Adam): Software engineer, co-founder of 106 Miles, recognized as a top networker by LinkedIn. A classic giver, he helps connect others and invests in their success.
    • Adam Rifkin (Hollywood Adam): In the film industry, known for being generous and helpful, forms a strong bond with Panda Adam.
    • Bill Grumbles: A successful salesman who uses a “powerless” approach by asking questions and listening to his customers, making them feel understood.
    • C. Daniel Batson: Psychologist known for his work on altruism and empathy.
    • C. J. Skender: A highly respected and awarded accounting professor at both Duke University and the University of North Carolina. A giver, recognized for his ability to identify and cultivate potential in his students and his unconventional teaching style.
    • Carolyn Omine: A writer for The Simpsons who highlights George Meyer’s integrity and giving nature.
    • Craig Newmark: Founder of Craigslist, who initially intended it to be a social networking tool rather than a commercial venture.
    • Danny Shader: Serial entrepreneur, calls himself the “old man of the internet,” who initially hesitates to sign with David Hornik. He recognizes the distinction between being nice and being other-focused.
    • Dave Walton: A lawyer with a stutter who gains respect from the jury by showing his vulnerability.
    • David Hornik: A venture capitalist known for his generosity and “giver” approach, which has led to a high acceptance rate for his term sheets, and whose approach to business contrasts with the typical cutthroat taker style.
    • Derek Sorensen: A former professional athlete who was initially known as a ruthless negotiator, but ultimately shifts his approach after realizing its negative impacts and embracing his natural giving nature.
    • Deron Beal: Founder of Freecycle, a free online local giving network. He seeks to create a sense of local community by example.
    • Edwin Hollander: A psychologist known for his work on “idiosyncrasy credits.”
    • Evan Williams: Founder of Blogger, later co-founder of Twitter. He receives help from Adam Rifkin, enabling his first company’s survival.
    • George Meyer: A writer for The Simpsons, known for his comedic talent, integrity, and generosity as a collaborator. A giver who has a significant positive influence on others, even after leaving The Simpsons.
    • Greg Sands: Mananging Director of a private equity firm, and “Homer disciple” who confirms Mike Homer’s combination of hard edge and generosity.
    • Henry Moon: A researcher at London Business School who studied escalation of commitment and ego threat.
    • Jeff Galak: Researcher who studied microloans on Kiva.
    • Jennifer Aaker: Colleague who provided advice on writing this book.
    • Jonas Salk: Scientist who developed the polio vaccine but faced criticism for taking sole credit.
    • Joyce Park: Co-founder of 106 Miles.
    • Julius Erving (Dr. J.): NBA Hall of Fame player, a player Stu Inman missed the opportunity to draft.
    • Ken Lay: CEO of Enron, who disguised himself as a giver while being a taker.
    • Kevin Liles: Rose from intern to president at Def Jam Records due to his giving attitude.
    • Kildare Escoto: An optician who prioritizes patient needs over sales, seen as a great salesman despite not using direct sales techniques.
    • LaRue Martin: A disappointing NBA player, the first pick for Portland by Stu Inman in 1972.
    • Lillian Bauer: An advertising manager who successfully used “otherish” techniques to resolve a client issue and win a larger deal. Note: This is a pseudonym.
    • Mark Twain: Author and humorist whose quote on the principle of give and take opens chapter one.
    • Mike Homer: Late marketing executive at Netscape, described as “crusty as hell on the outside, but on the inside he was pure gold,” a disagreeable giver.
    • Nancy Phelps: An optician who follows a similar approach to Kildare Escoto, focusing on the needs of her clients and the relationship.
    • Paul Saffo: Member of the World Economic Forum Council on Strategic Foresight.
    • Peter Audet: An Australian consultant who improves client’s tax and business situation after an initial act of kindness.
    • Reid Hoffman: LinkedIn founder who wrote an article called “Connections with Integrity.”
    • Rick Kot: At Viking, goes above and beyond for author Adam Grant.
    • Rob Bauer: A Simpsons fan who crossbred tomato and tobacco into “tomacco.”
    • Robb Willer: Sociologist who studies how groups reward individual sacrifice.
    • Russell Simmons: Co-founder of Def Jam Records, known for finding and promoting givers.
    • Shalom Schwartz: Psychologist who has studied values in different cultures around the world.
    • Stu Inman: Former NBA director of player personnel, a known “giver” who made mistakes when drafting players, and who felt responsible to the team over ego or sunk cost.
    • Tommie Smith: Exceptional athlete, recruited by Stu Inman, who switched from basketball to track and whose decision was supported by Inman.
    • Wayne Baker: Organizational behavior professor who studies and implements “Reciprocity Rings.”

    This detailed timeline and cast of characters should provide a comprehensive overview of the information presented in your source text.

    Give and Take: A Strategic Approach to Success

    “Give and Take” explores the dynamics of reciprocity in social interactions, categorizing people into three primary styles: givers, takers, and matchers [1, 2].

    Key Concepts:

    • Givers are other-focused, preferring to give more than they get, sharing their time, energy, knowledge, skills, ideas, and connections without expecting anything in return [3]. They are motivated by the benefits to others [3].
    • Takers are self-focused, seeking to get more than they give, tilting reciprocity in their own favor, and prioritizing their interests [4]. They believe the world is a competitive, “dog-eat-dog” place where they need to be better than others to succeed [4].
    • Matchers operate on the principle of fairness, striving to maintain an equal balance of giving and getting, and expecting reciprocity when they help others [2].

    The book argues that while it might seem that takers have an advantage, givers can achieve greater success and produce more lasting value [5]. It also notes that these styles are not fixed, and individuals may shift between them across different roles and relationships [6].

    Networking:

    • Takers often view networking as a self-serving activity to advance their own interests [7]. They can be good fakers who act generously to gain access to others’ networks [8]. However, they may have difficulty maintaining this facade [9].
    • Matchers tend to build smaller networks because they limit themselves to relationships where there is a quid pro quo [10].
    • Givers are able to produce far more lasting value through their networks [5]. They approach networking with a genuine interest in helping others [7]. Givers often act as “suns” in networks, injecting energy and creating opportunities for others [11].

    Collaboration:

    • Givers collaborate effectively by respecting others’ ideas, sharing credit, and creating opportunities for others [11].
    • Takers, on the other hand, may struggle to collaborate effectively due to their focus on their own viewpoints [12]. They may also be viewed with skepticism by colleagues who see them as self-serving [13].
    • Matchers tend to give a bonus to givers in collaborations, while also penalizing takers [14].

    Influence:

    • There are two fundamental paths to influence: dominance and prestige [15].
    • Takers tend to pursue dominance through powerful communication, speaking forcefully and promoting their accomplishments [15].
    • Givers tend to build prestige through powerless communication, such as asking questions and expressing vulnerability [16, 17].
    • Powerless communication is an effective way for givers to build relationships and trust, which often leads to greater influence [18].
    • Givers ask questions and listen to answers, showing their interest in others and building prestige, which helps them understand and meet others’ needs [19-21].

    Potential Pitfalls for Givers:

    • Givers may be vulnerable to burnout if they give too much time and energy at the expense of their own needs [22].
    • They can become “doormats” if they give too much credit and engage in too much powerless communication [22].
    • Givers may be more susceptible to the “doormat effect,” where they are willing to make large concessions to reach an agreement, even if they have better options [23].

    Strategies for Givers to Protect Themselves:

    • Sincerity Screening: Givers can learn to identify potential takers and adjust their behavior [24].
    • Generous Tit for Tat: Givers should start out by trusting others but be willing to shift to a matching strategy with takers [25, 26]. This involves alternating between giving and matching, rewarding good turns and occasionally forgiving bad ones [26].
    • Empathy vs. Perspective: Givers should consider not only others’ feelings but also their thinking, so they can appeal to the self-interest of takers [27].
    • Assertiveness: Givers should be assertive when advocating for their own and others’ interests [28, 29]. They can use “relational accounts” when asking for things that focus on the interests of others in addition to their own [28].

    Creating a Culture of Giving:

    • Reciprocity Rings: These are structured group activities that help people to make requests and help one another [30, 31].
    • Love Machines: These reward people for giving in ways that leaders and managers rarely see and make acts of giving more visible [32, 33].
    • Five-Minute Favors: Givers can look for ways to help others at a minimal personal cost, like offering feedback and making introductions [33].
    • Generalized Giving Systems: Givers can encourage giving by establishing norms where everyone contributes [34, 35].
    • Focus on Behavior: Change behaviors first, and attitudes will follow. This can encourage takers to start giving [36].

    The book suggests that giving is not just about being nice but being strategic [37, 38]. By understanding the dynamics of giving, taking, and matching, people can harness the benefits of giving while minimizing the costs. Givers can climb the ladder of success by being otherish, meaning they keep their own interests in the rearview mirror, but still take care to trust and verify [39]. The book also addresses how to avoid burnout and the doormat effect that can come with giving without balance . It explains that giving can be a sustainable path to success when givers become more strategic and adopt a range of other behaviors .

    Giving, Taking, and Matching: Strategies for Success

    Based on the provided sources, here are some success strategies related to giving, taking, and matching:

    Understanding Reciprocity Styles

    • Recognize the three fundamental styles of social interaction: giving, taking, and matching [1].
    • Understand that people usually develop a primary style that influences how they approach most people, most of the time [1].
    • Be aware that the lines between these styles are not rigid, and people may shift from one style to another across different roles and relationships [1].
    • Recognize that while givers can be seen as weak, they can be surprisingly successful [2, 3].

    Strategies for Givers

    • Give first, but don’t be a doormat: Givers should aim to contribute value without worrying about immediate returns, but they should not become pushovers [3-5].
    • Be otherish: Focus on benefiting others and contributing to their success, which can create a ripple effect that enhances your own success [6].
    • This includes having high concern for your own interests and high concern for the interests of others [7].
    • Look for win-win solutions where everyone can benefit [7].
    • Develop a strong network: Givers build strong networks by asking thoughtful questions and listening patiently. They focus on creating connections and helping others, which leads to opportunities [8].
    • Collaborate effectively:
    • Givers should take on tasks that are in the group’s best interest, not necessarily their own [9].
    • They should create a climate where everyone feels safe to contribute and take risks [10].
    • Givers should also be willing to challenge the status quo and offer new ideas [11].
    • Use powerless communication:
    • Instead of trying to dominate, givers should use communication styles that express vulnerability, such as asking questions, admitting weaknesses, and seeking advice [12-15].
    • This approach can build trust, rapport, and prestige [15].
    • Focus on “Motivation Maintenance”:Balance other-interest with self-interest to avoid burnout [16].
    • Find meaning in helping others, as it can provide energy [17, 18].
    • Make sure your giving has a positive impact .
    • Avoid being exploited:Be aware of the “doormat effect,” where givers make too many concessions [19].
    • Be prepared to shift from giving unconditionally to a more measured approach of “generous tit for tat,” rewarding good turns and occasionally forgiving bad ones [19, 20].
    • Scan environments for potential takers, and be ready to analyze their thoughts, not just feel their emotions [20].
    • Advocate for yourself and others: Be assertive when advocating for your own and others’ interests, drawing on your commitment to the people who matter to you [20, 21].
    • Take perspective: Understand other people’s interests in addition to their feelings [7, 22].
    • Create value: Rather than simply giving away value, givers should create value first so there is enough to claim for themselves [7].
    • Be strategic and flexible: Givers should not be rigid about sticking with a single style across all interactions, and they should be comfortable with a matching approach when necessary [20].

    Strategies for Matchers

    • Recognize value in giving: Matchers should understand that giving is not just altruistic, it can also create value [23].
    • Reward givers: Matchers should give a bonus to givers in collaborations [11, 24].
    • Penalize takers: Matchers should impose a tax on takers [11, 25].

    Strategies for Takers (and those wanting to avoid being taken advantage of):

    • Recognize the limitations of taking: Takers might achieve short term gains, but they may ultimately undermine their success by damaging relationships and missing opportunities to expand the pie [26-28].
    • Consider shifting your style: Takers might consider shifting toward a more giver-oriented approach to increase long-term success [23].
    • Be aware of your reputation: Takers should know that their behaviors leak traces of their motives and that people may begin to question their sincerity [29].
    • Be sincere when trying to help: If you want to be a strategic matcher, your efforts to help others must be perceived as genuine, or you may suffer a negative backlash [29].
    • Avoid being overly self-interested: By being overly self-focused, takers might miss opportunities to collaborate and expand their influence [4].
    • Be careful of overconfidence: Takers often believe that their competence is higher than it actually is [30].

    General Strategies

    • Embrace a long term view: See success as something that unfolds over time, not simply in isolated transactions [5, 7, 31].
    • Focus on impact: Success can be defined as individual achievements that have a positive impact on others [32-34].
    • Recognize the power of the collective: The sum of a group of givers is greater than the sum of their parts [34].
    • Be aware of your own style: Be aware of your tendencies and how they affect your interactions and relationships [1].

    These strategies emphasize that success is not just about individual achievement, but also about building relationships, collaborating effectively, and creating value for others [6, 35]. While givers may face unique challenges, they are also well-positioned for long-term success if they are strategic and avoid the pitfalls of being overly selfless [3].

    The Giver’s Advantage

    Givers are characterized by their other-focused approach, prioritizing the needs and benefits of others, often more than their own [1]. They are inclined to share their resources, including time, energy, knowledge, skills, ideas, and connections, without expecting anything in return [1]. The sources offer insight into the traits, motivations, and behaviors that make up a giver profile, as well as how they are viewed by others and how they achieve success.

    Key Traits and Behaviors:

    • Other-Focused: Givers are primarily concerned with what other people need from them, as opposed to takers who are more self-focused and evaluate what others can offer them [1].
    • Generosity: They strive to be generous in sharing their resources with others who can benefit from them [1]. This generosity is not limited to monetary donations but extends to sharing their time, knowledge, and skills [1].
    • Trusting: Givers tend to be trusting and optimistic about other people’s intentions, which can be a strength but also a vulnerability [2, 3]. They often start by viewing people as “bloomers” and try to bring out the best in them [2].
    • Humility: Givers are often humble and uncomfortable asserting themselves directly [4]. They tend to downplay their own contributions and are more likely to give credit to others [5-8].
    • Perspective-Taking: Givers are motivated to put themselves in other people’s shoes and consider different viewpoints [9]. They are more inclined to ask questions than offer answers, talk tentatively, admit weaknesses, and seek advice [10].
    • Powerless Communication: Givers often use powerless communication to build rapport and trust. They tend to ask questions, listen to answers, and express vulnerability [11].
    • Focus on Impact: They see success as individual achievements that have a positive impact on others [12].
    • Openness: Givers are more open to new ideas, and they are willing to listen to those who challenge their status quo [13].

    Motivations:

    • Other-Interest: Givers are primarily motivated by helping others and working for the well-being of others [14, 15]. They are motivated to benefit others, so they find ways to put themselves in other people’s shoes [9].
    • Self-Interest: Successful givers, described as “otherish,” balance other-interest with self-interest [16, 17]. They understand that their success is intertwined with the success of others and that by helping others, they create value for themselves [17, 18].
    • Internalized Identity: Givers tend to internalize giving as part of their identities. They make a conscious decision to give and then recognize themselves as a giver [19].

    How Givers are Viewed:

    • Initially Underestimated: Givers are often stereotyped as chumps and doormats [20], but they can be surprisingly successful [20].
    • Positive Reputation: Givers often build a positive reputation for being generous and helpful. This can lead to people wanting to help them in return [21].
    • Credibility: In collaborations, givers are often given extra credit when they offer ideas that challenge the status quo [22]. When a giver is tough, their colleagues know it’s because they care about getting it right [22].
    • Trustworthiness: People see givers as more trustworthy, and they are more likely to be honest and humble [23].

    Types of Givers:

    • Selfless Givers: They give without regard for their own well-being, often to the point of burnout [17]. They may end up being exploited by takers and may fall to the bottom of the success ladder [17]. They do not balance other-interest with self-interest [17].
    • Otherish Givers: They are generous and helpful, but they are also strategic and mindful of their own needs [17]. They give in ways that are energizing rather than exhausting, making them more sustainable in the long run [18]. They understand that their success is intertwined with the success of others and that by helping others, they create value for themselves [17, 18].
    • Disagreeable Givers: These are people who are rough and tough in demeanor but are ultimately generous [24]. They may come across as cold or confrontational, but they are still generous with their time, expertise, and connections [24].

    Success Strategies for Givers:

    • Strategic Giving: Successful givers are strategic in their giving, making sure it is sustainable and has an impact [25, 26]. They do not give without regard for their own needs [27].
    • Sincerity Screening: Givers are able to identify potential takers by paying attention to how genuine they seem [28]. They can discern whether others are focused on learning and developing or merely self-promoting [28].
    • Generous Tit for Tat: They start out by trusting others but are willing to shift to a matching strategy with takers by alternating between giving and matching [29].
    • Building Networks: They cultivate strong and lasting networks by focusing on genuine connections and helping others [29, 30]. Givers approach networking with a genuine interest in helping others and are able to produce more lasting value through their networks [31].
    • Collaboration: Givers create opportunities for others to contribute, resulting in more successful teams [32]. They use their intelligence to amplify the smarts and capabilities of other people, such that “lightbulbs go off over people’s heads, ideas flow, and problems get solved” [32].
    • Powerless Communication: They use a communication style that expresses vulnerability, which helps them build trust and influence [11]. They are inclined to ask questions and listen to answers to show they care about the interests of others [11].
    • Motivation Maintenance: They are able to find ways to give without burning out. Otherish givers build up a support network they can access for help when needed, and they may distribute their acts of kindness evenly across different days [17, 33].
    • Assertiveness: They learn to be assertive when advocating for their own and others’ interests. They use “relational accounts” to frame their requests in terms of how they benefit others [34].
    • Flexibility: They are able to adjust their reciprocity styles across different relationships [26].

    In conclusion, the giver profile is complex, encompassing a range of behaviors, motivations, and strategies. Successful givers are not merely altruistic; they are strategic, flexible, and focused on creating value for themselves and others. They understand that giving is a powerful tool for building relationships, collaborating effectively, and achieving long-term success [20, 26, 35].

    Powerless Communication: Influence Through Vulnerability

    Powerless communication is a style of communication that emphasizes vulnerability, tentativeness, and a focus on the perspectives and interests of others [1, 2]. It is often contrasted with powerful communication, which is characterized by dominance, assertiveness, and self-promotion [3]. The sources suggest that givers instinctively adopt a powerless communication style, which proves surprisingly effective in building prestige and influence [2].

    Key aspects of powerless communication include:

    • Vulnerability: Powerless communicators are comfortable expressing vulnerability, revealing their weaknesses, and making use of disclaimers, hedges, and hesitations [1, 4, 5]. They are not afraid to expose “chinks in their armor,” because they are interested in helping others, not gaining power over them [4].
    • Questioning: They are more inclined to ask questions than offer answers, seeking to understand others’ viewpoints and interests [2]. This approach signals that they value others’ opinions and are open to learning from them [6, 7].
    • Tentativeness: They talk tentatively rather than boldly, using “hedges” such as “kinda,” “sorta,” “maybe,” and “I think” [1, 2, 5]. They also use tag questions, such as “that’s interesting, isn’t it?” or “that’s a good idea, right?” [5].
    • Advice-Seeking: They seek advice from others, admitting that others might have superior knowledge [2, 8]. This conveys uncertainty and makes them vulnerable, but it also encourages greater cooperation and information sharing [8].
    • Listening: They are more inclined to listen and are not concerned with demonstrating their knowledge [9].

    How Powerless Communication Builds Influence:

    • Prestige: Instead of establishing dominance, powerless communication helps build prestige, which is based on respect and admiration [2, 3].
    • Rapport: By expressing vulnerability, givers using powerless communication can connect with others on a deeper level and build rapport [10, 11].
    • Trust: Powerless communication helps build trust, as it signals that the speaker is not trying to manipulate or control others [11, 12].
    • Persuasion: People are more receptive to influence when they do not feel like someone is trying to control them [13]. By talking tentatively, powerless communicators show a willingness to defer to others or at least take their opinions into consideration [12].

    Examples of Powerless Communication in Action:

    • Presenting: When presenting to a skeptical audience, a vulnerable approach can help the speaker connect with the audience and win them over [10]. Instead of emphasizing their expertise, they may open by sharing their own failures [10, 14].
    • Selling: Salespeople who ask questions and listen to the answers show customers that they care about their interests. This builds prestige and makes them more successful at selling [6, 15, 16].
    • Persuading: When trying to persuade, using a softer approach and presenting a sample of their idea can be more effective than a forceful approach [17]. By adding disclaimers and tag questions, they may be more effective in influencing others [12, 18].
    • Negotiating: Instead of focusing on their own goals, those seeking to negotiate can ask for advice on how to meet their goals, which can encourage greater cooperation and information sharing [19].

    Powerless Communication vs. Powerful Communication:

    • Powerful Communication: Takers often use powerful communication to establish dominance, speaking forcefully, raising their voices to assert their authority, expressing certainty, and promoting their accomplishments [3]. This approach is effective for gaining dominance, but it may not be the most effective way to build lasting relationships and influence [1, 3].
    • Limitations of Powerful Communication: Powerful communication can stifle information sharing, and it may cause others to resist being influenced [20, 21]. It can be effective in some situations but may not be conducive to team success [21].

    When Powerless Communication is Most Effective:

    • When you lack credibility or status: Powerless communication works especially well when the audience is already skeptical [7].
    • In teams and service relationships: When people have to work closely together, powerless speech is more influential [18].
    • When employees are proactive: When employees are proactive and generating new ideas, leaders who talk less assertively and more tentatively are more effective [21].
    • Building rapport and trust: Powerless communication is useful in situations where it is important to build rapport and trust [11].

    Potential Drawbacks of Powerless Communication:

    • May be perceived as lacking leadership; if a person uses “we” and “us” instead of “I” or “me,” they may not be seen as a strong leader [22].
    • May be less effective in one-shot situations, such as a job interview: In a one-shot job interview, powerful communication might be more effective, as the goal is to impress and establish dominance [20].
    • Can be manipulated by takers: If the audience perceives the communication as insincere, they may view the speaker as weak and easy to exploit [4].

    Strategic Use of Powerless Communication:

    • Givers often adopt powerless communication naturally as they value the perspectives and interests of others [2, 11].
    • Powerless communication must be balanced with competence: It is only effective if the audience also receives signals that establish the speaker’s competence [4].
    • Assertiveness is necessary in some cases: Givers should also be assertive when advocating for their own and others’ interests [9, 23].

    In conclusion, powerless communication is a valuable tool for givers seeking to build influence. By expressing vulnerability, asking questions, talking tentatively, and seeking advice, givers can build rapport, earn respect, and ultimately achieve their goals. However, it is important to use this style strategically and balance it with assertiveness when necessary.

    Overcoming Giver Burnout

    Burnout is a state of emotional, physical, and mental exhaustion caused by excessive and prolonged stress [1]. The sources suggest that givers are particularly vulnerable to burnout because they tend to put others’ interests ahead of their own, often helping others at the expense of their own well-being [1, 2]. However, not all givers experience burnout, and understanding why some givers burn out while others thrive is key to managing and overcoming it [3-5].

    Here’s a breakdown of how to overcome burnout, according to the sources:

    1. Understanding the Causes of Burnout:

    • Selfless Giving: Selfless givers have high other-interest and low self-interest, giving their time and energy without regard for their own needs, which can lead to burnout [6]. They may miss class or fail to study because they are attending to friends’ problems [6].
    • Lack of Impact: Givers may experience burnout when they feel their efforts are not making a difference [7, 8]. When they are unable to help effectively, or when they do not receive feedback on their impact, their efforts can become more exhausting [7, 8].
    • Overwork: Givers may overextend themselves by giving too much time and energy to others [4].

    2. Shifting from Selfless to Otherish Giving:

    • Balancing Self-Interest and Other-Interest: Otherish givers are willing to give more than they receive, but they also keep their own interests in sight [9]. They use their own interests as a guide for choosing when, where, how, and to whom they give [9]. Successful givers integrate self-interest and other-interest, so they can do well by doing good [9].
    • Giving in Ways That Are Personally Rewarding: Instead of giving where they feel obligated, otherish givers find opportunities for giving that are also personally rewarding [10]. This can include seeking out areas of giving where they feel passionate and can see their impact [11, 12].

    3. Strategies for Overcoming Burnout:

    • Chunking Giving: Instead of spreading their giving thinly across many days, otherish givers concentrate their efforts into larger blocks, like volunteering for a few hours one day a week [13, 14]. This allows them to experience their impact more vividly, making their efforts feel more meaningful [14].
    • Sprinkling Giving: Another form of giving involves distributing giving evenly across many days [13, 14].
    • Seeking Help: Otherish givers are not afraid to ask for help when they need it [15]. They understand the importance of protecting their well-being and seek support from colleagues, which helps them maintain their motivation and energy [15].
    • Expanding Giving to New Domains: When givers feel burned out in one area, they can expand their contributions to different areas [16]. This helps to recharge their energy, as a new setting and a new group of people can make giving feel fresh and less like a chore [16].
    • Connecting with the Impact of Giving: Organizations can connect employees to the impact of their products and services to help them avoid burnout [17]. Seeing how their work benefits others can help givers feel like they are making a difference, which is a key motivator [17].
    • Setting Boundaries: Givers must also set boundaries to protect their own time and energy [18, 19]. This can include strategies like setting aside “quiet time” to complete their own work without interruptions [18, 20].
    • Practice Powerless Communication: Powerless communication can open doors to influence, but must be balanced with assertiveness [21, 22].
    • Tend and Befriend: When stressed, people are inclined to come together in groups to provide and receive support [23]. Givers can build a support network through helping others [24].
    • Give More: Counterintuitively, giving more can help givers avoid burnout if it allows them to have a greater impact and feel more energized [16, 25].

    4. The Myth of Giver Burnout:

    • Givers may actually be more resilient to burnout than matchers and takers [26].
    • Giving can build willpower: Givers strengthen their psychological muscles through consistently overriding their selfish impulses in order to help others, making it less exhausting to use willpower [27].
    • Giving can add meaning to our lives: It helps us feel valued by others [28]. Otherish givers access reserves of happiness and meaning through giving, which takers and matchers cannot [29].

    5. Organizational Strategies to Support Givers:

    • Reciprocity Ring: Encourage people to ask for help and provide assistance to others .
    • Job Crafting: Allow employees to work on tasks that are more interesting, meaningful or developmental to them [30].
    • Peer Recognition Programs: Reward people for giving in ways that leaders and managers rarely see [31].

    By implementing these strategies, givers can avoid burnout, maintain their energy, and continue to contribute meaningfully to their communities and organizations [5, 32].

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Al Riyadh Newspaper, April 4-5, 2025: Real Estate Development, Housing Supply, Riyadh Metro, Removal of Unplanned Structures

    Al Riyadh Newspaper, April 4-5, 2025: Real Estate Development, Housing Supply, Riyadh Metro, Removal of Unplanned Structures

    The provided sources, primarily from the Saudi newspaper Al Riyadh, focus on recent and future developments in the Saudi Arabian real estate market, particularly in Riyadh and Mecca. Several articles detail new regulations and initiatives led by Crown Prince Mohammed bin Salman to address rising property prices, increase housing supply, and improve the real estate sector’s organization. One article highlights the positive impact of the Riyadh Metro on tourism. Another explores international approaches to housing affordability crises in countries like Australia, China, and others, drawing potential lessons for Saudi Arabia. Finally, there is coverage of efforts to remove unplanned structures in Mecca to facilitate urban development.

    01
    القيادة تهنئ رئيس جمهورية السنغال بذكرى يوم استقلال بلاده بعث خادم الحرمين الشريفين الملك سلمان بن عبدالعزيز آل سعود، برقية تهنئة، لفخامة الرئيس باسيرو ديوماي دياخار فاي رئيس جمهورية السنغال، بمناسبة ذكرى يوم الاستقلال لبلاده.

    The Riyadh Real Estate Market and Related Economic Developments: A Study Guide

    Quiz

    1. According to the article, what were the key directives issued by the Crown Prince regarding the real estate market in Riyadh? Briefly describe two of these directives.
    2. How does the “Riyadh Train” project aim to enhance tourism within the capital city, as mentioned in the source? What evidence supports this claim?
    3. The article highlights the importance of the citizen in Saudi Arabia’s Vision 2030. Explain how the recent real estate decisions align with the goals of this vision, particularly concerning citizens.
    4. What is the stated goal behind setting a price ceiling of 1500 riyals per square meter for residential land in Riyadh? What are the anticipated positive impacts of this measure?
    5. The article discusses raising the “white land tax.” What is the purpose of this tax, and what changes are being proposed to it?
    6. How will the recent decisions aim to balance the supply and demand of real estate in Riyadh? Mention at least two specific actions intended to achieve this balance.
    7. What role does the article suggest the real estate sector plays in supporting the broader national economy of Saudi Arabia? Provide at least two examples.
    8. According to Minister of Economy and Planning, Faisal Al-Ibrahim, how will the regulatory intervention in the real estate sector positively affect other sectors of the economy?
    9. The article mentions the establishment of a platform to receive land purchase requests. What does this initiative suggest about the government’s approach to land distribution?
    10. Briefly summarize the overall sentiment expressed in the articles regarding the Crown Prince’s directives and their potential impact on the Riyadh real estate market and its residents.
    01
    قطار الرياض يحسّن تجربة السياح داخل العاصمة

    Answer Key

    1. The Crown Prince issued directives focused on addressing challenges in the real estate market and developing the housing sector. Two key directives included setting a price ceiling of 1500 riyals per square meter for residential land and raising the “white land tax” to encourage development.
    2. The “Riyadh Train” aims to improve the tourist experience by making it easier for visitors to navigate the city and access attractions. A recent survey indicated a 96% increase in visitor satisfaction after using the train, suggesting its positive impact.
    3. The real estate decisions, such as providing affordable land and regulating the market, align with Vision 2030 by prioritizing citizen well-being and providing them with greater access to housing, a key objective of the vision.
    4. The goal of the 1500 riyal price ceiling is to increase the supply of affordable housing and improve the quality of life for Saudi citizens. This is expected to lead to social stability, increased homeownership, and support for national economic growth.
    5. The “white land tax” aims to discourage land speculation and encourage development of vacant land. Proposed amendments seek to expedite land development or the payment of the tax.
    6. Actions to balance supply and demand include releasing more residential land at a fixed price and lifting development moratoriums on land north of Riyadh. These measures aim to increase the supply of available properties and cater to the needs of individuals and the private sector.
    7. The real estate sector is portrayed as a fundamental pillar of the Kingdom’s future and a significant contributor to the national economy. It supports over 150 other industries and creates new job opportunities, driving overall economic growth.
    8. Minister Al-Ibrahim stated that regulating the real estate sector and stabilizing housing costs will free up household spending, leading to increased expenditure and consumption in other sectors of the economy.
    9. The establishment of a platform for land purchase requests indicates a more organized and transparent approach to land allocation, aiming to streamline the process for citizens seeking to acquire residential land.
    10. The overall sentiment is highly positive, with the articles portraying the Crown Prince’s directives as historic, beneficial for the nation and its citizens, and a significant step towards stabilizing the real estate market, increasing homeownership, and fostering economic growth in Riyadh.
    01
    عمارة الحرم المكي الشريف في أولوية اهتمام قادة المملكة

    Essay Format Questions

    1. Analyze the potential short-term and long-term impacts of the Crown Prince’s directives on the real estate market in Riyadh. Consider the perspectives of different stakeholders, including developers, investors, and citizens.
    2. Evaluate the role of the real estate sector in achieving the broader objectives of Saudi Arabia’s Vision 2030. Discuss the interconnectedness of real estate development with other economic and social goals outlined in the vision.
    3. Compare and contrast the various measures discussed in the provided articles aimed at regulating and stimulating the real estate market in Riyadh. Which of these measures do you believe will be most effective and why?
    4. Discuss the significance of prioritizing citizen access to affordable housing as highlighted in the articles. How do the recent real estate decisions reflect this priority, and what are the potential social and economic benefits of this focus?
    5. Based on the information provided, assess the potential of Riyadh to become a leading global city for living, working, and investment, considering the planned developments and regulatory changes in its real estate sector.
    01
    رؤية متكاملة لتنظيم سوق العقار

    Glossary of Key Terms

    • Vision 2030: Saudi Arabia’s ambitious long-term strategic plan aiming to diversify the economy, develop public services, and enhance the quality of life for its citizens.
    • Crown Prince Directives: Official instructions or orders issued by the Crown Prince, in this context, specifically related to the regulation and development of the real estate market.
    • Real Estate Market: The buying, selling, and renting of land and buildings.
    • Price Ceiling: A government-imposed limit on the maximum price that can be charged for a good or service, in this case, residential land.
    • White Land Tax: A levy imposed on undeveloped land within urban areas to encourage its development and reduce land speculation.
    • Riyadh Train (Metro): A public transportation project in Riyadh aimed at improving connectivity and reducing traffic congestion, also intended to enhance tourism.
    • Supply and Demand: Fundamental economic forces that determine the price and quantity of goods and services available in a market.
    • Regulatory Intervention: Actions taken by the government to influence or control the activities within a specific sector, such as the real estate market.
    • Transparency: The quality of being open and honest, providing clear and accessible information, particularly in the context of market transactions and pricing.
    • Sustainability: Development that meets the needs of the present without compromising the ability of future generations to meet their own needs, often applied to economic growth and resource management.
    • Moratorium (on development): A temporary prohibition of an activity, in this case, construction or development on certain land areas.
    • Platform (for purchase requests): A system or channel established to receive and process applications or demands, here, for acquiring land.
    • Economic Diversification: The process of shifting an economy away from reliance on a single sector (like oil) towards a wider range of industries and activities.
    01
    أمير حائل يشهد ختام منافسات مهرجان سباقات الخيل

    Briefing Document: Analysis of “Al Riyadh” Newspaper Excerpts (April 4-5, 2025)

    Source: Excerpts from “Al Riyadh” Newspaper, Issue 20732, Dated April 4-5, 2025

    Main Themes: This briefing document summarizes the key themes and important information presented in the provided excerpts from the Saudi Arabian newspaper “Al Riyadh.” The dominant themes revolve around significant developments and strategic initiatives related to the real estate market, tourism, and national progress aligned with Vision 2030, particularly in Riyadh. Additionally, there are sections covering religious affairs (expansion of the Holy Mosques), local traditions, international housing crisis comparisons, health-related articles (sleep, digestive issues, gluten sensitivity, pregnancy sleep), and sports news.

    01
    المَلّة والعريكة.. تزينان موائد عيد الطائف

    Key Ideas and Facts:

    1. Comprehensive Vision for Real Estate Market Regulation:

    • Prince Mohammed bin Salman’s Directives: On the eve of Eid al-Fitr, the Crown Prince and Prime Minister issued important directives to address challenges in the real estate market. This signifies high-level attention and prioritization.
    • Goals: The primary goals are to stabilize prices, ensure the stability of the real estate market, and support the Kingdom’s efforts to develop the housing sector and improve real estate services across all regions.
    • Economic Impact: These measures are expected to contribute to supporting the national economy, involving both the public and private sectors.
    • Quote: “…important directives from His Royal Highness Prince Mohammed bin Salman – may God protect him – to take a number of measures aimed at addressing the challenges facing the real estate market…”
    01
    إشادة إيطالية بجناح مكتبة الملك عبدالعزيز في بولونيا

    2. Riyadh Train Enhances Tourist Experience:

    • Significant Increase in Visitors: A survey revealed a 96% increase in visitors to Riyadh after using the Riyadh train.
    • Tourism Focus: This initiative is part of broader tourism efforts to showcase the Kingdom’s achievements in the sector.
    • Positive Impact: The train project is seen as positively reinforcing the Kingdom’s Vision 2030 in developing infrastructure and boosting tourism.
    • Vision Alignment: This aligns with the Vision 2030 goals of transforming the Kingdom into a global tourist destination with comprehensive offerings.
    • Quote: “A survey revealed a 96% increase in visitors to Riyadh after using the Riyadh train…”
    01
    نائب الرئيس: ترامب سيصدر قراره بشأن تيك توك قبل انتهاء المهلة

    3. Citizen Well-being as the Core of National Development:

    • Clear Goals for Citizen Welfare: The state is taking clear steps with specific goals aimed at making citizens’ lives easier and more seamless.
    • Citizen as a Key Element of Vision 2030: The citizen is presented as a crucial and active element in the progress of the Vision 2030 development plan.
    • Prince Mohammed bin Salman’s Emphasis on Citizens: The Crown Prince emphasized the importance of citizens, stating that “Since the launch of the Kingdom’s Vision 2030, the citizen has been at the forefront of our attention and its goal; he is its pillar…”
    • Holistic Plan: Vision 2030 is described as a comprehensive plan serving the nation and its citizens, opening unprecedented horizons.
    01
    يوروبول: تفكيك شبكة ضخمة لاستغلال الأطفال جنسيا واعتقال 79 شخصا

    4. Historic Royal Decrees to Transform Riyadh’s Real Estate Sector:

    • Unprecedented Step: The Crown Prince issued a package of historic decisions aimed at a qualitative shift in Riyadh’s real estate sector.
    • Vision 2030 Goals: These decisions contribute to achieving the goals of Vision 2030 and fulfilling the dreams of Saudis regarding homeownership.
    • Economic Future: The measures aim to shape the future of the national economy.
    • Personal Attention to Real Estate: The Crown Prince is personally invested in the details and prosperity of the real estate sector.
    • Global Leading City: The goal is to transform Riyadh into a world-class, attractive, and sustainable city for living, working, and investing, achieving well-being for Saudi citizens.
    • Support for Multiple Industries: The growth of the real estate sector supports over 150 other industries, highlighting its strategic importance to the national economy.
    01
    عيد الفطر بعيون الأطفال

    5. Enhancing Market Attractiveness and Addressing Challenges:

    • Leadership’s Focus on Solutions: The leadership emphasizes providing effective solutions to the challenges facing the real estate sector.
    • Directives for Removing Obstacles: Directives were issued to relevant authorities to work on removing all obstacles hindering the growth of this vital sector.
    • Stabilizing the Market: The aim is to achieve stability in the real estate market, protect the rights of all parties, and regulate real estate transactions.
    • Boosting Investment: This will enhance the attractiveness of the market for both local and foreign investments, creating a stable investment environment.
    01
    فرحة العيد بعيون جيل المستقبل

    6. Increasing Housing Supply and Facilitating Ownership:

    • Approval for Increased Supply: Royal approval was granted to enhance the supply of residential and commercial units.
    • Diverse Options: The goal is to provide diverse options that suit different social segments.
    • Price Reduction and Homeownership: This is expected to contribute to lower prices and facilitate homeownership for citizens.
    • Urban Renaissance in Riyadh: These steps will bolster the urban renaissance in Riyadh and transform it into a global cultural center.
    • Competition and Quality of Life: Encouraging developers to offer the best will improve the quality of life in the capital and support the national economy by increasing investments and creating new job opportunities.
    01
    فرحة العيد بعيون جيل المستقبل

    7. Affordable Land for Saudi Families:

    • Royal Directive for Affordable Land: A royal directive mandates the Royal Commission for Riyadh City to work on providing planned residential lands at prices not exceeding 1500 riyals per square meter.
    • Social Stability and Fairness: This aims to support social stability, enhance citizens’ sense of security, and achieve fairness in wealth distribution.
    • Support for Young Couples: It will help young people getting married to obtain residential land at suitable prices, easing financial burdens on families.
    01
    فرحة العيد بعيون جيل المستقبل

    8. Transparency and Price Monitoring:

    • Leadership’s Commitment to Transparency: The leadership is keen on raising the level of transparency in the real estate market and monitoring prices closely.
    • Preventing Price Manipulation: This will enable citizens and investors to make informed decisions and limit price manipulation, positively impacting the Saudi economy and boosting market confidence.
    01
    فرحة العيد بعيون جيل المستقبل

    9. Accelerating Housing Solutions and Vision 2030 Implementation:

    • Government Commitment: These efforts reflect the government’s commitment to providing quick and effective solutions to housing challenges and supporting the goals of Vision 2030 in providing an accessible and sustainable housing environment.
    • Improving Public Services: Ultimately, these measures aim to improve the level of services provided to citizens.
    • Real Estate as a Cornerstone: The real estate sector is presented as a fundamental pillar in building the Kingdom’s future, not just an economic sector but an integral part of national identity and civilization building.
    01
    فرحة العيد بعيون جيل المستقبل

    10. Lifting Development Stoppages in Northern Riyadh:

    • Supporting Urban Expansion: Lifting development stoppages in northern Riyadh will contribute to accelerating urban expansion and meeting the needs of population growth.
    • Enhancing Riyadh’s Global Standing: This aims to further enhance Riyadh’s position as a modern capital and a global economic center.
    • Balancing Supply and Demand: The directives will contribute to achieving a greater balance between the supply and demand for real estate in Riyadh, providing suitable options for individuals and the private sector.
    01
    فرحة العيد بعيون جيل المستقبل

    11. Providing Affordable Housing Units:

    • Royal Commission to Provide Land: The Royal Commission for Riyadh City will work on providing planned residential lands, ranging from 10,000 to 40,000 plots annually over the next five years.
    • Price Ceiling: These lands will be priced no higher than 1500 riyals per square meter.
    • Prioritizing Citizen Welfare: This reaffirms the leadership’s priority in providing a dignified life for Saudi families and directly contributing to strengthening the real estate supply.
    01
    فرحة العيد بعيون جيل المستقبل

    12. Increasing Transparency and Stability:

    • Citizen and Investor Confidence: The Kingdom’s commitment to raising the level of transparency will empower citizens and investors to make effective decisions in a more stable and sustainable Saudi real estate market.

    13. Swift Implementation and Government Commitment:

    01
    فرحة العيد بعيون جيل المستقبل
    • Accelerating Procedures: Efforts reflect the acceleration of procedures related to real estate, indicating the government’s dedication to providing housing solutions.
    • Studies and Consultations: These measures are based on studies conducted by the Royal Commission for Riyadh City and consultations with economic development affairs and the Riyadh City Council.
    01
    فرحة العيد بعيون جيل المستقبل

    14. New Areas to Accommodate Population Growth:

    • Land Allocation: The Royal Commission for Riyadh City will work on providing planned and developed residential lands for citizens, between 10,000 to 40,000 plots annually for the next five years.
    • Eligibility Criteria: This is targeted towards married citizens or those over 25 years old, with conditions including no prior real estate ownership and restrictions on selling, renting, mortgaging, or disposing of the land within 10 years (excluding mortgage for construction).
    • Recapture Clause: If construction is not completed within this period, the land will be reclaimed, and the original value will be returned.
    01
    فرحة العيد بعيون جيل المستقبل

    15. Swift Regulatory Reforms:

    • Amendments to Vacant Land Tax: Necessary regulatory procedures will be taken to issue proposed amendments to the vacant land tax system within 60 days to boost the real estate supply.
    • Regulating Landlord-Tenant Relationship: Procedures will also be implemented within 90 days to regulate the relationship between landlords and tenants, ensuring a balance of interests.
    01
    فرحة العيد بعيون جيل المستقبل

    16. Minister of Economy and Planning’s Statement:

    • Rapid Solutions for Housing Challenges: The new procedures in Riyadh’s real estate market aim to provide rapid solutions to residential real estate challenges, as directed by the Crown Prince.
    • Price Cap and Citizen Well-being: The price ceiling of 1500 riyals per square meter aims to enhance the residential supply and achieve the well-being of Saudi citizens.
    • Improving Quality of Life: The primary goal is to raise the quality of life and stabilize household spending on residential real estate.
    • Stimulating Other Sectors: Regulatory intervention is expected to increase spending and consumption in other sectors beyond real estate, positively impacting the overall economy.
    • Lower Costs for Private Sector: This will reduce the cost of real estate for the private sector, enabling SMEs and entrepreneurs to invest.
    • Regular Reporting: The Royal Commission for Riyadh City will be tasked with monitoring land supply and prices and submitting periodic reports.
    • Lifting Land Stoppages: Land stoppages north of the city have been lifted to open new horizons for development and investment.
    • Urban Development and Vision 2030: This step supports urban development and aligns with Vision 2030 targets.
    • Leveraging Potential: The decision reflects the direction towards leveraging Riyadh’s significant potential, stimulating real estate and investment projects, and creating more opportunities for businesses and developers.
    • Attractive Destination: This will enhance Riyadh’s attractiveness for residents and investors alike.
    01
    فرحة العيد بعيون جيل المستقبل

    17. Minister of Municipal and Rural Affairs and Housing’s Confirmation:

    • Three Pillars of Real Estate Market Balance: The recent measures aim to achieve balance in the real estate market through increasing supply, regulating the sector, and monitoring prices.
    • Impact of White Land Program: The white land program has contributed to developing many areas in the Kingdom, with over 81 million square meters activated in Riyadh under the program.
    • Accelerating Land Development: The system is being amended to incentivize landowners to either develop their land quickly or pay the fee, ensuring a supply of housing projects that meet growing demand.
    • Additional Land Offering: The new procedures include offering additional land in northern Riyadh at a rate of 10,000 to 40,000 plots annually.
    • Diverse Housing Options: This will provide diverse housing options in high-density areas.
    • Review of Rental Sector: The rental sector is undergoing a comprehensive review to develop the contractual relationship between landlords and tenants and introduce new regulatory elements to ensure market stability and fair relationships.
    • Monitoring Mechanism: Continuous monitoring and periodic reports will be submitted to the Economic Affairs and Development Council through the Royal Commission for Riyadh City.
    01
    فرحة العيد بعيون جيل المستقبل

    18. Praise and Gratitude for Leadership’s Vision:

    • The Minister of Municipal and Rural Affairs and Housing expressed thanks to the Crown Prince for the directives, which embody a comprehensive vision for the land in Riyadh.
    • Prioritizing Citizen Needs: The directives prioritize the needs of citizens and confirm the leadership’s commitment to accelerating the pace of real estate development.
    • Enhancing Competitiveness and Quality of Life: This aims to provide a competitive urban environment that raises the quality of life and supports the local economy.
    • Increasing Homeownership: It will contribute to raising the rate of homeownership by providing options for those seeking housing and supports the goals of the Housing Program, a key initiative of Vision 2030.
    • Regulating Rental Market: It is a proactive plan to regulate the residential and commercial rental market in Riyadh.
    • Boosting Riyadh’s Attractiveness: This will enhance Riyadh’s attractiveness as a capital and economic and population growth center.
    01
    فرحة العيد بعيون جيل المستقبل

    19. Chairman of the Real Estate General Authority’s Confirmation:

    • The Chairman affirmed the issuance of necessary regulations for proposed amendments to the white land fee system within 60 days.
    • Stimulating Land Development: This is part of government efforts to stimulate land development, increase the supply of housing, and combat speculation.
    • Enabling Homeownership and Improving Quality of Life: The goal is to enable citizens to own suitable housing and improve their quality of life.
    • Swift Implementation of Directives: Efforts are underway to swiftly implement the leadership’s directives regarding real estate.
    01
    فرحة العيد بعيون جيل المستقبل

    20. Real Estate Expert’s Perspective:

    • A real estate expert, Khaled bin Shaker Al-Mubayyidh, believes these government-approved procedures will have a positive role in curbing inflation in real estate prices.
    • Increased Supply and Attractive Market: Providing a large supply at reasonable prices will boost real estate activity and development, making the market attractive for real estate development companies, ensuring its continued prosperity.
    01
    فرحة العيد بعيون جيل المستقبل

    21. Academic and Expert’s Analysis:

    • Dr. Mohammed Abdul-Raouf Abu Al-Jadayel noted that the Saudi real estate sector is experiencing a period of prosperity supported by the significant successes achieved by the Saudi economy during the past year (2024).
    • Increased Housing Supply and Ownership Rates: The sector witnessed a noticeable increase in the housing supply and ownership rates in 2024.
    • Continuing Development Efforts: This directive confirms the Kingdom’s ongoing efforts to develop the housing sector and improve the real estate services system in various regions.
    • Curbing Inflation and Market Attractiveness: The aim is to curb inflation in real estate prices by providing a large supply at reasonable prices, thereby enhancing continuous real estate activity and making the market attractive for development companies.
    • Achieving Vision 2030 Goals: This contributes to achieving the goals of Vision 2030 by raising the rate of homeownership.
    01
    فرحة العيد بعيون جيل المستقبل

    22. Addressing Real Estate Market Challenges and Ensuring Price Stability:

    • The Crown Prince’s directives are tackling the challenges facing the real estate market and ensuring price stability.
    • Hope for Youth Homeownership: These decisions bring hope to young people seeking to own homes in Riyadh neighborhoods.
    01
    فرحة العيد بعيون جيل المستقبل

    23. International Comparisons of Housing Crisis and Solutions:

    The article provides a comparative overview of the housing crisis and government interventions in several countries:

    • United States: Faces a significant housing shortage and a rising homeless population. Initiatives include zoning reforms, minimum parking requirement eliminations, and debates around rent control. “Housing First” program shows promise in reducing homelessness.
    • China: State-owned developers are playing an increasing role in purchasing land amid a real estate crisis. Government encourages local authorities to buy undeveloped land to stabilize the market and build affordable housing.
    • Australia: Experiencing housing affordability issues and rising homelessness. Government initiatives include expanding the “Help to Buy” shared equity scheme and establishing a Housing Productivity Fund to incentivize increased supply through offsite manufacturing and streamlined approvals.
    • New Zealand: House prices have risen sharply. Government has implemented funding programs for land development and infrastructure, tightened lending restrictions, raised interest rates, and introduced new rules for interest deductibility and foreign investment. Auckland’s zoning reforms in 2016, allowing higher density housing, were successful and are being implemented nationwide.
    • Spain: Facing a growing housing affordability crisis. Government has imposed a 100% tax on residential properties purchased by non-EU residents not living in Spain and increased taxes on short-term rentals.
    • Japan: Has largely avoided a significant housing crisis due to factors like rapid depreciation of houses, emphasis on apartments for individuals and young couples, and a simple zoning system that promotes comprehensive development. Property taxes decrease over time, incentivizing new construction.
    • Austria: Has a significant amount of social and subsidized housing funded by a housing tax. These options are available to people with lower incomes.
    • Netherlands: Grappling with a severe housing crisis in Amsterdam due to demand- стимулирование policies without addressing supply, privatization of housing corporations, and tax benefits for mortgage holders that shifted to benefit existing homeowners. Government now aims to build 900,000 new homes by 2030 and is looking at rent control.
    01
    فرحة العيد بعيون جيل المستقبل

    24. Local Eid Traditions in Taif:

    • “Al-Mallah Al-Jamriyah”: This traditional dish, prepared with ember-cooked dough, honey, local cheese, and ghee, is a staple of Eid al-Fitr in Taif.
    • Symbolic Significance: “Al-Mallah” holds popular cultural significance and is a centerpiece of the Eid table.
    • Celebratory Atmosphere: The article highlights the joyful atmosphere of Eid in Taif.
    01
    العيد فرحة وبهجة

    25. Removal of Informal Settlements in Makkah:

    • Development and Organization: Several government agencies, including the Royal Commission for the Holy City of Makkah and the Holy Sites, the Holy Sites Development Company, the Makkah Municipality, and utility companies, are undertaking measures to remove informal settlements in Makkah.
    • Targeted Areas: This includes areas in the southern western part of the region, specifically in the “Min,” “Hawara,” “Khaza’a,” and “Al-Mowarka” neighborhoods, located on a large area bordered by major roads.
    • Population Demographics: Saudi nationals constitute less than 10% of the residents in these neighborhoods, with a majority being of African, Burmese, and Bangladeshi origin.
    • Vacation of Properties: Residents in several locations have begun moving out of the targeted areas.
    • Government Facilities: Government facilities in these areas (health centers, schools, security offices, municipal service offices) are also being removed due to the dense and interconnected nature of the properties.
    • Challenging Terrain: These informal settlements are located on the slopes of high mountains.
    • Part of Larger Procedures: This removal is part of the procedures followed by regulatory and security authorities and the Royal Commission for the Holy City of Makkah and the Holy Sites.
    01
    العيد فرحة وبهجة

    26. Expansion and Development of the Holy Mosque in Makkah:

    • Historical Significance: The Holy Mosque has undergone numerous expansions throughout history, starting from the time of Caliph Omar ibn al-Khattab.
    • Saudi Era Expansions: The largest expansions occurred during the reigns of King Fahd and King Abdullah bin Abdulaziz, significantly increasing the mosque’s capacity.
    • King Salman’s Projects: Under the reign of King Salman, major projects continue, including the third Saudi expansion, plaza tunnels, pedestrian tunnels, central service station, and the first ring road around the mosque area.
    • Quality Enhancements: These expansions involve high-quality materials, advanced technology for ventilation, and increased facilities.
    • Custodian of the Two Holy Mosques’ Program: The program to serve the guests of Al-Rahman aims to provide quality services to millions of pilgrims and Umrah performers.
    • Integrated Services: This includes the “Road to Makkah” initiative, Makkah bus project, and shuttle transport in Madinah.
    • Enriching the Islamic Cultural Experience: Efforts focus on enhancing the cultural experience and enjoyment of Islamic sites.
    • Vision 2030 Alignment: The program supports Vision 2030 goals of enabling a larger number of Muslims to perform Hajj and Umrah.
    • Increased Capacity: The Kingdom aims to host 15 million Umrah performers annually by 2025.
    • Public-Private Partnerships: Achieving these goals involves developing effective partnerships with the government, private, and non-profit sectors.
    • Strengthening Kingdom’s Position: This enhances the Kingdom’s position as a destination for Muslims worldwide.
    • Local Manufacturing for Expansion: Local content initiatives are supporting the expansion, such as the manufacturing of large water-cooled chillers for the Holy Haram’s cooling systems.
    • High Level of Care: The General Presidency for the Affairs of the Grand Mosque and the Prophet’s Mosque provides high-quality services and care for visitors.
    • Maintenance and Operations: The agency oversees the maintenance and operation of electronic, mechanical, and electrical systems, ensuring optimal performance and readiness.
    • Comprehensive Maintenance Programs: The agency implements plans and studies to cover all maintenance aspects, including lighting, fire extinguishers, water tanks, restrooms, sterilization systems, and Zamzam water cooling.
    • Testing and Readiness: Regular testing of audio systems, uninterrupted power systems, fire alarm systems, and backup generators is conducted.
    01
    العيد فرحة وبهجة

    27. “Kalam Nawaem” Program Returns:

    • The popular women’s talk show “Kalam Nawaem” returns to MBC1 after a hiatus during Ramadan.
    • The show features four hosts and welcomes various guests to discuss topics related to women, including turning 40 and career investments.
    01
    العيد فرحة وبهجة

    28. Commencement Address by University Leader:

    • A quote from Dr. Matchuo Yutaka from the University of Tokyo emphasizes the importance of focus and effort in achieving distinction after graduation.
    • The address provides advice for new graduates on setting ambitious goals, creating a culture of rules and delegation, developing future leaders, and investing in personal and organizational development and innovation.
    01
    العيد فرحة وبهجة

    29. The Equation: Innovation Leads the Future:

    • Technological entrepreneurship plays a crucial role in diversifying national income sources and reducing reliance on traditional sectors.
    • Emerging tech projects can develop innovative products and services that meet local and global market needs.
    • This sector attracts foreign direct investment, creates an attractive environment for talent, and enhances the Kingdom’s position as a regional and global center for innovation and technology.
    • This aligns fully with Vision 2030’s goal of building a diverse and sustainable knowledge-based economy.
    • Investing in tech entrepreneurship contributes to achieving the Vision’s goals related to innovation, digital transformation, youth empowerment, and job creation.
    • Ultimately, tech entrepreneurship is a fundamental pillar for building a strong, national, and sustainable economy and a strategic partner in developing creative industries.
    01
    العيد فرحة وبهجة

    30. “Malaeka Al-Rahmah” (Angels of Mercy): The Role of Saudi Security Personnel:

    • Highlights the dedicated service of Saudi security personnel in the Two Holy Mosques during peak seasons.
    • Managing millions of pilgrims with diverse backgrounds and cultures is a highly complex task.
    • Saudi security personnel are praised for their dedication and human touch in assisting pilgrims, providing examples of their compassionate actions.
    01
    العيد فرحة وبهجة

    31. Health Articles:

    • Sleep: Discusses the impact of sleep on memory, concentration, and obesity. Explores the theory of biphasic sleep in pre-industrial eras but notes that modern evidence from traditional societies doesn’t universally support it. Emphasizes the importance of 7-9 hours of sleep for adults. Highlights the Prophet Muhammad’s (PBUH) balanced sleep pattern and recommendations for early sleep and afternoon naps (qailulah).
    • Planning Sleep: Addresses whether a sleep study reveals stomach acid reflux, snoring, or breathing interruptions during sleep. Explains how acid reflux can worsen snoring and lead to sleep disturbances.
    • Gluten Sensitivity (Celiac Disease): Provides information about Celiac disease, its prevalence, symptoms, diagnosis process (blood tests followed by small intestine biopsy), and the importance of consulting a specialist.
    • Sleep Disorders During Pregnancy: Notes that many women experience sleep disturbances during pregnancy, especially in the seventh month, due to factors like frequent urination and pressure on the bladder. Addresses concerns about medication safety for the fetus in cases of severe heartburn.
    01
    العيد فرحة وبهجة

    32. Sports News:

    • Newcastle United’s Success: Expresses joy over Newcastle United’s recent Carabao Cup victory, their first major trophy in 70 years. Highlights the enthusiastic celebrations in Newcastle. Attributes this success to the ambitious administrative mindset under the Saudi Public Investment Fund and the club’s chairman, Yasir bin Othman Al-Rumayyan, with the goal of making Newcastle the number one club in the world, under the support of the Crown Prince and Vision 2030.
    • Saudi National Team Prospects: Discusses the Saudi national football team’s chances in the 2026 World Cup, noting the increased number of Asian qualifying spots. Points to a possible decline in the team’s performance recently but expresses hope for a comeback. Emphasizes the need for long-term planning for the 2034 World Cup by preparing specific age groups. Suggests studying European and Latin American coaching styles. Highlights the under-20 national team’s qualification for the Under-20 World Cup in Chile in 2025 as a positive sign for the future.
    • Amateur Football League’s Excellence: Praises the work of the Saudi Amateur Football League in developing grassroots football, increasing participation, and discovering talents, with support from the leadership and Vision 2030. Provides statistics on the number of tournaments, matches, and participating teams and players in the 2023-2024 season.
    • Saudi National Team’s World Cup Qualification Journey: Reports on the Saudi national team’s journey to qualify for the 2026 World Cup, noting their position in Group G after Japan secured the top spot. Highlights upcoming crucial matches against Australia and Bahrain in June.
    • Forest Fire Fighting Technology: Reports on researchers in Australia developing a golf ball-sized drone equipped with AI and solar panels to detect and extinguish forest fires quickly. This is in response to increasing heatwaves and wildfires.
    • Study on Heat and Cardiovascular Health: A study in Australia found a link between cardiovascular disease and hot weather, predicting a significant increase in related deaths and illnesses by 2050 due to climate change.
    01
    العيد فرحة وبهجة

    33. AlUla’s Date Season:

    • Highlights AlUla’s significant date production, with over 3.1 million palm trees across 16,579.40 hectares.
    • Annual production reaches over 116,000 tons of various date varieties.
    • The date production season is a significant economic activity in AlUla.
    • AlUla’s dates are in high demand locally and internationally and are stored in specialized refrigerators to maintain quality and year-round availability.
    • The AlUla date market witnesses increased demand during the season.
    01
    العيد فرحة وبهجة

    Conclusion:

    These excerpts from “Al Riyadh” provide a snapshot of significant developments and ongoing efforts in Saudi Arabia, particularly in Riyadh, as the Kingdom progresses towards its Vision 2030 goals. The focus on real estate regulation and development, coupled with initiatives to enhance tourism and citizen well-being, underscores the leadership’s commitment to creating a thriving and sustainable future. The inclusion of international comparisons in the housing sector offers valuable context for the Kingdom’s own initiatives. Additionally, the coverage of religious affairs, local traditions, health, and sports demonstrates the newspaper’s broad scope of interest for its readership.

    01
    العيد فرحة وبهجة

    Riyadh Real Estate Initiatives: Goals and Impacts

    FAQ Regarding Recent Real Estate and Development Initiatives in Riyadh

    01
    العيد فرحة وبهجة

    1. What are the primary goals of the recent directives issued by the Crown Prince concerning the Riyadh real estate market?

    The primary goals are to address challenges facing the real estate market, stabilize prices, ensure the availability of housing for Saudi citizens, develop the housing sector, upgrade real estate services across the Kingdom, and ultimately support the national economy. A key focus is on enabling more Saudis to own homes and improve their quality of life.

    01
    العيد فرحة وبهجة

    2. How will the recent decisions impact the supply and affordability of housing in Riyadh?

    The directives include raising the moratorium on land in northern Riyadh, which will open up new areas for development and investment. Crucially, there is a mandate to provide planned residential land at a price not exceeding 1500 SAR per square meter. The aim is to increase the supply of affordable housing options for citizens, particularly young couples and those without prior property ownership.

    01
    العيد فرحة وبهجة

    3. What measures are being taken to regulate the real estate market and protect the rights of all parties involved?

    The government is committed to increasing transparency and clarity in the real estate market. Directives have been issued to work on resolving challenges facing the sector, organizing real estate transactions, and preserving the rights of all parties, including citizens, the private sector, and local and foreign investors. This includes accelerating the issuance of amendments to the white land tax system and regulating the relationship between landlords and tenants to achieve a balance of interests.

    01
    العيد فرحة وبهجة

    4. How will the “Riyadh Train” project contribute to the city’s development and tourism?

    The Riyadh Train has already shown a significant positive impact on tourism within the capital, with a survey indicating a 96% increase in visitors after its use. This project enhances Riyadh’s standing as a major project in line with Vision 2030, developing infrastructure, boosting tourism, and striving to transform the Kingdom into a leading global tourist destination with comprehensive offerings.

    01
    العيد فرحة وبهجة

    5. What is the significance of the Crown Prince’s emphasis on the citizen in the context of Vision 2030 and these real estate initiatives?

    The Crown Prince has explicitly stated that the citizen is the cornerstone and ultimate goal of Vision 2030. The recent real estate initiatives directly reflect this priority by aiming to improve citizens’ living standards, provide them with affordable housing, and enhance their overall well-being. The focus is on creating a more prosperous and easier life for Saudi citizens and making them active participants in the Kingdom’s development journey.

    01
    العيد فرحة وبهجة

    6. How will these real estate developments and regulations contribute to the broader national economy?

    The real estate sector is considered a fundamental pillar in building the Kingdom’s future and supporting the national economy. The new measures are expected to stimulate growth by increasing construction activity, creating new job opportunities (potentially thousands), attracting more investments, and boosting spending and consumption in other related sectors. A stable and attractive real estate market is seen as crucial for overall economic prosperity.

    01
    العيد فرحة وبهجة

    7. What is the role of the Royal Commission for Riyadh City in implementing these new directives?

    The Royal Commission for Riyadh City has been tasked with several key responsibilities, including working to provide planned residential land at the specified price, lifting the moratorium on land in northern Riyadh, and studying the real estate sector to inform these initiatives. They are central to the planning, implementation, and monitoring of these new real estate policies in the capital.

    01
    العيد فرحة وبهجة

    8. What are some of the expected long-term outcomes of these initiatives for the city of Riyadh?

    The long-term outcomes are expected to include a more balanced real estate market with increased supply and stable prices, enhanced housing affordability for citizens, an improved quality of life in the capital, the transformation of Riyadh into a globally competitive and attractive hub for living, working, and investing, and a strengthened national economy supported by a thriving real estate sector.

    01
    العيد فرحة وبهجة

    Riyadh Real Estate Regulation: Supply, Prices, and Vision 2030

    The sources extensively discuss the regulation of the real estate market in Saudi Arabia, particularly focusing on initiatives and directives related to Riyadh. The primary goals of this regulation are to address challenges facing the market, stabilize prices, increase the supply of suitable housing at affordable prices, combat monopolies, and ultimately improve the quality of life for citizens and residents. These efforts are closely linked to achieving the objectives of Vision 2030 and strengthening the national economy.

    Several key regulatory measures and focus areas are highlighted in the sources:

    01
    العيد فرحة وبهجة
    • Lifting Suspensions on Land Transactions: A significant action involves lifting the suspension on the disposal of land (including sale, purchase, division, and issuance of building permits) in several areas of northern Riyadh. This decision, following thorough urban planning studies, aims to increase the supply of developed residential land and meet the growing demand for housing. The total area where the suspension has been lifted in Riyadh is 81.48 square kilometers.
    • White Land Tax System Amendments: The government is actively working on amending the White Land Tax system. The purpose of these amendments is to stimulate the development of vacant land, reduce speculation, combat monopolies, and increase the supply of developed land, ultimately making housing more accessible and affordable for citizens. These amendments are expected to be issued within 60 days.
    • Regulation of the Rental Market: Recognizing the importance of a balanced rental market, there is a directive to regulate the relationship between landlords and tenants in both residential and commercial sectors. This includes developing unified lease contracts that preserve the rights of all parties, enhance the attractiveness of the rental sector for investment, and contribute to market stability. Proposed amendments to rental regulations are expected within 90 days.
    • Price Monitoring and Control: The sources indicate a focus on monitoring and controlling increases in real estate prices. The General Real Estate Authority, in cooperation with the Royal Commission for Riyadh City, will be responsible for monitoring prices in the capital and submitting periodic reports to the Council of Ministers. The Minister of Economy and Planning mentioned a price ceiling of 1500 riyals per square meter for residential land in Riyadh, aiming to boost the housing supply and enhance citizens’ well-being.
    • Streamlining Procedures and Enhancing Transparency: The government aims to provide effective and quick solutions to the challenges in the real estate sector. This involves streamlining regulatory procedures and enhancing transparency in the market. A platform is being launched to receive and process requests for residential land.
    • Coordination and Collaboration: The implementation of these regulatory measures involves coordination among various relevant authorities, including the Ministry of Municipal and Rural Affairs and Housing, the General Real Estate Authority, and the Royal Commission for Riyadh City. This collaborative approach aims to ensure the effective development and monitoring of the real estate market.

    The expected outcomes of these regulatory efforts are multi-faceted:

    01
    العيد فرحة وبهجة
    • Increased Housing Supply: Lifting land suspensions and incentivizing the development of vacant land through the amended White Land Tax system are expected to significantly increase the supply of residential units.
    • Price Stability and Affordability: By monitoring prices, setting price ceilings, and increasing supply, the government aims to stabilize real estate prices and make housing more affordable for citizens and residents.
    • Enhanced Investment and Economic Growth: A well-regulated and attractive real estate market is expected to draw more investments, both domestic and international, contributing to the growth of the national economy.
    • Improved Quality of Life: Access to suitable and affordable housing is a key factor in improving the quality of life for citizens and achieving social stability.
    • Empowerment of Saudi Youth: Organizing the real estate market is also seen as a way to empower Saudi youth.
    • Balanced Market Dynamics: The regulatory measures aim to achieve a better balance between supply and demand in the real estate market.
    01
    العيد فرحة وبهجة

    In conclusion, the Saudi government is undertaking significant regulatory reforms in the real estate market, particularly in Riyadh, with a comprehensive vision to create a stable, transparent, and accessible market that serves the needs of its citizens and contributes to the nation’s overall development goals. The focus is on increasing supply, controlling prices, and ensuring a fair and sustainable real estate sector.

    01
    العيد فرحة وبهجة

    Riyadh Urban Development: Vision 2030 and Land Initiatives

    Drawing on the sources and our previous discussion about real estate market regulation, several key aspects of Riyadh development projects emerge. These projects are central to the Kingdom’s broader Vision 2030 and are closely intertwined with the regulatory efforts we previously discussed, aiming to transform Riyadh into a leading global city and a thriving economic hub.

    01
    العيد فرحة وبهجة

    A significant development is the lifting of suspensions on land disposal in several areas of northern Riyadh. This move, which followed thorough urban planning studies conducted by the Royal Commission for Riyadh City, is a key project aimed at accelerating urban expansion, meeting the needs of a growing population, and boosting Riyadh’s standing as a modern global capital. The lifted suspensions cover a substantial area of 81.48 square kilometers in total. This initiative is expected to open up vast opportunities for real estate developers to commence projects that will provide thousands of diverse residential units, contributing to sustainable and balanced urban development in the capital.

    01
    العيد فرحة وبهجة

    The overarching goal of these development projects aligns with the ambition to transform Riyadh into a pioneering global city that offers a comfortable and sustainable living environment. This includes providing suitable housing and improving the quality of life for Saudi citizens. The focus is on creating a city that attracts talent and investment, thereby strengthening the national economy.

    01
    العيد فرحة وبهجة

    Furthermore, these real estate development projects in Riyadh are not isolated endeavors but rather contribute to broader infrastructure development. Investments in the real estate sector drive growth in related industries such as construction, building materials, engineering, finance, and services. The development of modern cities like Riyadh, with innovative architectural designs that blend tradition and modernity, also serves to reflect the cultural and historical identity of the Kingdom.

    01
    العيد فرحة وبهجة

    The directives from His Royal Highness the Crown Prince regarding the real estate market, including the lifting of land suspensions, underscore the leadership’s commitment to providing effective and rapid solutions to the challenges in the housing sector and achieving stability in the real estate market. These actions are designed to enhance the supply of real estate to meet the needs of citizens and residents.

    01
    العيد فرحة وبهجة

    In summary, Riyadh development projects, particularly the lifting of land suspensions in the north, represent a concrete step towards realizing the goals of Vision 2030 and transforming Riyadh into a leading global city. These projects are closely linked to the regulatory efforts aimed at stabilizing the real estate market, increasing the supply of housing, and improving the overall quality of life in the capital, while also serving as a catalyst for economic growth and reflecting the Kingdom’s modern identity.

    01
    العيد فرحة وبهجة

    Saudi Arabia Housing Market Challenges and Government Initiatives

    Drawing on the sources and our previous discussions, the housing market in Saudi Arabia, particularly in Riyadh, faces several significant challenges that the government is actively trying to address through various regulatory and developmental initiatives.

    01
    العيد فرحة وبهجة

    One of the most prominent challenges is the high cost of housing and real estate prices. This issue is explicitly mentioned as a key concern that the directives from the Crown Prince aim to address. The government recognizes the need to stabilize prices and provide more affordable housing options for citizens and residents. The Minister of Economy and Planning even mentioned a price ceiling of 1500 riyals per square meter for residential land in Riyadh as a measure to combat high costs.

    01
    العيد فرحة وبهجة

    Another significant challenge is the limited supply of suitable housing. This undersupply contributes to the high prices and makes it difficult for individuals, especially young people and those with limited incomes, to find adequate housing. The decision to lift suspensions on land disposal in northern Riyadh is a direct response to this challenge, aiming to increase the supply of developed residential land and meet the growing demand. Amendments to the White Land Tax system are also intended to stimulate the development of vacant land and further increase the housing supply.

    01
    البَرَد يكسو قمم عسير بالبياض

    Affordability of homeownership is a crucial challenge linked to both high prices and limited supply. The government’s efforts are geared towards providing effective and quick solutions to address the challenges of affordability. The goal is to ensure that citizens, especially youth and low-income families, have access to suitable housing options at prices they can afford. The Vision 2030 target of raising the rate of homeownership for Saudi families to 70% by 2030 underscores the importance of tackling this affordability challenge.

    01
    البَرَد يكسو قمم عسير بالبياض

    The sources also allude to issues related to market balance and regulation. There’s a recognized need to achieve balance in the real estate sector between supply and demand. This includes regulating the relationship between landlords and tenants to ensure a fair and stable rental market. Furthermore, there’s a focus on combating monopolies and speculation in the real estate market, which can artificially inflate prices and limit supply. The government’s emphasis on monitoring and controlling increases in real estate prices and streamlining regulatory procedures reflects the commitment to creating a more balanced and transparent market.

    01
    البَرَد يكسو قمم عسير بالبياض

    Looking beyond the immediate Saudi context, one article highlights that a housing shortage is a global crisis, with the number of houses built lagging behind population growth. This puts the Saudi challenges within a broader international perspective, where issues like unaffordable housing are prevalent in many developed nations.

    In summary, the key housing market challenges in Saudi Arabia, particularly Riyadh, as indicated by the sources, are:

    01
    البَرَد يكسو قمم عسير بالبياض
    • High real estate prices and the overall cost of housing.
    • Limited supply of suitable and developed residential land.
    • Challenges related to the affordability of homeownership for citizens.
    • The need to achieve better balance between supply and demand in the market.
    • The necessity for effective regulation to address issues like speculation and ensure fairness in the rental market.
    01
    البَرَد يكسو قمم عسير بالبياض

    The government’s current initiatives, including lifting land suspensions, amending the White Land Tax, regulating the rental market, and monitoring prices, are all aimed at tackling these interconnected challenges and fostering a more stable, affordable, and accessible housing market in line with the goals of Vision 2030.

    01
    البَرَد يكسو قمم عسير بالبياض

    Saudi Arabia: Economic Growth Initiatives and Vision 2030

    Drawing on the sources and our conversation history, the Saudi Arabian government is actively supporting economic growth through various initiatives, particularly within the real estate sector and related areas. These efforts are closely aligned with the goals of Vision 2030 and aim to diversify the economy, attract investment, create jobs, and improve the overall quality of life.

    01
    البَرَد يكسو قمم عسير بالبياض

    The sources emphasize that the real estate sector plays a vital role in supporting the national economy and increasing the gross domestic product. This is achieved through attracting substantial investments from both the public and private sectors. This investment not only fuels the real estate development itself but also has a ripple effect on numerous related industries, such as construction, building materials manufacturing, engineering, finance, services, and even the furniture and home goods sectors. The growth in these interconnected sectors contributes to the national economy in a comprehensive manner.

    01
    البَرَد يكسو قمم عسير بالبياض

    The lifting of suspensions on land disposal in northern Riyadh is a significant initiative that directly supports economic growth by opening up opportunities for real estate developers. This is expected to stimulate the real estate market, ensuring its continued recovery and the continuation of housing projects. A vibrant real estate sector attracts investment and creates business opportunities. Furthermore, the development of infrastructure to support these real estate projects also contributes to economic progress.

    01
    البَرَد يكسو قمم عسير بالبياض

    The government’s focus on regulating the real estate market is another way it supports economic growth. By aiming for price stability and making the market attractive for real estate development companies, the government seeks to ensure the continued recovery of the market. A stable and well-regulated market fosters investor confidence, encouraging further investment and economic activity. The measures to combat monopolies and increase transparency in the real estate sector also contribute to a healthier and more competitive economic environment.

    01
    البَرَد يكسو قمم عسير بالبياض

    The amendments to the White Land Tax system are intended to stimulate land development, which in turn increases the supply of developed land and can lead to more construction activity and economic benefits. Similarly, the efforts to regulate the rental market are expected to enhance the attractiveness of the sector for investment, further supporting economic growth.

    01
    البَرَد يكسو قمم عسير بالبياض

    Beyond the real estate sector, the sources also touch upon the importance of supporting technological entrepreneurship. This is seen as crucial for serving industries experiencing rapid growth in the Kingdom, particularly in cinematic production, creative, artistic, and dramatic fields. By fostering a new generation of technological entrepreneurs, the government aims to provide innovative solutions, attract young talent, and create rewarding job opportunities, all of which are vital for sustainable economic growth. Empowering women through opportunities in technological entrepreneurship is also highlighted as a contributor to the national economy.

    Furthermore, large-scale projects like NEOM and the Red Sea Project are explicitly mentioned as contributing to the Kingdom’s ambitious vision and attracting global investments, which are significant drivers of economic diversification and growth.

    In summary, the Saudi Arabian government actively supports economic growth through:

    01
    البَرَد يكسو قمم عسير بالبياض
    • Direct investment and initiatives in the real estate sector, recognizing its significant contribution to GDP and job creation.
    • Regulatory measures aimed at stabilizing the real estate market, attracting investment, and fostering a competitive environment.
    • Lifting land suspensions to stimulate development and create opportunities for developers.
    • Efforts to increase the supply of housing and improve affordability, which indirectly support economic stability and consumer spending.
    • Supporting technological entrepreneurship and innovation across various sectors.
    • Undertaking mega-projects that attract international investment and contribute to economic diversification.

    These interconnected strategies demonstrate a comprehensive approach to fostering sustainable economic growth in Saudi Arabia, aligned with the objectives of Vision 2030.

    01
    البَرَد يكسو قمم عسير بالبياض

    Saudi Vision 2030: Real Estate, Economy, and Quality of Life

    Drawing on the sources and our conversation history, several key initiatives related to Saudi Vision 2030 are evident, particularly focusing on the real estate sector, economic diversification, and improving the quality of life for citizens.

    01
    البَرَد يكسو قمم عسير بالبياض

    Real Estate and Housing Initiatives:

    • A core initiative is the large-scale development and regulation of the real estate market, especially in Riyadh. The goal is to address challenges in the housing sector, ensure price stability, increase the supply of suitable housing, and enhance affordability for Saudi citizens.
    • The lifting of suspensions on land disposal in northern Riyadh is a concrete initiative aimed at accelerating urban expansion and providing new opportunities for real estate development. This directly supports the Vision 2030 objective of transforming Riyadh into a leading global city.
    • Setting a price ceiling of 1500 riyals per square meter for residential land in Riyadh is a specific measure to control the cost of housing and improve affordability, aligning with the Vision’s goal of enhancing citizen well-being.
    • Amendments to the White Land Tax system are intended to stimulate the development of vacant land, increasing the supply of housing and contributing to the Vision’s housing goals.
    • Efforts to regulate the rental market aim to create a more stable and attractive environment for both landlords and tenants, contributing to the overall quality of life, a key aspect of Vision 2030.
    • The target of raising the rate of homeownership for Saudi families to 70% by 2030 is a clearly stated Vision 2030 goal that drives many of the housing-related initiatives.
    01
    البَرَد يكسو قمم عسير بالبياض

    Economic Diversification Initiatives:

    • Vision 2030 emphasizes the importance of diversifying the national economy and reducing reliance on traditional sectors. The development of the real estate sector itself is seen as a key contributor to this diversification by attracting investments and stimulating related industries.
    • Supporting technological entrepreneurship is another crucial initiative aligned with Vision 2030’s aim to build a knowledge-based and innovative economy. This includes fostering a supportive environment for startups, attracting talent, and creating new job opportunities in emerging sectors.
    • Large-scale projects such as NEOM and the Red Sea Project (mentioned in our previous discussion, although not explicitly in this source) are flagship Vision 2030 initiatives aimed at attracting global investments and diversifying the economy.
    • Developing Riyadh into a global hub for tourism is another Vision 2030 objective, supported by projects like the Riyadh Metro, which aims to improve the tourist experience.
    01
    البَرَد يكسو قمم عسير بالبياض

    Quality of Life Improvement Initiatives:

    • Many of the real estate and infrastructure development projects in Riyadh directly contribute to improving the quality of life for residents by providing better housing options, transportation infrastructure (like the Riyadh Metro), and overall urban environment.
    • The focus on transparency and clarity in the real estate market aims to build trust and protect the interests of citizens and investors, contributing to a more stable and positive living environment.
    • Efforts to redevelop informal settlements in Makkah are also in line with Vision 2030’s goal of improving the quality of life and public services for all citizens and visitors.
    • Enhancing the experience of pilgrims and visitors to Makkah and Madinah through initiatives like the Third Saudi Expansion of the Grand Mosque and improvements to services and infrastructure are key to Vision 2030’s aim to promote Saudi Arabia’s cultural and Islamic heritage.
    01
    البَرَد يكسو قمم عسير بالبياض

    Citizen-Centric Approach:

    • Vision 2030 places a strong emphasis on the citizen as the central pillar of development. Initiatives across various sectors are designed with the well-being and needs of Saudi citizens as the top priority. The real estate initiatives, for instance, are explicitly aimed at fulfilling the housing needs of citizens and improving their living standards.

    In summary, the sources highlight numerous interconnected initiatives driven by Vision 2030, with a strong focus on transforming the real estate landscape, diversifying the economy through innovation and strategic projects, and significantly enhancing the quality of life for all citizens and visitors in Saudi Arabia. These initiatives are characterized by ambitious goals, clear targets, and a commitment to addressing existing challenges through comprehensive strategies and regulatory frameworks.

    01
    البَرَد يكسو قمم عسير بالبياض

    Main Headings

    • رؤية متكاملة لتنظيم سوق العقار An integrated vision for regulating the real estate market
    • قرارات ولي العهد التاريخية تحقق أحلام سكان الرياض . العقار.. صياغة جديدة لتعزيز الهوية وصناعة الحضارة The Crown Prince’s historic decisions fulfill the dreams of Riyadh residents. Real estate: A new formulation to strengthen identity and build civilization.
    • مساحات جديدة تواكب النمو السكاني وإطلاق منصة لتلقي طلبات شراء الأراضي. New spaces to keep pace with population growth and launch a platform to receive land purchase applications.
    • توجيهات ولي العهد تعالج تحديات السوق العقاري.. وتضمن استقرار الأسعار The Crown Prince’s directives address real estate market challenges and ensure price stability.
    • المملكة في طريقها لتوازن السوق العقاري. تستعرض أبرز التجارب الدولية في حل أزمة الإسكان. The Kingdom is on its way to balancing its real estate market. It reviews the most prominent international experiences in resolving the housing crisis.
    01
    رسمياً… باريس سان جيرمان بطلاً للدوري الفرنسي للمرة الـ13 في تاريخه

    And the fourth time in a row…
    Officially… Paris Saint-Germain is the French league champion for the 13th time in its history.

    Paris Saint-Germain won the French Ligue 1 title for the fourth consecutive time and the thirteenth time in its history, with six games to spare, after defeating Angers 1-0 at the Parc des Princes on Saturday in the twenty-eighth round. Youngster Desiree Douet scored the winning goal in the 55th minute, sealing PSG’s 23rd unbeaten season.

    01
    قطار الرياض يحسّن تجربة السياح داخل العاصمة

    Riyadh Metro improves tourist experience in the capital

    A recent survey revealed a 96% increase in visitors to tourist attractions after using the Riyadh Metro. This comes as part of its efforts to highlight the Kingdom’s achievements in the tourism sector. The survey was conducted by the Saudi Tourism Media Association via its X platform account, with the aim of measuring the impact of the Riyadh Metro on the experience of tourists and visitors within the city. The results reflect a positive image that reinforces the project’s position as one of the key pillars of Saudi Vision 2030, which aims to develop infrastructure and promote sustainable tourism.

    88% of those surveyed confirmed that the Riyadh Metro contributed to improving the tourist experience within the city.

    83% believed that the train facilitated their movement between tourist attractions and various sites. 96% of those who participated in the survey confirmed that the Riyadh Metro contributed to increasing the number of visitors to tourist attractions.

    Sixty-five percent of respondents affirmed that the greatest impact of the train was cost savings, while 35% considered facilitating transportation to be the most prominent advantage. These results reflect the success of the Riyadh Metro in achieving its goals as a modern and sustainable means of transportation, providing visitors with a more comfortable and efficient experience, and contributing to alleviating traffic congestion and reducing transportation costs. The survey also emphasizes the role of modern infrastructure in enhancing tourism attraction, in line with the goals of Vision 2030, which seeks to transform the Kingdom into a global tourism destination with integrated components.

    The Saudi Tourism Media Association continues to highlight national efforts to develop the tourism sector by monitoring experiences and projects that enhance the Kingdom’s position as a global tourism destination, supported by modern transportation that contributes to providing a distinguished visitor experience and efforts to restore the relationship between the city and its residents.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Get Paid to Write: A Mega List of Work Frome Home Writing Jobs

    Get Paid to Write: A Mega List of Work Frome Home Writing Jobs

    If you’ve ever dreamed of turning your passion for words into a paycheck, now is the perfect time to make it a reality. The digital age has created an unprecedented demand for skilled writers across various industries. Whether you’re a seasoned professional or a newcomer looking to break into the field, numerous work-from-home writing opportunities await you. From blog writing to medical content, poetry to technical guides, the internet has opened up a world where writing can be both creatively fulfilling and financially rewarding.

    The rise of remote work and the gig economy has made it easier than ever to earn a living as a writer. Companies, publications, and content platforms are constantly on the lookout for fresh voices and expert storytellers. Many businesses now outsource their content needs, creating a steady stream of work for freelancers. Full-time writing jobs have also expanded beyond traditional journalism, with editing, copywriting, and content marketing offering lucrative career paths for those with a knack for crafting compelling narratives.

    As you explore this mega list of work-from-home writing jobs, you’ll discover opportunities tailored to different skill levels and interests. Whether you enjoy crafting engaging blog posts, writing technical documents, or even creating heartfelt poetry, there’s a niche for you. Each section will outline specific ways you can monetize your writing skills, including job boards, specialized platforms, and high-paying industries. Get ready to embark on a rewarding journey where your words can build a sustainable income from the comfort of your home.


    1 – Freelance Blog Writing Gigs

    Freelance blog writing is one of the most accessible and profitable ways to earn money as a writer. Businesses, entrepreneurs, and online publications constantly seek well-researched, engaging blog posts to attract and educate their audiences. Whether it’s in the tech industry, health and wellness, finance, or lifestyle, there’s an ongoing need for fresh content. Many companies are willing to pay competitive rates for high-quality blog posts that drive traffic and boost their online presence. Writers with expertise in SEO, storytelling, and audience engagement can command higher fees in this space.

    To succeed as a freelance blog writer, consider building a strong portfolio showcasing diverse writing samples. Networking on platforms like LinkedIn, pitching to editors, and joining writer-focused communities can help land consistent work. Websites such as ProBlogger, BloggingPro, and Contena offer curated lists of blog writing gigs with pay rates ranging from modest to lucrative. As Neil Patel, a leading digital marketing expert, states, “Great content is the best sales tool in the world.” By honing your blog writing skills and leveraging online job boards, you can turn blog writing into a sustainable income stream.


    2 – Full-Time Writing and Editing Jobs

    For those seeking more stability, full-time writing and editing positions offer a steady paycheck and benefits while still allowing you to work remotely. These roles can range from content strategists and copywriters to editors for digital publications. Many companies, including major media outlets, marketing agencies, and tech firms, are hiring remote writers and editors to produce high-quality content for their websites, social media, and advertising campaigns. Unlike freelancing, full-time jobs provide job security, consistent income, and opportunities for career growth.

    A strong background in writing, editing, and industry-specific knowledge can help secure these roles. Companies often look for writers with expertise in areas such as finance, technology, or healthcare. Some job boards specializing in full-time remote writing positions include We Work Remotely, FlexJobs, and Mediabistro. Books like The Elements of Style by Strunk and White or On Writing Well by William Zinsser can help refine your craft and improve your chances of landing a position. With dedication and continuous learning, full-time remote writing can become a fulfilling and lucrative career.


    3 – Paid Freelance Writing Platforms

    If you prefer a structured way to find writing jobs, paid freelance writing platforms offer a convenient solution. These platforms connect writers with clients needing content, often providing a steady stream of assignments. Websites such as Upwork, Freelancer, and PeoplePerHour allow writers to bid on projects in various niches, including blog writing, ghostwriting, and technical writing. While competition can be fierce, a strong profile, positive client reviews, and a niche specialization can help writers secure high-paying projects.

    Another option is premium content platforms such as Verblio, ClearVoice, and WriterAccess, which curate high-quality assignments for approved writers. These platforms often require writers to pass a screening test or submit writing samples to gain access to higher-paying gigs. As marketing strategist Ann Handley states in Everybody Writes, “Quality content means business.” By producing exceptional work and leveraging these platforms effectively, freelance writers can build a profitable career from the comfort of their homes.


    4 – Writing Greeting Cards

    Greeting card writing is a unique and creative way to earn money as a writer. Companies specializing in sentimental, humorous, or inspirational messages are always on the lookout for fresh content. Writers who can craft concise yet meaningful phrases for birthdays, holidays, and special occasions have the opportunity to sell their work to greeting card companies. Some well-known brands, such as Blue Mountain Arts and Hallmark, accept freelance submissions and pay per accepted piece.

    The key to success in this niche is understanding the tone and voice of different card companies. A humorous card company may have different expectations than one that focuses on heartfelt messages. Studying the styles of greeting card brands and submitting original, compelling ideas can increase your chances of getting published. Writing instructor William Zinsser reminds us, “Writing is an act of thinking,” and greeting card writing is a perfect example of distilling deep emotions into a few carefully chosen words.


    5 – Write Helpful Tips, Short Stories, and Magazine Articles

    Many online and print publications pay writers for well-crafted articles, short stories, and practical advice columns. Magazines, newspapers, and digital content hubs seek expert insights, personal essays, and how-to guides in various industries, from fashion to finance. Publications such as The New Yorker, Reader’s Digest, and The Sun pay for accepted submissions, often offering generous compensation for compelling storytelling and valuable information.

    For those interested in writing short stories, literary magazines and anthologies regularly accept submissions. Websites like Duotrope and Submittable list numerous paid writing opportunities. Successful writers research their target publications, follow submission guidelines meticulously, and refine their pitches. As Stephen King emphasizes in On Writing, “The scariest moment is always just before you start.” Taking the leap and submitting your work can lead to rewarding publication opportunities.


    6 – Job Boards for Writers

    Job boards remain one of the most effective ways to find high-paying writing gigs. Websites such as ProBlogger, Freelance Writing Jobs (FWJ), and Indeed regularly list freelance and full-time writing positions in various niches. These platforms provide a mix of one-time projects, ongoing assignments, and career-level writing opportunities, making them invaluable for writers at any stage of their journey.

    The key to success on job boards is applying strategically. Instead of mass-applying, tailor your pitches to highlight relevant skills and experience. Persistence is also crucial, as competition can be high for well-paying jobs. Books such as The Well-Fed Writer by Peter Bowerman provide insights into securing long-term writing gigs. Regularly browsing job boards and refining your application strategy can lead to consistent writing income.


    7 – Mixed Writing Jobs

    Not all writing opportunities fit neatly into a single category. Some writers excel in a variety of formats, including technical writing, grant writing, speechwriting, and ghostwriting. These specialized fields often offer high-paying opportunities for writers with industry-specific expertise. For example, grant writing for nonprofits or speechwriting for executives can be both lucrative and impactful.

    To break into mixed writing jobs, it’s beneficial to take online courses or gain certifications in specialized writing fields. Platforms such as Coursera and Udemy offer courses in technical writing and grant writing. Additionally, networking with professionals in niche industries can lead to unique writing opportunities. As content strategist Joe Pulizzi advises in Content Inc., “Find your niche, own it, and work at it relentlessly.”


    8 – Medical Writers

    Medical writing is a specialized field that pays well due to its complexity and demand for accuracy. Pharmaceutical companies, medical journals, and healthcare organizations require writers who can translate complex medical information into understandable content. This includes research papers, patient education materials, and regulatory documents.

    Writers with a background in science, healthcare, or journalism can excel in this field. The American Medical Writers Association (AMWA) offers resources and certifications to help writers establish credibility. As Atul Gawande notes in Better: A Surgeon’s Notes on Performance, “The most meaningful way to succeed is to help others succeed.” Medical writers play a crucial role in improving healthcare communication, making this both a rewarding and profitable career path.


    9 – Get Paid to Write Poetry

    Although poetry may not be the most lucrative writing field, opportunities exist for those with a strong command of language and imagery. Literary magazines, poetry contests, and online platforms like The Poetry Foundation and Rattle offer monetary rewards for exceptional poetry submissions.

    To succeed, poets should research submission guidelines, enter reputable contests, and consider self-publishing poetry collections. Books like A Poetry Handbook by Mary Oliver provide valuable guidance on honing poetic craft. While financial success in poetry requires persistence, those who master the art can build a dedicated readership and monetize their work through workshops, readings, and published collections.


    10 – Recipe Writers and Developers

    Food bloggers, cookbook publishers, and culinary websites often pay writers to create detailed recipes and engaging food content. Recipe development requires precision, creativity, and knowledge of food science.

    Writers looking to break into this field can pitch original recipes to magazines like Bon Appétit or write for cooking blogs that accept guest contributions. As Michael Pollan states in Cooked, “Cooking is not a chore; it’s an expression of love.” Successful recipe writers understand how to craft both appealing and functional recipes that resonate with home cooks.


    11 – Earn Money as a Resume Writer

    Professional resume writers help job seekers craft compelling resumes that highlight their skills and experience. With companies relying on applicant tracking systems (ATS), a well-optimized resume can make the difference between landing an interview and being overlooked.

    Resume writing certifications from organizations like the Professional Association of Resume Writers & Career Coaches (PARW/CC) can add credibility. As career coach Martin Yate states in Knock ‘Em Dead Resumes, “Your resume is not about you; it’s about the employer’s needs.” Writers who master resume writing can earn well while helping others achieve career success.


    12 – Paid Revenue-Sharing Sites

    Some platforms offer writers a share of the advertising revenue generated from their content. Websites like Medium’s Partner Program and Vocal Media pay based on engagement, making them a viable income source for consistent writers.

    Building a loyal readership is key to maximizing revenue. Writers should focus on SEO-driven content, engaging storytelling, and regular posting. Books like Content Rules by Ann Handley offer insights into growing an online audience.


    13 – Write Romance Novels

    Romance remains one of the highest-grossing fiction genres. Platforms like Kindle Direct Publishing (KDP) allow writers to self-publish and earn royalties. Traditional publishers also seek engaging romance novels with fresh takes on classic tropes.

    Writing compelling characters and emotionally engaging plots is essential. Reading industry bestsellers and studying Save the Cat! Writes a Novel by Jessica Brody can help aspiring romance authors develop marketable stories.


    14 – Social Media and Content Marketing

    Businesses pay writers to craft social media posts, email newsletters, and website content that engage audiences. Strong writing skills combined with marketing knowledge make for a lucrative career in content marketing.

    Books like Everybody Writes by Ann Handley provide strategies for writing persuasive online content. With companies investing heavily in digital marketing, skilled content creators are in high demand.


    15 – Travel Writing

    Travel writers get paid to share experiences, tips, and guides. Magazines like National Geographic Traveler and Lonely Planet accept freelance submissions.

    A strong portfolio and networking can help secure opportunities. Reading The Travel Writer’s Handbook by Jacqueline Harmon Butler can provide insights into breaking into this competitive field.


    16 – Final Words About Paid Writing Gigs

    The world of paid writing is vast, offering opportunities for writers of all backgrounds and skill levels. Whether you prefer the flexibility of freelancing or the stability of a full-time remote position, there is no shortage of ways to turn your words into income. The key to success lies in identifying your strengths, honing your craft, and continuously seeking new opportunities. As with any profession, persistence and adaptability play crucial roles in building a sustainable writing career.

    In today’s digital age, businesses, publishers, and content platforms are constantly searching for skilled writers who can engage, inform, and persuade audiences. By leveraging the right resources—such as job boards, freelance platforms, and networking opportunities—you can carve out a niche for yourself and establish a rewarding writing career. As bestselling author Stephen King advises in On Writing, “You can, you should, and if you’re brave enough to start, you will.” Embrace the journey, refine your skills, and watch your passion for writing translate into a thriving profession.

    Social Media and Content Marketing

    With platforms like Facebook, Twitter, LinkedIn, Instagram, and more, there is a huge demand for writers who know the ins and outs of these online marketing platforms. Sometimes, these positions are called social media managers or virtual assistants, and other times, digital content specialists. Besides writing social media updates, you may also create content for blogs, ads, newsletter campaigns, video scripts, and other forms of content creation.

    General knowledge of search engine optimization (SEO) is generally needed for these roles. Some companies may require applicants to have a bachelor’s degree in marketing, advertising, or a related field. However, depending on your experience level, some companies may substitute a degree for experience.

    Conclusion

    The world of freelance writing offers endless opportunities for those willing to hone their craft and explore various niches. Whether you prefer blog writing, technical content, or creative storytelling, there is a writing job that fits your skills and passions. By leveraging job boards, networking, and continuously improving your writing abilities, you can turn your talent into a sustainable career.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • 12 Types Of Women Who Make Very Bad Partners

    12 Types Of Women Who Make Very Bad Partners

    Choosing a life partner is one of the most significant decisions you’ll ever make. A great relationship can elevate your happiness, while a toxic one can drain your energy and peace of mind. Many people enter relationships blinded by attraction, chemistry, or surface-level compatibility, only to realize later that they overlooked critical red flags.

    At first glance, a woman may appear to be the perfect match—intelligent, charming, and supportive. However, true character reveals itself over time, often in ways that are subtle but telling. Some behaviors, though seemingly harmless at first, can develop into patterns that erode trust, respect, and emotional well-being. Recognizing these traits early can save you from long-term disappointment.

    While there are many incredible women who make wonderful partners, there are also those whose habits and personalities create unhealthy dynamics. Identifying these problematic traits isn’t about being judgmental but about protecting your emotional health. Below are 12 types of women who, despite initial appeal, often make very bad partners.


    1 – Women Who Play the Victim

    A woman who constantly sees herself as a victim will always find someone or something to blame for her problems. Whether it’s her past relationships, work struggles, or family issues, she never takes responsibility for her actions. This mindset can make a relationship exhausting because you’re always expected to be the problem solver, the emotional caretaker, or the one apologizing—even when you’ve done nothing wrong. Over time, this dynamic can leave you feeling drained and resentful.

    Psychologist Dr. Stephen Karpman, who developed the Drama Triangle, explains that the victim mentality is a manipulative social role that prevents personal growth. A healthy relationship requires accountability, where both partners acknowledge their mistakes and work towards solutions. If a woman refuses to own her role in conflicts and instead portrays herself as the perpetual victim, the relationship will be a never-ending cycle of guilt and frustration.


    2 – Women Who Refuse to Compromise

    No relationship can survive without compromise. A woman who insists on always having her way, disregarding your opinions or needs, creates a one-sided partnership. Whether it’s minor decisions like where to eat or major life choices like where to live, an unwillingness to meet halfway leads to tension and dissatisfaction. When a relationship becomes a dictatorship instead of a partnership, resentment builds, and love fades.

    The renowned marriage counselor Dr. John Gottman emphasizes that successful relationships thrive on “a spirit of compromise and mutual respect.” Compromise doesn’t mean sacrificing your happiness—it means finding solutions that work for both partners. A woman who refuses to compromise sees the relationship as a battlefield where she must always win, making long-term harmony nearly impossible.


    3 – Women Who Can’t Communicate

    Communication is the foundation of any strong relationship. A woman who struggles to express her thoughts, emotions, or concerns effectively will create misunderstandings and unnecessary conflicts. Whether she gives the silent treatment, shuts down during difficult conversations, or expects you to “just know” what she’s thinking, poor communication can quickly erode trust and connection.

    Dr. Deborah Tannen, a linguistics expert, highlights in You Just Don’t Understand that communication breakdowns often stem from different conversational styles. However, unwillingness to work on communication is a serious red flag. A healthy relationship requires open, honest discussions where both partners feel heard and understood. Without this, problems fester and ultimately lead to emotional distance.


    4 – Women Who Are Emotionally Manipulative

    Emotional manipulation is a toxic trait that can make even the strongest person feel powerless. A woman who uses guilt, gaslighting, or passive-aggressive behavior to control the relationship is not a true partner but a master of psychological games. She may twist situations to make you feel like the bad guy, exaggerate problems to gain sympathy, or withhold affection to punish you.

    Renowned psychologist Dr. George K. Simon explains in In Sheep’s Clothing that manipulators thrive on creating confusion and self-doubt in their partners. In a loving relationship, both individuals should feel emotionally safe and supported—not constantly second-guessing themselves. If a woman uses manipulation to get what she wants, she is prioritizing control over connection.


    5 – Women Who Need to Be the Center of Attention

    A woman who constantly craves attention, whether from you or others, can make a relationship exhausting. She may interrupt conversations to bring the focus back to herself, seek validation from social media, or flirt excessively to boost her ego. While confidence is attractive, excessive attention-seeking often stems from deep-seated insecurity.

    Psychologist Dr. Jean Twenge, author of The Narcissism Epidemic, points out that people who need constant validation struggle to maintain deep, meaningful relationships. A strong relationship thrives on mutual support, not one person demanding to be in the spotlight at all times. If her need for attention outweighs her ability to prioritize the relationship, it will become a never-ending competition for her focus.


    6 – Women Who Are Jealous and Possessive

    Jealousy in small doses is natural, but when it becomes excessive, it signals a deep-rooted insecurity that can destroy trust. A woman who constantly questions your whereabouts, monitors your phone, or gets upset when you spend time with friends is not showing love—she’s displaying control. Over time, this behavior creates an oppressive environment where you feel guilty for simply living your life.

    Renowned therapist Dr. Harriet Lerner warns in The Dance of Anger that jealousy often stems from a fear of abandonment or personal inadequacy. However, trust is the backbone of any relationship. If a woman cannot trust you without constant reassurance, the relationship will feel more like a prison than a partnership.


    7 – Women Who Speak Badly About Others

    How a woman speaks about others says a lot about her character. If she constantly criticizes friends, family, or even strangers, there’s a good chance she’ll do the same to you behind your back. A person who thrives on gossip and negativity often has a cynical outlook on life, which can drain the joy from a relationship.

    As Dale Carnegie wisely noted in How to Win Friends and Influence People, “Any fool can criticize, condemn, and complain, but it takes character and self-control to be understanding and forgiving.” If a woman habitually tears others down, it’s only a matter of time before she directs that negativity toward you.

    8 – Women Who Can’t Fully Get Over Their Ex

    A woman who remains emotionally attached to her ex is not truly available for a new relationship. She may frequently bring up her past relationship, compare you to her former partner, or even keep in contact with him under the guise of “just being friends.” While having a past is natural, being unable to move forward emotionally can create an unhealthy love triangle where you always feel like you’re competing with someone who isn’t even present.

    Dr. Judith Sills, in Ex-Lover Syndrome, explains that unresolved attachments to exes often signal a fear of emotional closure or difficulty in embracing the present. A healthy relationship requires two emotionally available partners who are committed to building a future together. If a woman is still dwelling on the past, it may be a sign that she is not ready for a serious commitment, no matter how much she claims otherwise.


    9 – Women Who Are Financially Irresponsible

    Money problems are one of the leading causes of relationship stress and breakups. A woman who is reckless with her finances—whether through excessive shopping, chronic debt, or an inability to budget—can create long-term instability in a relationship. If she constantly relies on others to bail her out or expects you to shoulder financial burdens without contributing, this can lead to resentment and imbalance.

    In The Millionaire Next Door, Dr. Thomas J. Stanley highlights that financial responsibility is a key indicator of long-term success in both personal and professional life. A woman who lives beyond her means, refuses to save, or expects lavish treatment without considering the future is not thinking like a life partner. A strong relationship requires shared financial values and responsibility, not reckless spending habits.


    10 – Women Who Refuse to Get Help for Their Unresolved Trauma

    Everyone carries emotional wounds, but refusing to acknowledge or seek help for deep-seated trauma can make a relationship difficult. A woman who has unhealed emotional pain from childhood, past relationships, or other life experiences may unintentionally project those struggles onto you. This can manifest in trust issues, extreme emotional reactions, or even pushing you away when things get serious.

    Renowned psychologist Dr. Bessel van der Kolk, in The Body Keeps the Score, emphasizes that untreated trauma doesn’t just go away—it manifests in relationships, behaviors, and even physical health. While no one is obligated to heal overnight, a partner who refuses to seek help or work on personal growth may create an emotionally exhausting environment. Healthy relationships require self-awareness and the willingness to address personal struggles rather than using a partner as an emotional crutch.


    11 – Women Who Lack Empathy

    Empathy is the foundation of emotional connection. A woman who lacks the ability to understand and share in the feelings of others can be emotionally cold, dismissive, or even cruel. If she struggles to see things from your perspective, dismisses your emotions, or is indifferent to the struggles of those around her, the relationship will eventually feel lonely and unfulfilling.

    Dr. Daniel Goleman, in Emotional Intelligence, explains that empathy is a key factor in successful relationships, friendships, and careers. A woman who cannot put herself in someone else’s shoes is unlikely to offer the support, kindness, or understanding necessary for a healthy partnership. A relationship without empathy is like a house without a foundation—it will eventually collapse.


    12 – Women Who Are Overly Controlling

    While confidence and leadership are attractive traits, excessive control can turn a relationship into a suffocating experience. A woman who dictates what you wear, who you spend time with, or how you live your life is not respecting your individuality. Control often stems from insecurity and a need to dominate rather than cooperate.

    Psychologist Dr. Harriet Braiker, in Who’s Pulling Your Strings?, explains that controlling behaviors often start subtly before escalating into full-blown manipulation. A strong relationship is built on mutual trust and respect, not one person micromanaging the other. If you constantly feel like you’re walking on eggshells or losing your sense of self, it may be time to re-evaluate the relationship.


    Conclusion

    A successful relationship is not just about love and attraction—it requires emotional intelligence, trust, and mutual respect. Recognizing these problematic traits early on can prevent years of frustration and heartache. While no one is perfect, a relationship should enhance your well-being, not diminish it.

    As Dr. Henry Cloud wisely puts it in Safe People, “The people you choose to let into your life will shape your emotional and mental well-being. Choose wisely.” By being mindful of the traits that lead to unhealthy dynamics, you can build a relationship based on true compatibility, mutual respect, and long-term happiness.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Things That Inevitably Happen When You Spend A Lot Of Time Alone

    Things That Inevitably Happen When You Spend A Lot Of Time Alone

    Spending time alone can be both a blessing and a curse. In a world that constantly demands social interaction, solitude offers a much-needed escape. However, when solitude stretches beyond a healthy balance, it starts to shape your habits, perceptions, and even the way you engage with the world. The effects of prolonged isolation are subtle at first, but over time, they become deeply ingrained in your daily life.

    Psychologists have long debated the impact of solitude on the human mind. While some argue that it fosters creativity and self-awareness, others warn that excessive isolation can lead to social awkwardness and even distort one’s perception of reality. The mind, when left to its own devices for too long, creates narratives that may not always align with the outside world. As a result, habits form—some beneficial, some not—altering the way you dress, communicate, and even perceive other people.

    Although spending time alone is often necessary for self-discovery and personal growth, there are inevitable consequences to prolonged solitude. You might find yourself dressing more casually, feeling uneasy in social settings, or even developing a love-hate relationship with humanity. Some of these effects are amusing, while others hint at deeper psychological shifts. Let’s explore the things that inevitably happen when you spend a lot of time alone.


    1 – You get lazy about dressing up (or getting dressed at all).

    When your daily routine no longer requires stepping outside, your relationship with clothing begins to change. The need to impress others diminishes, and suddenly, wearing sweatpants (or staying in pajamas all day) feels perfectly acceptable. Fashion, once an expression of self-identity, takes a backseat to comfort and convenience. Without external validation, you might wonder why you ever spent so much time coordinating outfits or ironing shirts.

    This shift isn’t necessarily a bad thing—psychologists suggest that dressing down can be a sign of confidence in one’s own presence rather than seeking approval from others. However, it can also lead to a slippery slope where self-care gets neglected. As Mark Twain once quipped, “Clothes make the man. Naked people have little or no influence on society.” While extreme, his words highlight the reality that personal presentation shapes both self-perception and how others perceive us.


    2 – You start to feel awkward when you do actually have to be social.

    After long periods of solitude, social interactions can feel foreign. You might find yourself struggling to maintain eye contact, second-guessing your words, or feeling exhausted after even brief conversations. The once-familiar rhythm of human interaction now feels like a performance where you’re out of practice.

    This phenomenon is well-documented in psychology. According to Dr. John Cacioppo, a leading researcher on loneliness, extended isolation can make the brain hypersensitive to social cues, leading to increased anxiety in social situations. The longer you go without practice, the harder it becomes to re-enter the social world seamlessly. What was once effortless now requires a conscious effort, reinforcing the cycle of withdrawal.


    3 – You convince yourself that people are the worst and that you don’t really like any of them.

    Spending too much time alone can lead to a skewed perspective on human nature. Without regular social interactions to balance your views, negative experiences and past grievances can take center stage. It’s easy to romanticize solitude when the alternative is dealing with people’s flaws, misunderstandings, and conflicts.

    Philosopher Jean-Paul Sartre famously said, “Hell is other people.” While this sentiment resonates with anyone who has experienced frustration in relationships, it becomes problematic when isolation turns misanthropy into a personal philosophy. Human connection is essential for mental well-being, and while people can be challenging, they also bring joy, learning, and emotional depth that solitude alone cannot provide.


    4 – You start talking to yourself a lot more (and maybe even answering).

    It starts innocently enough—a stray comment here and there as you navigate your day. But soon, you find yourself engaging in full-blown conversations, debating ideas, and even laughing at your own jokes. Talking to oneself is actually a common habit, but prolonged isolation can amplify it, making external dialogue feel less necessary.

    Cognitive psychologist Dr. Laura Ann Petitto explains that self-talk can serve as a mechanism for problem-solving and self-regulation. However, excessive internal dialogue in isolation can also create an echo chamber where one’s thoughts go unchallenged, reinforcing certain beliefs without external input. What begins as harmless muttering can eventually shape the way you interact with the world.


    5 – You spend a lot of time online. Like, a lot.

    When human interaction becomes scarce, the internet often steps in to fill the void. Social media, forums, and streaming services become the primary means of connection and entertainment. While online engagement provides a sense of interaction, it lacks the depth and spontaneity of face-to-face communication.

    Excessive screen time can also have psychological consequences. Studies have shown that too much digital interaction can lead to increased anxiety and a distorted sense of reality. Dr. Sherry Turkle, author of Alone Together, argues that while technology connects us, it can also create an illusion of companionship that ultimately deepens loneliness.


    6 – You get a bit too comfortable with being gross.

    Without external accountability, personal hygiene can take a hit. Skipping showers, neglecting grooming, and letting dishes pile up become easier when there’s no one around to notice. While this isn’t true for everyone, isolation often lowers the motivation to maintain daily routines.

    This phenomenon is tied to the psychology of external validation. When no one is around to witness our habits, the pressure to conform to social norms decreases. However, as philosopher Aristotle once noted, “We are what we repeatedly do.” Neglecting self-care, even in solitude, can have a lasting impact on self-esteem and overall well-being.


    7 – You get bored.

    Even the most introverted person eventually runs out of things to do. At first, solitude feels liberating, but without structure, boredom sets in. This can lead to a cycle of mindless scrolling, endless TV marathons, or other passive activities that do little to engage the mind.

    Research suggests that boredom can be a double-edged sword. While it can foster creativity and self-reflection, chronic boredom can also lead to feelings of restlessness and dissatisfaction. Psychologist Dr. Sandi Mann describes boredom as “the root of creativity,” but only when channeled productively.


    8 – You feel really accomplished for getting through all those books/TV shows/etc.

    One of the perks of solitude is the ability to indulge in hobbies without interruption. Books, TV shows, and creative projects become immersive escapes, providing a sense of productivity even when daily life feels monotonous.

    Engaging deeply with art, literature, or film can be enriching, but it can also become an avoidance mechanism. Philosopher Seneca warned against mistaking passive consumption for genuine intellectual growth. Balance is key—using solitude to learn and create rather than just consume.


    9 – You start feeling a bit lonely.

    Even those who cherish solitude eventually experience loneliness. The absence of shared experiences and spontaneous conversation can lead to an underlying sense of emptiness. This isn’t always obvious—it can manifest as irritability, fatigue, or an unexplained longing for connection.

    Dr. Vivek Murthy, former U.S. Surgeon General, describes loneliness as an epidemic that affects both physical and mental health. Social bonds are fundamental to human well-being, and prolonged isolation can lead to anxiety, depression, and even a weakened immune system.


    10 – You grow comfortable in your own skin.

    Despite the challenges of prolonged solitude, one undeniable benefit is self-acceptance. When alone, you’re free from societal pressures, allowing you to explore your thoughts, interests, and emotions without external influence. This period of introspection can lead to greater self-awareness and confidence.

    Philosopher Søren Kierkegaard believed that solitude was essential for personal growth, stating, “The crowd is untruth.” While human connection is vital, solitude provides the space to cultivate a strong sense of self—something that, when balanced correctly, can lead to a more fulfilling life.


    Conclusion

    Spending a lot of time alone changes you in subtle yet profound ways. While it fosters self-reflection and independence, it can also lead to habits that make re-engaging with society challenging. The key is balance—learning to enjoy solitude without becoming trapped in isolation. By being mindful of these inevitable changes, one can navigate solitude in a way that enriches rather than limits life.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Will Hur Be a Different Creature? by Allama Javed Ghamdi

    Will Hur Be a Different Creature? by Allama Javed Ghamdi

    YouTube Ghamdi

    Will Hur Be a Different Creature? | حور الگ مخلوق؟ | Javed Ghamidi
    🔥 EXPLANATION of (3) AUTHENTIC AHADITH Regarding ‘HOOR’ ‼️ JAVED AHMAD GHAMIDI

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • ERP Software: Planning, Implementation, and Avoiding Failure

    ERP Software: Planning, Implementation, and Avoiding Failure

    This detailed training material offers a comprehensive exploration of ERP systems and their implementations, guided by an experienced consultant. It examines the fundamentals of ERP software, its evolution, and the various types of systems available. The training emphasizes critical aspects of successful implementations, including planning, business requirements, change management, risk mitigation, and common pitfalls, drawing upon case studies of both successes and failures. Furthermore, it distinguishes program management from project management and highlights strategies for effective phasing and vendor selection. The resource aims to provide a deep understanding for anyone involved in an ERP project, from team members to executives.

    ERP Software Training: A Detailed Review

    Quiz

    1. What does ERP stand for, and what was the earlier technology from which it evolved? ERP stands for Enterprise Resource Planning. It evolved from an earlier technology called MRP, which stands for Material Resource Planning, initially used by manufacturing organizations to manage their operations.
    2. Describe the difference between Tier 1, Tier 2, and Tier 3 ERP providers. Tier 1 ERP providers are typically large, well-known vendors like SAP, Oracle, and Microsoft, offering broad functionality suitable for large, multinational, and complex organizations. Tier 2 providers offer more niche-focused solutions, often specializing in specific industries like manufacturing (e.g., Infor, Epicor). Tier 3 or industry-niche solutions are smaller, simpler, and cater to very specific industries or functions within an ERP system.
    3. Explain the concept of “Best of Breed” ERP systems and why organizations might choose this approach over a single ERP system. “Best of Breed” ERP systems involve using multiple, specialized software systems for different business functions (e.g., CRM, HCM, Finance) instead of a single, integrated ERP system. Organizations might choose this for a more precise fit with their unique business needs and greater flexibility, even though it can increase technical complexity due to the need for integrations.
    4. According to the source, what is the primary reason why ERP implementations commonly fail? The primary reason ERP implementations commonly fail is not due to the technology itself, which is generally robust and sophisticated, but rather due to the operational and people side of things, such as change management issues and resistance to new processes.
    5. Give two examples of emerging technologies being integrated into ERP systems and briefly describe their application. Two examples are Artificial Intelligence (AI) and Machine Learning (ML). AI is helping automate business processes, while ML analyzes data for patterns and exceptions, such as automating accounts payable and flagging potential issues. Another example is Blockchain, used for tracking materials in industries like pharmaceuticals and food for recall or regulatory purposes.
    6. What are modules in the context of ERP systems, and how do they relate to end-to-end business processes? Modules in ERP systems are functional areas or specific business processes (e.g., Finance, Accounting, Inventory Management) handled by the software. While they are individual components, the value of ERP comes from their integration to support seamless end-to-end business processes that span across multiple modules and the entire organization.
    7. Describe the difference between configuration and customization in ERP implementation. Configuration involves setting up the ERP software using built-in options, such as checking boxes and clicking buttons, to align it with business needs. Customization, on the other hand, involves modifying the source code of the software to meet specific requirements that cannot be achieved through configuration. Customization is generally riskier and more expensive.
    8. What is the significance of defining business requirements in an ERP implementation? Defining business requirements is critical for selecting the right ERP system and for guiding the implementation process to ensure the software meets the organization’s needs. They serve as a benchmark for evaluating technologies, designing processes, and ensuring requirements traceability throughout the project lifecycle, ultimately helping to realize the expected business value.
    9. Briefly explain the “Order to Cash” and “Procure to Pay” end-to-end business processes within an ERP system. “Order to Cash” is the process that starts with a customer order and includes all the steps until the organization collects cash from the customer, involving sales, order management, inventory, manufacturing (if applicable), shipping, invoicing, and payment collection. “Procure to Pay” focuses on the process of acquiring the necessary materials and services to run the business, starting with procurement, placing orders, receiving goods, and ultimately paying the suppliers.
    10. What are some key considerations when determining the phasing strategy for an ERP implementation? Key considerations include the business processes that will deliver the most immediate value, the modular structure of the chosen software, the technical dependencies between different parts of the system, the organization’s risk tolerance, and the need to effectively manage the project scope to avoid overwhelming the implementation team.

    Essay Format Questions

    1. Discuss the trade-offs between implementing a single, integrated ERP system versus a “Best of Breed” approach. What factors should an organization consider when deciding which model is most suitable for its needs?
    2. Analyze the critical role of change management in the success of ERP implementations. What are some common pitfalls related to change management, and what strategies can organizations employ to mitigate these risks?
    3. Evaluate the importance of developing a comprehensive business case before embarking on an ERP implementation. What are the key components of a strong business case, and how should it be used throughout the project lifecycle?
    4. Based on the provided case studies of ERP implementation failures, identify the recurring themes and common mistakes that organizations make. What are the most crucial lessons that can be learned from these failures to ensure future success?
    5. Explain the distinction between software project management and program management in the context of an ERP implementation. Why is a broader program management perspective essential for achieving a successful digital transformation?

    Glossary of Key Terms

    • ERP (Enterprise Resource Planning): Software that integrates core business processes, providing a unified system to manage various aspects of an organization, such as finance, HR, manufacturing, and supply chain.
    • MRP (Material Resource Planning): An earlier form of software primarily used by manufacturing organizations to manage inventory and production planning.
    • Tier 1 ERP Providers: Large, global ERP vendors (e.g., SAP, Oracle, Microsoft) offering comprehensive solutions for complex organizations.
    • Tier 2 ERP Providers: ERP vendors offering more focused solutions, often specializing in specific industries or functionalities (e.g., Infor, Epicor in manufacturing).
    • Tier 3 ERP Providers: Smaller, niche ERP vendors offering simpler solutions for specific industries or functions, potentially not providing full ERP capabilities.
    • Best of Breed: A strategy of using multiple, specialized software systems for different business functions, rather than a single, integrated ERP.
    • Modules: Functional areas or specific business process components within an ERP system (e.g., Finance, Sales, Inventory).
    • End-to-End Business Process: A complete sequence of activities that starts with a trigger and ends with a defined outcome, often spanning across multiple ERP modules and departments (e.g., Order to Cash, Procure to Pay).
    • Configuration: Setting up the ERP software using its built-in options and parameters to align with business requirements without altering the underlying code.
    • Customization: Modifying the source code of the ERP software to meet specific business needs that cannot be addressed through configuration.
    • Integration: Connecting different software systems or modules to enable data sharing and process flow between them.
    • Business Requirements: Detailed descriptions of what the business needs the technology to do to support its operations and future goals.
    • Business Case: A document that justifies the investment in an ERP system by outlining the costs, benefits, risks, and expected return on investment.
    • ROI (Return on Investment): A financial metric used to evaluate the efficiency or profitability of an investment, calculated by dividing the net profit by the total investment.
    • Total Cost of Ownership (TCO): The comprehensive cost associated with implementing and using an ERP system over its lifecycle, including software costs, implementation services, infrastructure, training, and ongoing maintenance.
    • Implementation Phasing: Breaking down an ERP implementation into sequential stages or rollouts, often based on modules, business units, or geographical locations, to manage risk and complexity.
    • Program Management: The overarching management of a portfolio of projects that are related and coordinated to achieve strategic objectives, encompassing more than just the software implementation itself.
    • Project Management: The application of processes, methods, skills, knowledge, and experience to achieve specific project objectives according to the project acceptance criteria within agreed parameters.
    • Organizational Change Management (OCM): The process of guiding and supporting individuals and teams through the transition resulting from an ERP implementation, addressing the people side of change.
    • User Acceptance Testing (UAT): A phase of testing during an ERP implementation where end-users validate that the system meets their needs and works according to the defined business requirements.

    ERP Software Training: A Detailed Introduction to ERP Systems and Implementations – Briefing Document

    Source: Excerpts from “001-ERP_Software_Training__A_Detai-03-24-2025.pdf” by Eric Kimberling, CEO of Third Stage Consulting.

    Date of Training Material: March 24, 2025 (Assumed from filename)

    Overview: This briefing document summarizes a comprehensive training course on Enterprise Resource Planning (ERP) systems and their implementations, led by Eric Kimberling. The course aims to provide a deep understanding of ERP software, successful implementation strategies, change management, risks, failure points, and lessons learned from case studies. It targets project team members, consultants, executives, and anyone seeking a thorough understanding of ERP.

    Main Themes and Important Ideas/Facts:

    1. Introduction to ERP and its Evolution:

    • ERP stands for Enterprise Resource Planning and is an evolution from Material Resource Planning (MRP) systems, which originated in manufacturing to manage operations, track orders, and plan material needs.
    • MRP expanded over time to include warehouse management, procurement, financials, accounting, HCM, and CRM, aiming to provide a single, unified system across the organization.
    • The goal of ERP is to offer “one unified data set,” “a common workflow,” and “one system that provided all the operations and data and transparency into what was happening enterprise-wide.”

    2. Types of ERP Systems:

    • Tier 1 ERP: Major providers like SAP, Oracle, and Microsoft, typically suited for larger, multinational, and more complex organizations, offering a broad range of functionality.
    • Tier 2 ERP: Niche-focused solutions, often industry-specific (e.g., Epicor and Infor in manufacturing and distribution).
    • Tier 3/Industry Niche Solutions: Smaller, simpler solutions catering to specific industries or functions, potentially not offering full ERP capabilities.
    • Single ERP System Model (Ideal): One ERP system to handle all organizational technology needs. However, most organizations have unique needs not fully met by a single system.
    • Best of Breed ERP Systems (Common Trend): Utilizing multiple specialized systems for different business areas (e.g., CRM, HCM, finance) alongside a core back-office ERP, offering flexibility and a precise fit but increased complexity in integration.

    3. The High Failure Rate of ERP Implementations:

    • A significant statistic suggests that the failure rate of ERP implementations is “above 80%.”
    • The primary reasons for failure are not typically the technology itself, which is generally “very robust,” but rather “the operational and the people side of things.”

    4. Emerging Trends in ERP:

    • Artificial Intelligence (AI) and Machine Learning (ML): Used for automation (e.g., accounts payable processing, flagging exceptions) and pattern recognition.
    • Example: ML automating accounts payable and AI flagging potential problems.
    • Blockchain: Used for enhanced traceability, particularly in industries like pharmaceuticals and food, to track raw materials and production processes.
    • Example: Tracking every raw material in a pharmaceutical production process for recall purposes.
    • Internet of Things (IoT): Integration of data from connected devices on the shop floor or other areas to provide real-time visibility within the ERP system.
    • Example: Manufacturing organizations tracking shop floor data that ties back to the ERP system.

    5. How ERP Systems Work (Mechanics and Nomenclature):

    • Legacy Systems: Organizations implement ERP to replace outdated systems, which can range from old DRP systems and mainframes to “the number one Legacy system in the world… Microsoft Excel.”
    • Modules: ERP systems are comprised of functional areas or specific business processes handled as individual but integrated units (e.g., finance, accounting, inventory management, SCM, CRM, HCM). Some modules have sub-modules.
    • End-to-End Business Processes: Modules are tied together by these processes, providing flow and value across the organization.
    • Configuration: Personalizing the ERP software to fit specific business needs through settings and choices within each module. Some vendors offer pre-configured best practices for certain industries.
    • Customization: Modifying the source code of the ERP software, a riskier and more costly option reserved for mandatory business requirements not met by configuration.
    • Third-Party Integration: Connecting external, specialized software to the core ERP system to address functional gaps. While offering specific capabilities, excessive integration can dilute the value of a single ERP platform.
    • Testing: Crucial to ensure data flows and processes work correctly across integrated modules and that the system meets business needs. Various types of testing are necessary.
    • Data Migration: Consolidating, cleaning, and transferring data from legacy systems to the new ERP, including mapping data fields. Often overlooked and requires significant effort.

    6. Key ERP Terms and Definitions:

    • ERP (Enterprise Resource Planning): Technology that ties together an entire business, encompassing various processes from finance to operations.
    • Order to Cash: An end-to-end business process from receiving a customer order to collecting payment, involving multiple workflows (order capture, inventory, manufacturing, invoicing, payment).
    • Procure to Pay: An end-to-end business process focused on acquiring necessary materials and paying for them (procurement, receiving, payment).
    • Modules: Functional components of an ERP system (e.g., General Ledger, Accounts Payable, Inventory Management, Sales and Distribution).
    • Business Requirements: The needs of the organization that determine how the ERP software will be configured to accommodate those needs.
    • Configuration: Tailoring the ERP software using built-in settings and options without altering the core code.
    • Customization: Modifying the underlying source code of the ERP software to meet specific requirements.
    • Integration: Connecting different modules within the ERP or external third-party systems to ensure data and process flow.
    • Business Process Reengineering (BPR): Fundamentally rethinking and redesigning business processes to improve efficiency and effectiveness, often done in conjunction with ERP implementation.
    • Change Management: Managing the human and organizational aspects of the ERP implementation to ensure user adoption and minimize disruption.
    • User Acceptance Testing (UAT): Testing performed by end-users to validate that the system meets their needs and business requirements.
    • Total Cost of Ownership (TCO): The comprehensive cost of implementing and operating an ERP system over its lifecycle.
    • Return on Investment (ROI): The financial benefit derived from the ERP investment compared to its total cost.

    7. Single Integrated ERP vs. Best of Breed:

    • Single ERP Pros: Lower learning curve, easier maintenance and deployment, single source of truth for data, less technical complexity.
    • Single ERP Cons: May not provide the best functional fit for all specialized needs.
    • Best of Breed Pros: More likely to find a better technical and functional fit for specific business processes.
    • Best of Breed Cons: Higher learning curve (multiple systems), more complex to maintain and deploy, potential data silos and integration challenges, higher technical complexity.
    • Hybrid Model: Combining a core single ERP for vanilla functions with best-of-breed solutions for complex or unique business aspects. Many vendors are moving towards this model through acquisitions.
    • Integration and Interoperability: Crucial for both best-of-breed and hybrid models to ensure systems can work together effectively.

    8. Top 10 ERP Software Vendors (Overview):

    • A top 10 list is provided based on overall functionality, cost and risk of deployment, and client results, with a heavier weighting on implementation failure rates in the current year’s methodology.
    • Notable Changes: Sage X3 and Acumatica are no longer in the top 10 due to increased competition.
    • Top 10 (in order from 10 to 1): 10. Salesforce Platform (Force) 9. Odoo 8. Oracle NetSuite 7. IFS 6. SAP S/4HANA 5. Microsoft Dynamics 365 4. Epicor 3. Infor 2. Oracle ERP Cloud
    1. SAP ECC/Business Suite
    • Honorable Mentions: ServiceNow, Snowflake, Sage X3, Acumatica.

    9. Defining Business Requirements for Successful Implementation:

    • Business requirements summarize the needs and desired outcomes from the ERP system in the “future state,” not just current processes.
    • They are crucial for selecting the right system and ensuring the implementation meets expectations.
    • The process involves workshops with stakeholders to describe current processes, pain points, improvement opportunities, and future needs.
    • Key Tips: Don’t just rehash current state; prioritize requirements (high, medium, low); use them to drive vendor demos and selection; maintain focus on requirements during design and implementation; use them to design future state business processes; ensure requirements traceability throughout the project lifecycle.

    10. Creating a Business Case for ERP Implementation: * A business case justifies the project, defines the total cost of ownership, quantifies expected business benefits, and calculates ROI. * It also serves as a tool for project governance and managing/optimizing business benefits post-implementation. * Total Cost of Ownership (TCO) Components: Software cost (annual recurring for cloud), technology implementation cost (one-time, often underestimated), IT infrastructure costs (hardware, network, often ongoing), internal resource costs (backfilling, project team time), training costs (initial and ongoing), ongoing maintenance and support, program management, internal labor. * Operational Disruption (Risk): Cost associated with potential negative impacts (e.g., inability to ship, cancelled orders). Should be quantified and considered in investment decisions to mitigate risks. * Business Value/Benefits (Examples): Reduced inventory (quantify cash and carrying costs), reduced SG&A costs (overhead, manual rework, potential future headcount savings), increased revenue (from better inventory, sales processes), better information for decision-making (though harder to quantify directly). * ROI Calculation: Compares total costs with projected benefits over time. * Project Governance: Business case helps make objective decisions on scope, customization, and budget changes. * Business Benefits Realization: Used to track actual benefits post-go-live and identify areas for optimization.

    11. Phasing ERP Implementation: * Deploying ERP incrementally minimizes risk and allows for momentum building. * Phasing Considerations: * Business Processes: Prioritize processes with the highest potential value or lowest hanging fruit. * Software Modules: Consider how the software is architected and how modules logically fit together. * Geographic Locations/Business Units: Roll out to different parts of the organization sequentially. * Technical Complexity/Risk: Start with less complex or risky areas. * Data Migration: Phasing data migration can reduce risk and effort at any one time. * Organizational Change Readiness: Roll out where the organization is most prepared for change. * Risk Mitigation: Choose a phasing strategy that best mitigates overall project risk. * Scope Management: Reducing initial scope can lead to more successful early phases. * Reconciling Different Perspectives: Qualitative inputs from different lenses need to be balanced to create a cohesive phasing strategy, considering risks and benefits of each option.

    12. Program Management vs. Project Management: * Software Project Management: Focused on the technical implementation of the software (configuration, design, testing, go-live), often managed by the system integrator. * Program Management: A broader, overarching framework encompassing multiple workstreams beyond just software deployment to achieve the overall business transformation. * Key Program Management Workstreams: Software project management (potentially multiple), technical aspects (architecture, data, integration), business process improvement, organizational change management, business case and benefits realization. * Importance of a Program Management Office (PMO): To align project plans, ensure project governance and controls (using the business case), manage risks and issues across workstreams, and provide the implementing organization with control and ownership of the entire program.

    13. Why ERP Implementations Fail (Top 5 Reasons): 1. Lack of a Clear Definition of Business Objectives and Scope: Without clear goals, the project lacks direction and is prone to scope creep and misalignment. 2. Poor Project Management: Ineffective planning, execution, risk management, and communication lead to delays, budget overruns, and ultimately failure. 3. Insufficient Organizational Change Management: Neglecting the human side of the transformation (user training, communication, buy-in) leads to resistance and poor adoption. 4. Inadequate User Acceptance Testing (UAT): Failing to thoroughly test the system with end-users in real-world scenarios results in post-go-live issues and business disruptions. 5. Lack of a Clear Definition of Success: Without measurable success criteria tied to the business case, it’s impossible to determine if the implementation was worthwhile and to guide decision-making during the project.

    14. Top 10 ERP Failures of All Time (Case Studies and Lessons Learned): * Brief summaries of high-profile ERP implementation failures, including: * Haribo (SAP): Supply chain issues, sales drop. Lesson: Ensure thorough testing and understanding of impact on core operations. * Washington Community College (PeopleSoft): Vendor bankruptcy, lawsuits. Lesson: Due diligence on vendor stability. * Hewlett-Packard (ERP): Significant financial losses due to integration issues. Lesson: Manage complexity and integration carefully. * Waste Management (SAP): Alleged misrepresentation of software. Lesson: Thorough vetting of vendor claims and software capabilities. * Hershey’s (SAP): Inability to process orders during peak season due to rushed implementation. Lesson: Realistic timelines and avoid go-lives during critical business periods. * MillerCoors (SAP): Lawsuits against system integrator for damages. Lesson: Clear contracts and accountability. * Revlon (SAP): Plant shutdown, shipping issues, financial losses after go-live. Lesson: Phased roll-out, address organizational integration before ERP. * Nike (ERP Upgrade): Significant write-off and additional investment needed. Lesson: Thorough planning and realistic expectations for upgrades. * National Grid (SAP): Massive cost overruns, operational disruptions (period-end close delay, unpaid invoices). Lesson: Robust testing, process alignment, and experienced implementation partners. * United States Navy (ERP): Billions spent with minimal improvement, scope reduction. Lesson: Clear requirements, strong governance, and realistic scope. * Common Themes in Failures: Poor planning, unrealistic expectations, insufficient testing, lack of change management, inadequate executive involvement, choosing the wrong software or partners.

    15. How to Avoid ERP Implementation Failure: * Choose the Right Software: Ensure a good fit for business needs, not just based on vendor bias. * Get the Right Implementation Partner: Select based on experience, industry knowledge, and cultural fit. * Develop a Comprehensive Business Case: Justify the investment and use it for ongoing governance. * Define Clear Business Objectives and Scope: Avoid scope creep and maintain focus. * Invest in Strong Project Management: Proactive planning, risk management, and communication are crucial. * Prioritize Organizational Change Management: Prepare the people and the organization for the new system and processes. * Conduct Thorough User Acceptance Testing (UAT): Validate the system with end-users in realistic scenarios. Consider independent UAT facilitation. * Ensure Executive Leadership Involvement: Buy-in and active participation from executives are essential. * Seek Independent, Technology-Agnostic Support: Guidance from unbiased experts can help navigate challenges and ensure decisions are in the best interest of the business.

    Call to Action:

    • Review the annual Digital Transformation and ERP Report for independent reviews, rankings, and best practices (available via QR code or link).
    • Read “The Final Countdown” book for a deeper dive into digital strategy and successful ERP implementations (available via QR code or link).
    • Share the training materials with colleagues and project team members.

    This briefing document captures the key information and insights from the provided excerpts, emphasizing the complexities of ERP implementations and the critical factors for success.

    Understanding ERP Systems and Implementations

    FAQ: Understanding ERP Systems and Implementations

    1. What exactly is ERP software and how has it evolved? ERP (Enterprise Resource Planning) software is a technology that integrates and manages core business processes within an organization. It evolved from earlier MRP (Material Resource Planning) systems used primarily by manufacturing companies to track inventory and production needs. Over time, ERP expanded to encompass other crucial business functions like warehouse management, procurement, finance, accounting, HCM (Human Capital Management), and CRM (Customer Relationship Management). The goal of ERP is to provide a unified data set and common workflows across the entire organization, offering transparency and efficiency. Initially, the focus was on a single ERP system to handle all needs, but now, “best of breed” strategies involving multiple specialized systems integrated together are also common.

    2. What are the different tiers or types of ERP systems available in the marketplace? The ERP marketplace is often categorized into three tiers. Tier 1 ERP systems, such as SAP, Oracle, and Microsoft Dynamics 365, are typically large-scale solutions designed for multinational and complex organizations requiring a broad range of functionalities. Tier 2 ERP providers offer more niche-focused solutions, often specializing in specific industries like manufacturing (e.g., Epicor, Infor) or distribution. Tier 3 or industry-niche solutions comprise a large number of smaller, simpler systems tailored to very specific industries or functions within a business, sometimes not even providing full ERP capabilities. Additionally, the “best of breed” approach involves selecting multiple specialized systems for different business areas and integrating them.

    3. Why do ERP implementations fail so frequently, despite the potential benefits of the technology? Despite the robust and innovative nature of ERP technology, implementations have a high failure rate, often cited above 80%. The primary reasons for these failures are typically not related to the technology itself but rather to the operational and people aspects of the implementation. Common pitfalls include a lack of clear objectives, inadequate change management, insufficient executive support, poor project management, and underestimation of the complexities involved in integrating new systems with existing processes and organizational structures. Ignoring the human element and focusing solely on the technical deployment are significant contributing factors to ERP implementation failure.

    4. How do ERP systems work from a technical perspective, and what are some key components? ERP systems are complex, integrated platforms comprised of various modules, each designed to handle specific functional areas or business processes (e.g., Finance, Accounting, Inventory Management, Supply Chain Management, CRM, HCM). These modules are not entirely standalone; they are designed to integrate and share data to support end-to-end business processes like “order to cash” and “procure to pay.” Implementing an ERP system involves configuration, which is tailoring the software’s settings and options to align with business requirements. If configuration is insufficient, customization involves modifying the source code, which is riskier and more costly. Integration is crucial for connecting different modules within the ERP and for linking the ERP with external, third-party systems. Thorough testing, data migration from legacy systems, and user training are also critical components of a successful implementation.

    5. What are some of the emerging trends and technologies impacting ERP systems? The ERP landscape is continuously evolving with the integration of advanced technologies. Artificial Intelligence (AI) and Machine Learning (ML) are being used to automate processes (e.g., accounts payable) and identify exceptions. Blockchain technology is gaining traction in industries like pharmaceuticals and food for enhanced supply chain traceability. The Internet of Things (IoT) enables real-time data collection from devices on the shop floor and other areas, providing greater visibility into operations. These trends aim to enhance efficiency, provide deeper insights, and improve decision-making within organizations using ERP systems.

    6. What are the key considerations and trade-offs between a single, integrated ERP system and a “best of breed” approach? Choosing between a single ERP system and a “best of breed” strategy involves several trade-offs. A single ERP system offers advantages like a lower learning curve, easier maintenance, a single source of truth for data, and less technical complexity. However, it might not always provide the best functional fit for all unique business needs. A “best of breed” approach, using multiple specialized systems, can offer a better fit for specific functionalities and address unique requirements but introduces higher technical complexity due to the need for integration between different systems, potentially leading to data silos and increased maintenance efforts. A hybrid model, combining a core ERP for standard functions with best-of-breed solutions for complex or niche areas, is also a viable option that seeks to balance these trade-offs.

    7. What are some critical first steps for a successful ERP implementation, and why are they important? Two critical first steps for a successful ERP implementation are defining clear business requirements and developing a comprehensive business case. Business requirements detail what the organization needs the technology to do to support its future state. They are crucial for selecting the right system, guiding the implementation process, ensuring requirements traceability, and designing both the technology and future business processes effectively. A business case justifies the project by outlining the total cost of ownership, quantifiable business benefits (e.g., reduced inventory, increased revenue), and expected ROI. It serves as a tool for project governance, helping to manage scope, costs, and ultimately, the realization of business benefits throughout and after the implementation.

    8. What are some common reasons for ERP implementation failures highlighted in case studies, and what lessons can be learned? Case studies of ERP implementation failures reveal recurring themes. Unrealistic timelines (Hershey’s), lack of clear business benefits (Waste Management), insufficient change management (many cases), going live at critical business times (Hershey’s, Revlon), poor vendor selection or management (Washington Community College), underestimation of complexity and integration challenges (HP), and lack of strong executive involvement are common contributors to failure. The lessons learned include the importance of choosing the right software and implementation partner, setting realistic expectations, prioritizing change management, conducting thorough testing (especially user acceptance testing), ensuring strong executive leadership and buy-in, and considering independent, technology-agnostic support throughout the transformation.

    Understanding Enterprise Resource Planning (ERP) Systems

    An ERP (Enterprise Resource Planning) system is a type of software that integrates the core business processes of an organization into a single system. The purpose of an ERP system is to tie together the entire organization, providing a unified data set and a common workflow across different departments. This aims to improve organizational effectiveness and efficiency.

    Evolution from MRP: ERP software evolved from an older technology called MRP (Material Resource Planning), which originated in manufacturing organizations. MRP systems were designed to help manage manufacturing operations by tracking customer orders and demand, and by managing the parts and supplies needed to fulfill that demand. They also helped manage the manufacturing shop floor to prioritize orders and maximize throughput. Over time, MRP expanded beyond manufacturing to include areas like warehouse management, procurement, financials, accounting, HCM (Human Capital Management), and CRM (Customer Relationship Management). This evolution led to the development of ERP systems that could integrate all these functions into a single system.

    Key Benefits of ERP Systems:

    • Unified Data Set: ERP systems aim to provide one unified source of truth for data across the organization.
    • Common Workflow: They establish common workflows across different business functions.
    • Enterprise-wide Transparency: ERP systems offer visibility into operations and data across the entire enterprise.

    Different Tiers of ERP Providers: The ERP marketplace can be broadly categorized into different tiers:

    • Tier 1: These are the largest ERP systems, such as SAP, Oracle, and Microsoft Dynamics 365. They are typically suited for larger, multinational, and more complex organizations, offering a broad range of functionalities.
    • Tier 2: These providers offer more niche-focused solutions, sometimes concentrating on specific industries or capabilities. Examples include Epicor and Infor, which are common in the manufacturing space.
    • Tier 3 (Industry Niche): This segment includes numerous smaller and simpler solutions that cater to specific industries or particular functions within ERP. They might not offer full ERP capabilities.

    Single ERP vs. Best-of-Breed:

    • The traditional approach is to have a single ERP system that handles all of an organization’s technology needs. This offers advantages like a lower learning curve, easier maintenance, a single source of truth for data, and less technical complexity.
    • However, many organizations have unique needs that a single ERP system cannot fully meet, leading to the rise of best-of-breed ERP systems. This involves using multiple, specialized systems for different business areas (e.g., CRM for sales, HCM for HR) and integrating them with a core ERP system. While offering a more precise fit for specific needs and flexibility, this model can be more complex due to the need for integration between multiple systems and can lead to multiple sources of truth. A hybrid model is also common, where a core ERP system handles standard functions, and best-of-breed solutions are used for complex or unique business aspects.

    Failure Rate of ERP Implementations: ERP implementations have a high failure rate, often cited as above 80%. The primary reasons for these failures are usually not the technology itself, which is generally robust, but rather issues related to people and processes. This includes inadequate business process improvement and insufficient organizational change management. Resistance to change is a significant factor.

    Critical Success Factors for ERP Implementation: To increase the chances of successful ERP implementation, organizations should focus on:

    • Finding the right software or technology that best fits their needs through independent assessment.
    • Ensuring organizational alignment on the company’s future direction.
    • Shifting attention from solely the technology to the people and process side of things during implementation.

    Emerging Trends in ERP: The ERP landscape is evolving with the integration of advanced technologies:

    • Artificial Intelligence (AI) is being used to automate business processes.
    • Machine Learning (ML) is used to identify patterns and exceptions, such as in accounts payable processing.
    • Blockchain technology is being adopted for supply chain transparency and traceability, particularly in industries like pharmaceuticals and food.
    • The Internet of Things (IoT) allows for real-time data collection from devices on the shop floor, providing greater visibility within manufacturing organizations.

    How ERP Systems Work: ERP systems are complex, integrated systems comprising various modules, each handling a specific functional area or business process (e.g., finance, accounting, inventory management, supply chain management, CRM, HCM). These modules are designed to work together, enabling end-to-end business processes.

    The implementation of an ERP system involves several key steps:

    • Configuration: This involves making decisions and setting up the software module by module to align with the organization’s specific needs and business requirements. Some vendors offer preconfigured best practices for certain industries.
    • Customization: If configuration options are insufficient, organizations might resort to customization, which involves changing the software’s source code. This is riskier and more costly than configuration.
    • Integration: Ensuring that different modules within the ERP system, and potentially third-party systems, can communicate and exchange data seamlessly is crucial. This often involves using APIs.
    • Testing: Thoroughly testing the integrated processes and data flows between modules is essential to ensure the system works as intended.
    • Data Migration: This involves consolidating, cleaning, mapping, and transferring data from old legacy systems (including spreadsheets) to the new ERP system. Organizations often need to prioritize which data to migrate.

    Key Terminology: Understanding the specific vocabulary associated with ERP systems is important for effective communication:

    • ERP (Enterprise Resource Planning): Technology that integrates an entire business.
    • Order to Cash: An end-to-end business process starting from a customer order and ending with the collection of payment.
    • Procure to Pay: An end-to-end business process focused on acquiring and paying for the materials needed to run a business.
    • Modules: Functional areas within an ERP system (e.g., finance, HR, sales).
    • Business Requirements: The specific needs of an organization that determine how the ERP software will be configured and set up.
    • Configuration: Personalizing or setting up the ERP software to work in a specific way by checking boxes and flipping switches, without changing the core code.
    • Customization: Modifying the source code of the ERP software to meet unique business needs.
    • Integration: Connecting different modules within the ERP system and linking the ERP system with external, third-party systems to ensure data flow and process continuity.
    • Enterprise Architecture: The blueprint that outlines how different systems and modules within the ERP ecosystem will interact, including data flow and storage.
    • Data Migration: The process of cleaning, mapping, and moving data from legacy systems to the new ERP system.

    This overview provides a foundational understanding of ERP systems as described in the provided source.

    ERP Implementation: Stages and Considerations

    The ERP implementation process is a complex undertaking that requires careful planning and execution, focusing not just on the technology but also on the people and processes within the organization. The source material provides a detailed overview of what this process entails, highlighting several critical stages.

    1. Implementation Planning:

    Before diving into the implementation itself, a crucial step is implementation planning. This phase, sometimes referred to as “phase zero,” occurs after the ERP system has been selected but before the actual implementation begins. It involves establishing a blueprint for the project, including defining business processes, determining which modules to deploy and when (project phasing), resourcing the project, and putting a change strategy in place. Investing sufficient time in this upfront planning phase is critical to avoid significant problems and wasted resources later in the project. The source suggests that a lack of thorough upfront planning is a common reason for ERP implementation failure.

    2. Business Requirements Definition:

    A foundational element of the implementation process, often preceding or heavily influencing the planning phase, is the definition of business requirements. Business requirements summarize the organization’s needs and what it expects to achieve with the new ERP system in its future state, not just how things are done currently. These requirements are gathered through workshops with various stakeholders and functional areas to identify current processes, pain points, opportunities for improvement, and future needs with new technology. These requirements are essential for selecting the right ERP system but also for guiding the implementation and ensuring that the chosen system is configured and potentially customized to meet the organization’s specific needs. Maintaining requirements traceability throughout the project is important to ensure that the implemented system ultimately delivers the expected outcomes.

    3. Project Phasing:

    Given the complexity of ERP systems, most organizations choose to implement them in phases rather than all at once in a “big bang” approach to minimize risk. The way a project is phased depends on various factors such as organizational priorities, project scope, risk tolerance, budget, and resource allocation. Phasing can be based on business processes (prioritizing processes that will deliver the most immediate value), software modules (considering how the modules logically fit together within the chosen ERP system), or organizational readiness and pain points. Regardless of the phasing strategy, it’s often necessary to create interim solutions or integrations between new and existing systems to ensure continuity during the phased rollout.

    4. Configuration and Customization:

    Implementing an ERP system involves configuration, which is the process of setting up the software by making choices and adjustments within the software’s built-in capabilities to align with the organization’s business requirements and processes. This typically involves checking boxes and flipping switches to define workflows and functionalities without altering the underlying code. Many ERP vendors offer best practices or preconfigured business processes for certain industries to speed up the configuration process.

    In situations where configuration alone cannot meet unique business needs, organizations may opt for customization, which involves changing the software’s source code. Customization is a more complex, costly, and risky undertaking compared to configuration, as it can affect the stability of the software and complicate future upgrades. The source advises customizing only when absolutely necessary for mandatory business requirements that cannot be met through configuration.

    5. Integration:

    Integration is crucial to ensure that the various modules within the ERP system can communicate with each other and that the ERP system can connect with other necessary third-party systems. ERP systems are built with multiple modules, and while they are part of a single system, they still need to be integrated to ensure seamless data and process flow. Furthermore, most ERP implementations require integration with external systems like CRM, HCM, or industry-specific applications. This integration is often achieved through APIs (Application Programming Interfaces). A well-defined enterprise architecture is essential to provide a blueprint for how different systems and modules will interact, including data flow and storage, ensuring a cohesive technology landscape.

    6. Data Migration:

    Data migration is the process of transferring data from the organization’s old or “legacy” systems (which can include old ERP systems, mainframes, or even spreadsheets) to the new ERP system. This process involves several steps: consolidating data, cleaning up inaccurate or “dirty” data, mapping data fields from the old system to the new system (as naming conventions might differ), and then physically moving the data. Organizations often need to make trade-offs regarding which historical data to migrate. The source emphasizes that data migration is often underestimated and requires significant time and attention.

    7. Testing:

    Thorough testing is essential to ensure that the configured and integrated ERP system functions correctly and meets the defined business requirements. This involves testing the data flows and processes between different modules and any integrated third-party systems. Different types of testing are typically conducted throughout the implementation process. Ultimately, user acceptance testing (UAT) is critical, where end-users within the organization validate that the system works as intended and supports their business processes. The source points out that many ERP failures could have been avoided with a stringent and effective user acceptance testing process.

    8. Go-Live and Beyond:

    The final stage of the initial implementation is the go-live, where the new ERP system is launched and begins to be used by the organization. However, the implementation process doesn’t end at go-live. Organizations need to focus on post-implementation support, user training, and continuous improvement to maximize the value of their ERP investment. The source also highlights the importance of measuring and optimizing business benefits after go-live, often by revisiting the initial business case to identify gaps and areas for further improvement.

    Throughout the entire ERP implementation process, the source emphasizes the critical importance of program management to oversee and coordinate the various workstreams (including software project management, technical aspects like architecture and integration, organizational change management, and business process re-engineering). Effective program management ensures that the project stays aligned with the overall business objectives and that the implementing organization maintains control and ownership of the program. Furthermore, a strong focus on organizational change management is highlighted as essential for user adoption and realizing the full benefits of the new ERP system, often being a key differentiator between successful and failed implementations.

    Reasons for ERP Implementation Failure

    The source explicitly outlines several common reasons why ERP implementations fail. These reasons are often interconnected and can significantly impact the success of an ERP project.

    Here are the key reasons for ERP failure discussed in the source:

    • Unrealistic Expectations: Organizations often have a false sense of hope regarding how quickly they can adapt to new ERP software and realize business value. This can lead to compressed timelines, budget cuts, and insufficient resource allocation, ultimately undermining critical success factors like organizational change management and testing.
    • Lack of Upfront Implementation Planning: Rushing into the implementation phase without a solid plan and vision for the future state is a significant pitfall. Investing time in an “implementation planning” or “phase zero” to establish a blueprint for business processes, module deployment, resource mobilization, and change strategy is crucial for long-term success and can save significant time and money later.
    • Absence of Clear Executive Vision and Alignment: If executive leadership does not have a clear and well-articulated vision for what the ERP implementation will achieve for the organization, it creates confusion, chaos, and misdirection. Furthermore, a lack of alignment among the executive team on the project’s goals and benefits can severely hinder the implementation process. The justification for the project needs to go beyond simply replacing an old system and should detail how the ERP will improve customer experience, employee experience, operations, and revenue generation.
    • Insufficient Focus on Organizational Change Management: Neglecting the “people side of change” is a primary root cause of ERP implementation failure. If employees do not adopt the new processes and tools, the investment in technology will not deliver the expected business value. A lack of effective change management can manifest in various problems throughout the implementation. The source indicates that this is a prevalent theme in ERP failures, even leading to lawsuits.
    • Lack of a Clear Definition of Success: Organizations often fail to define how they will measure the success of their ERP implementation beyond just being on time and within budget. Without a clear vision of the desired business outcomes, such as ROI and specific business value, the project lacks direction, especially when making numerous decisions about scope, configuration, customization, and integrations. This lack of a “North star” can lead the project aimlessly.

    The source also provides examples of high-profile ERP failures, which, while not directly listed as reasons in the “Why ERP Projects Fail” section, often illustrate these underlying causes. For instance, Hershey’s unrealistic timeline and go-live during a peak season highlights a lack of planning and unrealistic expectations. Revlon’s inability to ship products after go-live suggests inadequate testing and a potential lack of focus on business process management and organizational change. The massive overspending and lack of tangible improvements in the US Navy’s ERP project could point to a lack of clear vision, scope creep, and potentially issues with project governance and system integrator selection.

    In summary, the source emphasizes that ERP implementation failures are often rooted in a combination of inadequate planning, unrealistic expectations, a lack of clear vision and alignment, insufficient attention to the human aspects of change, and a failure to define and measure success. Addressing these factors proactively is crucial for mitigating risks and increasing the likelihood of a successful ERP implementation.

    Top 10 ERP Implementation Failures: Case Studies and Lessons

    The source provides a detailed list of top 10 ERP failures, offering insights into common pitfalls to avoid during ERP implementations. Here’s a discussion of these case studies:

    • Herbo (Gummy Bear Manufacturer): Herbo’s SAP implementation in 2018 led to significant supply chain problems. They couldn’t track inventory or raw materials, resulting in an inability to deliver products to stores on time. This caused a roughly 25% drop in sales shortly after the go-live. This case highlights the risk of inadequate planning and testing in critical operational areas.
    • Washington Community College: Their PeopleSoft implementation, starting in 2012, was significantly impacted by the bankruptcy of their initial system integrator, Cyber. While a second integrator, HDC, was brought in, they eventually canceled the project and sued the college, alleging internal dysfunctions. This case underscores the importance of selecting a stable and reliable implementation partner and the potential for organizational issues to derail an ERP project.
    • Hul Packer (Technology and Hardware Company): Hul Packer spent $160 million on their ERP project. However, the damages claimed by the company due to the failure were nearly five times that amount. The CIO at the time attributed the failure to a series of small, individually manageable problems that collectively created a “Perfect Storm.” This illustrates how accumulated minor issues and a lack of comprehensive risk management can lead to major failures.
    • Waste Management: Waste Management’s SAP implementation also failed, despite an investment of around $100 million. They alleged that SAP misrepresented the software during demos, showing “fake software.” The promised annual benefits of $100-$200 million never materialized. This case emphasizes the critical need for thorough due diligence during software selection and ensuring that the demonstrated capabilities align with the actual product.
    • Hershey’s: Hershey’s SAP implementation resulted in their inability to process roughly $100 million of orders for key products during a go-live. Key contributing factors included an unrealistically short implementation timeline and the decision to go live during a busy holiday season. This highlights the dangers of unrealistic expectations in project timelines and the critical importance of considering the business impact of the go-live timing.
    • Miller Kors (Beer Company): Miller Kors initiated an SAP implementation in 2013, investing approximately $100 million. The project resulted in a lawsuit against their system integrator, HCL, for $100 million in damages. While details are limited, this case again underscores the potential for issues with system integrators and the significant financial consequences of ERP failures.
    • Revlon (Consumer Product Company): Revlon’s failed SAP project was publicly disclosed in a financial filing, causing their stock to drop by about 6.9%. After the go-live of one manufacturing plant, they experienced an inability to ship product, lost customer orders, and a lack of supply chain visibility, effectively paralyzing the plant. They also incurred significant costs for expedited shipments. The simultaneous integration of a recently acquired company, Elizabeth Arden, added further complexity. This case illustrates the severe operational disruptions that can result from a failed implementation and the importance of considering organizational readiness and concurrent major changes.
    • Nike: Nike spent $400 million to upgrade their ERP systems, which did not go well initially. They had to write off around $100 million and saw their stock price drop by approximately 20%. The company then had to invest another five years and $400 million to get the project back on track. This case highlights the potential for massive financial losses and prolonged recovery periods associated with ERP failures, even for large and established organizations.
    • National Grid (Utility Company): National Grid’s SAP implementation involved an investment of over a billion dollars and ultimately failed. Post go-live, they spent an additional $100 million in support services, utilized two system integrators (including a lawsuit against Wipro), and incurred $30 million per month in ongoing support costs. Their period-end close process increased from four days to 43 days, and they had approximately 15,000 unpaid supplier invoices. This case exemplifies the potential for enormous financial and operational damage from a failed ERP implementation, even with substantial investment.
    • United States Navy: The US Navy’s ERP implementation, ongoing since 1998, had already cost over a billion dollars with three major system integrators involved. A GAO report indicated no material improvements to the organization despite this massive expenditure. The project scope was reduced to focus solely on financials, excluding shipyard inventory management, yet significant issues persisted, affecting 90,000 employees. This represents a case of prolonged and extremely costly failure to achieve intended benefits, even with significant resources and scope reduction.

    These case studies collectively illustrate several recurring themes that contribute to ERP implementation failures, as also discussed in our previous conversation about the reasons for ERP failure. These include:

    • Unrealistic timelines and expectations.
    • Inadequate planning and preparation.
    • Poor software selection or misrepresentation by vendors.
    • Issues with the selection and management of system integrators.
    • Insufficient focus on change management and user adoption.
    • Lack of thorough testing.
    • Go-live during critical business periods.
    • Underestimation of project complexity and resource requirements.
    • Lack of clear project governance and executive oversight.
    • Concurrent major organizational changes adding complexity.

    By examining these high-profile failures, organizations can learn valuable lessons and take proactive steps to mitigate similar risks in their own ERP implementation journeys.

    ERP Implementation Success: Key Tips and Recommendations

    The source material provides several key tips and recommendations for ensuring ERP implementation success, primarily by highlighting what leads to failure and then offering corresponding advice in the conclusion. Here’s a discussion of these tips, drawing directly from the source:

    • Choose the Right Software: It is critical to select the technology that best supports your business needs and avoid biased software selection. This implies a thorough evaluation process, potentially involving independent assessments, as mentioned earlier in the training.
    • Choose the Right System Integrator: Selecting the appropriate partner or partners for implementation is crucial. The source cautions that even well-known system integrators are not a guarantee of success, as evidenced by their involvement in many of the top 10 failures. This suggests the need for careful due diligence in selecting an integrator whose expertise and approach align with your organization’s needs.
    • Maintain Ownership of Your Project: Remember that the ERP implementation is your project, not the software vendor’s or the system integrator’s. You need to take responsibility for its success, providing clear direction and making necessary course corrections, including potentially changing integrators if they are not performing adequately.
    • Implement Independent Risk Mitigation: System integrators may not be the best at identifying and mitigating risks. Therefore, it’s essential to have independent risk assessment and mitigation strategies in place.
    • Prioritize Avoiding Operational Disruption: Operational disruption is a significant risk and cost factor. Avoid cutting corners on crucial aspects like organizational change management and realistic timelines in an attempt to save money, as the costs of post-go-live disruptions can be far greater.
    • Focus on Business Process Management (BPM): Define your desired future-state business processes and let that blueprint drive your transformation. Avoid the trap of letting the technology dictate how you run your business. This aligns with the earlier discussion about defining business requirements that look towards the future.
    • Conduct Thorough User Acceptance Testing (UAT): Ensure comprehensive testing of the product and your business processes. Stress-test the end-to-end solution to identify and resolve issues before go-live. The source notes that many failures could have been avoided with a stringent UAT process. The source even suggests having an independent third party facilitate UAT.
    • Ensure Executive Leadership Involvement and Buy-in: Executives need to be actively involved, bought into the project, and well-informed about its progress and risks. They should also participate in decision-making processes. The lack of clear executive vision was highlighted as a key reason for failure.
    • Secure Independent, Technology-Agnostic Support: Engaging independent support throughout the digital transformation can help keep the project on track and ensure that decisions are made in the best interest of your business, rather than the vendor or integrator. Third Stage Consulting, the author’s firm, is presented as an example of such a provider.
    • Establish Realistic Expectations: Understand the true scope, timeline, and resource requirements of the project. Avoid the false hope of quick value realization and be prepared for the effort involved in adapting to new technology.
    • Invest in Upfront Implementation Planning: Dedicate sufficient time after software selection but before full implementation to create a solid plan, including defining the project blueprint, business processes, and change strategy.
    • Develop a Clear Vision for Success: Define what success looks like for your ERP implementation beyond just timelines and budgets. Clearly articulate the desired business outcomes and how the ERP will deliver value to the organization.
    • Prioritize Organizational Change Management: Focus significant time and effort on the people side of change to ensure user adoption of new processes and tools. A solid and effective change management strategy and plan are crucial.

    By adhering to these tips, organizations can significantly increase their chances of a successful ERP implementation and avoid the common pitfalls that lead to failure, as illustrated by the case studies discussed in the source.

    ERP Software Training: A Detailed Introduction to ERP Systems and Implementations

    The Original Text

    Erp implementations are complex undertakings that require a lot of finesse and hard skills what exactly are those hard skills and those soft skills you need to know to make your Erp software implementation successful that’s what we’re going to discuss here in a deep dive training course here today my name is Eric Kimberling I’m the CEO of third stage Consulting we’re an independent Consulting for that helps clients throughout the world with their digital transformation and Erp implementations we help clients with all sorts of Erp implementations ranging from sa and Oracle and Microsoft to potentially lesser known systems like infor epicore Etc and we work with a lot of different software implementations a lot of different project teams a lot of different Industries and what we wanted to do here today is provide a training course that goes deep into understanding what the different Erp systems are in the marketplace what it takes to make those Erp implementations successful how to understand the change management and the risks and failure points of implementations as well as some case studies so that we can understand what not to do as well as what to do during our implementations so this training course is meant to be a deep dive into understanding Erp systems and Erp implementations this is going to be relevant whether you’re a project team member going through an Erp implementation for the first time whether you’re trying to brush up on your skills whether you’re a consultant whether you’re an executive team member trying to figure out what exactly you should know about Erp systems and what understanding you need to have before embarking on an implementation so this is meant to be a deeper dive than a lot of the videos you’ll find on my YouTube channel I encourage you to share this training material in this training video with anyone else on your team that you think might benefit from this and your overall project team and your colleagues as well now for more information if you’re looking for more best practices and more supplementary material to this training course I encourage you to read our annual digital transformation report it’s a report we publish each year that goes through a number of independent reviews and rankings of different ARP systems as well as providing a number of best practices and tips to help organizations be more successful with their implementations you can read and download that paper for free by scanning the QR code in front of you or you can go to the links below and if you want to go even deeper than this white paper that we share with you for free I also encourage you to read my new book called The Final Countdown it’s a book that I published in 2023 that talks about digital strategy Erp projects and how to be successful in those implementations and it is my 25 years of experience with helping clients through their Erp implementations you can read that book by scanning the QR code in front of you or you can just go to the final countdown. now the way we’ve broken up this training session here today is we’ve broken it into a number of different modules and you can see the agenda here in front of you we’re going to start off by talking about Erp software in general this is especially helpful if you haven’t yet chosen an Erp system or if you’re still trying to figure out and narrow down what system or systems might be the best fit for your organization once we’ve done that we’ll dive into implementation implementation planning the implementation itself organizational change basically everything you need to know about how to implement Erp systems effectively and then we’ll get into some case studies we’ll talk about Erp failures and some of the lessons from them as well as successful ones and some of the lessons we can take away from organizations that have been successful in their Erp implementations first it helps to understand what exactly Erp software is so let’s start off by giving a quick highle overview before we dive into specific software vendors and ways to implement the system we’ll start off with this basic foundational understanding to start Erp software or enterprise resource planning software has been around for a long time it’s helped a lot of organizations improve and become more effective and efficient but what exactly is Erp software I’m going to give that answer here today I’ve been in the Erp software space now for over 20 years and whenever I’m talking to family or students or someone who’s not familiar with the Erp space that I’m in people often ask what in the world is Erp and what does that mean I mentioned that Erp stands for enterprise resource planning and Erp is actually an evolution from some older technology that was really originated with a lot of manufacturing organizations and that software was called MRP material resource planning so the origin of MRP came to be when a lot of larger Manufacturing organiz ations were finding that they were struggling with managing their entire manufacturing operations they had trouble tracking customer orders and tracking demand tracking what kind of parts and supplies they would need to purchase to be able to meet and fulfill customer demand so MRP systems were a way to handle that it was a way to manage the tracking of what supplies and raw materials we might need to manufacture for our customers it was a way to manage the manufacturing shop floor so that we could prioritize orders and make sure that we maximized throughput and it was really a way to address the whole movement in the 9s toward lean manufacturing and trying to maximize manufacturing efficiency and in the US a lot of us manufacturers were struggling with manufacturing efficiency and Manufacturing quality and they were being beat by Japanese manufacturing organizations at the time so MRP systems were a way to help organizations of all Origins and all national alties to help them better become more efficient and more effective so over time MRP evolved and morphed into something more than just a manufacturing solution it started to focus on warehouse management and procurement and financials and accounting even HCM or human Capital management or customer relationship Management on the sales side it took the core of MRP and started to expand in other parts of the Enterprise to where organizations were moving towards single systems that could tie together the entire organization provide one unified data set provide a common workflow across the organization and for lack of a better term provide one system that provided all the operations and data and transparency into what was happening enterprise-wide and so that’s the whole evolution of how Erp came to be it really traces its Origins back decades ago when Enterprise technology was first emerging now there are a plethora of Erp software providers in the marketplace the biggest ones the ones that are most commonly used by bigger organizations are companies like sap Oracle is another one Microsoft provides its own Erp solution those are the three biggest ones and a lot of organizations and Industry analysts will refer to those larger Erp systems is the tier one Erp systems those are the ones that are typically better suited for larger organiz organizations multinationals more complex organizations multilocation types of organizations those tier one providers are generally trying to provide a breadth of functionality that can meet the needs of those organizations there’s also tier 2 Erp providers and these are the providers that are more Niche Focus solutions they might focus on one industry might focus on one set of capabilities just to give you a few examples epicore and infor for example or two manufacturing Erp systems that are very common in the manufacturing space but you don’t see them a lot in other Industries you don’t see them for example in a lot of financial services organizations or Professional Services organizations they tend to focus more on manufacturing and distribution and nothing else so that is another example or another segment of the Erp space is that whole tier 2 market and then you have your tier three or industry Niche solutions that are there are probably dozens or hundreds of different Erp solutions that fall into that segment they’re either smaller simpler solutions that can provide capabilities to specific Industries or perhaps certain functions or capabilities within Erp they may not even be providing full Erp capability they may be focusing on just one small segment within Erp and like I said there’s a ton of different options and Solutions in that space so overall if we look at all the different types of Erp systems out there there are easily dozens of if not hundreds of Erp systems that can be used for your organization typically the going in proposition with Erp implementations is that you’re going to have one Erp system that can do everything that you would need technology to do for your organization now that is an ideal situation it’s a perfect world scenario but the reality is is most organizations have unique needs and unique challenges that can’t be met by one single ARP system that’s trying to be everything to everyone so what the single ARP System model has done is it’s created a niche or a void that’s being filled by what we call Best of breed Erp systems and these are systems that are not meant to be one single Erp system that’s going to be everything for everyone within your organization but it might be that you’re focusing on different segments of your business so for example within your sales organization you might have CRM or customer relationship management software within your HR department you might use a separate or a different human Capital management software the special izes in that at workday for example is a good example of a system that provides just HCM capabilities you might have a different system that provides financial and accounting capabilities and you could also in addition to those examples be using a core back office Erp system to tie it all together so best of breed systems is a common Trend that we’re seeing in the market and it’s in some ways more complex because now you have multiple systems that you have to tie together but in other ways it provides more flexib ility it provides more precise fit with what your unique business needs might be and there certainly trade-offs to both the best of breed model as well as the single Erp model but when talking about Erp it’s important to look at the whole picture of what are those spectrum and Continuum of options available to you in the marketplace you’ve probably seen that Erp implementations quite commonly fail in fact many statistics put the failure rate at above 80% of organizations that try to implement DRP whether it’s a tier one system a tier 2 or three system or a single Erp best of breed Erp doesn’t really matter the failure rate is fairly high so the question becomes if the technology is great and there’s so much demand for this technology how could they possibly fail as often as they do and if you check out my channel and some of the other videos on my channel just search the word failure and you’ll find a bunch of videos I’ve created about how to avoid failure why projects fail what some of the common challenges are but in a nutshell the reason Erp implementations typically fail is not because of the technology but it’s because of the operational and the people side of things the technology in general is very robust it’s very sophisticated it’s Innovative it can do a lot of different things that’s usually not the problem although technology can create complications during implementation but the more common challenges and problems with Erp implementations are that we haven’t adequately addressed our business process improvements we haven’t adequately addressed our organizational change management or our people needs so in other words and to put it simply people don’t like to change and because they don’t like to change new technology no matter how great it is is going to be difficult for your organization to adapt to so in its simplest terms people and processes are why Erp implementations fail like I said I encourage you to watch some of the other videos on my YouTube channel that go into that topic in more detail but in general that’s why implementations fail so the question becomes how do we Implement Erp software if most of them fail what can we do differently to implement well and to simplify and to summarize what I’ve also talked about in other videos on my YouTube channel the first thing is to find the right software or technology that’s the best fit for your organization that’s kind of the first step that’s the minimum ante that you need to be able to succeed is to make sure that the software technology you’re implementing is a good fit with what your needs are and make sure you get an independent assessment and View and objective eval valuation of the different options in the marketplace so you can find the best technology for your organization a second critical success factor is to ensure that your organization is aligned on what it wants to be when it grows up a lot of times organizations are trying to implement Erp software at a time of turmoil at a time of misalignment or at a time of strategic misalignment where the organization isn’t on the same page with the direction it’s going it doesn’t have a clear vision and then you try to Overlay new technology on top of that and that’s a recipe for failure so making sure you have clear alignment on your overall organization is very important and again I’ve included some videos below that will help you further dive into that topic and then the implementation itself when we focus on the implementation it’s important not to focus too much on the technology but to shift some of the time resources and attention from technology over to the people in process side of things if we do the people and process side of things very well and we also have alignment and we’ also pick the right software or technology for our organization we have the best chances to succeed but the problem is most organizations fail in one or more of those three critical success factors and like I said I encourage you to download some of the content I’ve included links to below that’ll dive more into what you need to do to be successful for your Erp implementation Erp software had its Origins many years ago with some very simple types of objectives it was trying to accomplish it was just trying to track inventory and orders and activities better within an organization sounds simple enough but over the years it’s evolved into more than that it’s not only trying to tie together an organization provide one common single source of Truth for what’s happening in the organization but it’s also now trying to introduce more Advanced Technologies and capabilities into erps so for example there’s new artificial intelligence that’s helping organizations automate some of their business processes better there’s machine learning that looks for patterns and exceptions to things as simple as accounts payable processing of invoices machine learning for example can automate the accounts payable process and use artificial intelligence to flag the exceptions or the things that look like outliers or the things that look like could be potential problems in your accounts payable invoice processing so that’s just one minute example of how machine learning and artificial intelligence is being used to take Erp to a whole another level you also have blockchain which is being used by many organizations and pharmaceutical and food companies for example they need to track every raw material in part in an entire production process an entire distribution process so that if there’s ever a recall or regulatory problem blockchain can be used to trace problems back to the supplier and that’s a new technology that’s being provided and then finally one other common Trend we’re seeing is Internet of Things if you have an Apple Watch and your Apple watch is tracking your dat daily activity that’s an example of Internet of Things it’s tracking that information it’s storing it in the cloud and what you do with that information and how information like that could tie back to an Enterprise is very important for example a lot of manufacturing organizations will have Internet of Things type devices out on the shop floor that will be tracking data on the shop floor that will then tie back to the Erp system so that you can see complete visibility into what is not only happening within the corporate headquarters but also what’s happening on the shop floor so those are just a few examples of some of the trends that are emerging in the Erp space if managed correctly implemented correctly and leveraged correctly organizations can go to the next level in their respective Journeys but it requires the right Focus the right discipline and also just finding the right technology now that we have this basic understanding this fundamental understanding of Erp systems in general let’s go a little deeper and talk about how Erp systems actually work Erp systems are very complex Integrated Systems with a number of different modules so what I want to do next is more of a whiteboard session to dive into what exactly Erp systems are just to help you visualize and understand Erp systems in general I’m going to talk about sort of the mechanics of how Erp systems work along with some of the nomenclature that you should be aware of and by the way for more information about this you can also check out my you YouTube channel that goes into a lot more detail about what Erp systems are and some of the different terms and definitions you need to know so be sure to check that out and I also wanted to invite you to download a white paper from our website that’s called lessons from 1,000 Erp implementations and it’s a guide to best practices and tips and Lessons Learned for Erp implementations and it’ll help you understand how Erp systems work and how implementations work as well so what I want to do today though is talk about the mechanics of Erp systems and how they work more from a mechanical perspective and that’s what we’ll talk about before we dive into what Erp systems are and how they work it helps to understand what we’re moving from in other words organizations are implementing Erp systems because they’re trying to replace their old Legacy systems so that’s the starting point we have here is you have Legacy systems that organizations are starting with and these Legacy systems might be anything from an old DRP system uh it could be a A system that was deployed 10 or 20 years ago maybe even longer um often times organizations are still using main frames believe it or not if you don’t know what a Mainframe is it’s something that was used mainly in the 60s and 70s and it was a there’re the big servers green screens transaction codes a lot of stuff I don’t need to get into here but it’s a very old outdated type of Technology but a lot of organizations are still using them and the number one Legacy system in the world uh I don’t have any data to back this but it’s based on just qualitative experience but the number one Legacy system in the world is Microsoft Excel so spreadsheets in other words organizations that are running their business on spreadsheets they’ve got people with a lot of tribal knowledge and they’re trying to document that tribal knowledge on their local machines in Microsoft Excel so this is where organizations are starting from is our Legacy systems and that’s the first thing to understand is what is it we’ve got today and then what is it we’re going to move toward in the future and that’s what I’ll get to next now let’s shift gears and talk about what Earp systems really are and the first thing I want to talk about are modules when you think about an Erp system which is what we’re moving to here we’re moving from Legacy over here to Erp systems we’re going to have a number of modules and modules are essentially a functional area or a specific business process that can be handled by the Erp system but it’s not just one big massive system it’s a set of modules almost like a puzzle you’re putting together pieces of a puzzle and each module handles their own part of the business so for example a lot of VP systems might have a finance module so this would be more the the uh reporting and the financial budgeting things like that you might have an accounting module for example that’s a very common one another common one would be Inventory management so this is tracking all of the raw materials and goods and materials you might need to run your run your business organizations also oftentimes have Supply Chain management Tech or uh Supply Chain management modules I should say you might also have CRM which is customer relationship management that’s what your sales team would use to track their Pipeline and potential customers you might have your human Capital Management which is your HR systems this is how you onboard people you track their training their benefits payroll all that good stuff so these are just a few examples I won’t go into all of them every Erp system has its own unique mix of modules but in general they have dozens if not more modules that handle different parts of your business and some of these modules by the way especially Supply Chain management might actually have subm modules within it so for example Supply Chain management might have Logistics as a separate module we might have uh procurement for example um you might have logist I already said Logistics you might have transportation management so those are just just a few examples of subm modules and that’s true for all of these Finance might have AR or I’m sorry accounting might have AR and AP uh Finance might have budgeting reporting Etc so you get the idea here the modules are the ways that Erp systems are built to handle specific functions and in the past or or in some cases there are systems out there that only focus on one or more of these modules but Erp systems one of the benefits of Erp systems is that they can do all these things within one single system but still broken out into individual modules and the key to understanding how these modules all tie together is endtoend business processes so you’re going to have end to end processes that start with the individual transactions within each of these modules But ultimately you need to tie it all together and provide those endtoend processes throughout the entire organization which is part of the value that Erp systems provide so these are the building blocks for an Erp system how how do we start to build it how do we start to deploy it well the first thing we do or one of the first things we do is we configure each of these modules they’re not just out of the box working a certain way there’s certain decisions you need to make to really configure and personalize the software to fit your needs and you’re going to do this module by module typically you’re going to start off at the foundational building block side of things building out the the requirements and the configuration that are needed to get the software to work the way you needed to to fit the needs of the business now some Erp vendors have a certain amount of best practices or preconfigured business processes so for certain industries or certain functions Erp vendors sometimes will have sort of predefined ways of configurating the software for certain instances or certain industries so that’s one way you can sort of speed up this configuration process but it doesn’t change the fact that you have to Define what your business needs are Define what your business requirements are and then figure the software and set it up the way you need to going forward now for some reason you find that the configuration for any one of these modules is not enough it doesn’t give you the option you need to run your business the way you want to then your next option is going to be customization customization is a little bit different because we’re not just checking boxes and clicking buttons to get the software configured a certain way customization entails going into the software and actually changing the source code it’s a risky proposition creates a lot more cost and risk than you might want but sometimes it’s necessary if you can’t get what you need out of the basic configuration the other option is if you find that any one of these modules don’t give you what you need within the cor Erp system you might go out there and find another third party technology to bolt onto or integrate to your Erp system so a good example would be Supply Chain management Supply Chain management oftentimes is such a complex area that some Erp systems can’t do Supply Chain management well you also see it fairly commonly with CRM as well there’s a lot of best of breed providers out there like Salesforce is is the biggest one one Salesforce CRM which provides really robust deep CRM capabilities but it’s a standalone system so you lose the benefit of having a single set of modules that are all tied together you can still do it but it’s just a different way of approaching any deficiencies that the Erp system might have Within These modules so as we are configuring the software using either some of the preconfiguration or configuration we do on our own we now need to figure out how to integrate the system the system isn’t just integrated out of the box it provides the tools to integrate but each of these modules are still somewhat of a standalone system that need to be integrated so we need to make sure that we’re tying together data flows and process flows across these different modules for example if we buy some inventory we need that data the fact that we just bought some inventory we need it to tie back to Finance and Accounting and that data needs to flow back and forth uh same with Supply Chain management um we need to make sure that we’re buying inventory and we understand the impacts on Supply Chain management and of course it all starts with your with your sales and your customers so as customers are placing orders that should affect and influence how we manage Inventory management and that data and those process flows need to tie together through integration between modules now if you have a thirdparty standalone system that you’re going to bolt on let’s just call it third party system down here because I’m creative like that so thirdparty system we’re going to do the same thing we’re gonna tie that third party system back to the core Erp system this is a little bit easier to integrate generally the modules within an Erp system but if we have to we can pull in a third party system that’s unaffiliated with the CRP system and tie it in through integration tools now we have to be careful though because every time we do this we’re diluting the value of a single Erp system a single platform that we can use might be necessary maybe you’re selective about it but you don’t want to get overly excited about doing too much of this because then you start to wonder why do you even have a core RP system if if you’re going to bolt on a bunch of different systems on top of that so you can do it but you just want to make sure you understand some of those trade-offs now the next thing we do once we’ve configured the modules we’ve integrated the modules now we’ve got to test the processes and the data flows between the different modules so again it doesn’t just magically integrate it doesn’t just magically work now we need to make sure that all the decisions we made in this complex set of modules we need to make sure that everything’s flowing the way it should data isn’t getting corrupt or lost along the way make sure the processes and the transaction are working the way they need to to support our business and all of that is done by tying this all together after we’ve done the integration through testing and typically you’ll do different types of testing which I’ve talked about in different videos on my YouTube channel so I encourage you to check that out but I have a whole video that talks about the testing process and the different phases of it how you do that and you can check that out in the link here above but generally what you want to do is make sure that you’re testing across these modules to make sure the processes work the data works and ultimately that people are valid validating within your organization the people within your organization are validating that the system works the way it was intended to be built so once we’ve done a few iterations of that testing process now we’ve got to make sure that we get all this data over here we need to move it all over to the new Erp system so over the years we’ve accumulated and presumably hoarded a bunch of data we’ve got our old the Erp system that have been tracking data for decades or how long you’ve had the system maybe your main frames have been around for even longer you’ve been using Excel spreadsheets all over the place you’ve got different employees that are tracking different sets of data so we need to make sure that we figure out how we’re going to consolidate all this data capture it all clean it and then ultimately map this data to the new technology and when I say map that’s a little bit different than migration so first is to map the data so data fields over here might have different names than data fields over here for example in our old Erp system maybe a work order was actually called a service order but in the new Erp system it’s called work order so we need to make sure that we map those data fields to the right place from the old system to the new system and that’s just one example there’s tons of different examples of ways we need to map data from old system to new and it’s often times a messy process because new technology new capabilities make it harder to track or to to trace and map the data the way it was back 10 20 30 years ago to the way it is today so it’s not a perfect process but it is something we need to do and not only do we need to map the data but we also need to make sure that this data is accurate over years and years of using these old systems people make mistakes or they forget to enter things into the system and this data becomes inaccurate so we need to go back and clean up this data and then once we’ve done that then we can migrate all that data over here and then we can complete the testing process with data in the new system and then ultimately we can go live with that data now organizations typically don’t bring all of their data over they tend to be forced into some trade-offs and priorization decisions around what data they actually need to bring over versus what they can leave behind so that data migration process is very important and it’s actually an area that’s oftentimes overlooked or underestimated in a digital transformation or Erp implementation so you want to make sure you spend lots of time on that so I hope this has giv you a fundamental understanding of how Erp systems work what you can do to understand these different nuances of Erp deployments and for more information and more guidance and best practices I encourage you to download our lessons from 1000 Erp implementations ebook now that we have a general understanding of what Erp systems are and how they work let’s dive into some of the buzzword some of the terms and definitions that are important to understand as you’re entering the world of Erp systems or as you’re embarking on your Erp implementation and these are a few of the most important terms that are critical for you to understand so that you can speak the same language with your peers internally within your organization as well as with your outside Consultants or if you are a consultant it’ll help you speak the same language with your peers as well well so let’s dive into some of the top terms and definitions you need to understand as part of your Erp implementation the first and perhaps the most fundamental term to understand is the term Erp itself what does the word Erp mean well the acronym itself stands for enterprise resource planning which that in and of itself it doesn’t tell you what it means but the term enterprise resource planning is really a way to describe technology that ties together an entire business and the reason the term Erp came to be is because in the past companies would deploy multiple Technologies to do different things throughout an organization so Erp systems were invented to really create a single enterprise-wide technology that could do everything from cash and financial management to inventory management to customer service and Order management warehouse management manufacturing basically anything that an organization needed could be handled by an Erp system so enterprise resource planning is a term that defines and alludes to the fact that it’s a system that ties together an enterprise-wide set of business processes a very common term that builds on the enterprise resource planning term is order to cache and order to Cache is a term that refers to an endtoend business process that ties together multiple workflows and functions throughout a business it all starts with a customer order and ends with collecting cash from the customer and everything in between are the steps that happen along the way so if you think about an order to Cache process typically what happens is customer calls you place the order you capture the order in the system and usually that order will trigger a whole set of Downstream activities that will be managed in the airp system so things like managing inventory or making sure you order the right raw materials to satisfy that customer order making sure that you generate an invoice to ensure that the customer pays once the customer pays you track the money that comes in so there’s a whole host of things that happen from the time the order comes in until you actually collect cash from the customer and by the way this will also include things like warehouse management the manufacturing process the planning process for manufacturing really everything that goes into making your product of service and delivering that product of service to your customer and ultimately collecting cash from your customer similar to order to cash you also have a another endtoend business process called procure to pay and procure to pay is a little bit different from order to cash in that it’s more focused on procuring the materials you need to run your business and ultimately paying for those materials so it’s sort of the opposite of order to cash in that order to cash is focused on fulfilling a customer order whereas procure to pay is more focused on what an organization itself needs to procure and pay for to run its business so if you’re an organization that manufactur facturers widgets you need to acquire raw materials in which case you’re going to procure and place orders for those raw materials you’ll receive the raw materials and ultimately you’ll pay for those raw materials sounds simple enough but there’s a lot of steps in that process and a lot of nuances that organizations go through when they’re going through their procure to pay process and the reason that this is such an important process is because when we look at the endtoend business processes within Erp you have your order to cash and procure to pay which are really your two major endtoend business processes that relate to an Erp system now even though Erp systems are meant to be single Integrated Systems the reality is that the way Erp systems are built are in modules so it’s not just one big massive system it’s one big massive system that’s comprised of a number of different individual modules that ultimately integrate tie together and provide that end to-end visibility and that endtoend processing that P systems provide so every Erp system is a little bit different has different modules different names for the modules but if you think about the functional pieces of a business most functional pieces of a business are going to have a module that relates to that part of the business for example in Finance and Accounting you have your accounting and your general ledger module you might have your financial planning module you have your accounts payable module your accounts receivable module so a lot of different pieces within Finance and Accounting might have different modules or subm modules that provide very specific functionality for a specific part of your business but even though it’s providing specific functionality it’s providing that functionality in a way that can integrate with the other modules to provide a complete integrated endtoend business process flow within that technology other examples of modules outside of Finance and Accounting might be Inventory management sales and distribution customer order processing you might have warehouse management transportation management MRP or production planning in the manufacturing environment these are just a few examples of some of the different modules that Erp software providers provide to their customers the beauty of modern Erp software is that they can provide a lot of flexible different types of business processes even though they have a standard way of working a standard way of functioning within the nuances of how that software Works they can be configured and tailored to meet the needs of different business requirements so business requirements are what the needs are of the organization the needs that determine how we’re going to configure and set up the Erp software to accommodate the needs of the organization and I’m going to come back to this concept of configuration later in this video that’s another term we’ll get to but for the time being it’s important to understand what business requirements are and typically what happens is each function or each department within an organization has its own set of business needs business requirements that it will Define as a way to select and implement the right Erp software in the right way that best aligns with and meets their needs now some organizations might have hundreds or even thousands of business requirements that they Define as part of their business requirements but they’re not all equal there’s going to be those that are very high priority things that you must have within an Erp system and then there’s lower priority ones that are more nice to have in a perfect world you might have these business requirements that are met and you’re going to try and accomplish as many of those business requirements ments as you can within your Erp system but in general the whole business requirements phase of a project begins early in the process typically even before you’ve selected an Erp software and oftentimes you’re defining those business processes in even more detail once you selected the software and it’s time to go implement the software now when implementing Erp software in order to accommodate the business requirements that have been defined by the organization implementing the software it needs to go through a process called configuration and configuration is really a way to really personalize or set up the software in the way you want it to work and every Erp software has a number of configuration tools some more flexible than others that give you more options than others but every airp system out there is going to have a certain amount of configuration you can do and a way to think about configuration is it’s a way to change the software and change the way it works and personalize it to fit your needs but not in a way that compromises or changes the way the software was written so in other words you’re not changing the code of the software necessarily you’re not doing development work you’re checking boxes and flipping switches within the software to ensure that it does the right things and goes through the right workflow to match your business processes and your business requirements so configuration is a mandatory part of any sort of Erp software implementation and it’s a key term to understand as you go through your Erp software initiative now I mentioned that configuration is a way to change change the software and personalize the software without changing the way the code was built but sometimes an organization has such unique needs or is so different from its competitors that it needs to change the Erp software in some way beyond the limitations of what configuration allows you to do in these cases most Erp software will give you the tools to actually customize the software and it may sound like very similar terms customization and configuration but customization is different in that you’re actually going in and you’re changing the code you’re doing development work it’s a lot heavier lift from a technical perspective and you’re actually creating additional risk because now you’re changing the way the software was built and you’re sort of rewriting some of the code that’s been proven and established in working for other organizations now often times it’s a necessary evil it’s something that organizations have to do in order to get the software to work the way it needs to but other times organizations customize when they don’t need to there might be better ways that they could get what they need simply by configuring Which is less risky and less timely and less expensive than customization so you want to make sure that you customize only in must needed situations those mandatory business requirements that simply can’t be met through configuration you might look to customization as a way to tailor the software to fit your needs now I mentioned earlier in this video that Erp software is comprised of a number of modules and subm modules those modules and subm modules are integrated with each other so that you’re still using the same system the same user interface the same set of data and the data is flowing and the processes are flowing throughout those different modules however in order to get these modules to work and to talk to one another you still have to do integration you have to ensure that the hooks or the ties between these different modules are there and that the data is flowing and the processes are flowing the way that they should in addition most Erp software implementations require that you implement that core Erp software with some other thirdparty system that’s unrelated to the Erp system even though Utopia is to have one system that’s used by everyone within the organization to do everything an organization needs typically most Erp software is not going to give you 100% of what you need and it requires that you have some other Standalone systems to support that core Erp software in these cases you need to integrate with those thirdparty systems as well to ensure that the data flows back and forth between your core Erp system and all the modules within it and these thirdparty systems a good example and a common example of thirdparty systems that require integration to the core RP software is going to be in any sort of regulated industry if you think about pharmaceuticals or the food industry there’s strict government compliance regulations that require that you have certain processes in place and that you track information a certain way often times those standards and needs aren’t met by simply having an Erp system in place often times you need a standalone separate system to track whatever information or processes you need but whatever the cause is or whatever the reason is for having these thirdparty systems you want to make sure that you build that integration to ensure that the data is Flowing between the core Erp system and those third party systems and typically this is done through what’s called apis and I won’t get into a bunch of technical details but apis are generally the tool or the technology that’s used to create the hook or the integration points between the multiple systems Enterprise architecture is another important term to understand as it relates to Erp software and it ties back to the previous point I made about integration so when we’re talking about integration we need to have a blueprint or a big picture vision of how different systems and different modules within the ARP system are going to talk to one another so in other words we need to Define where the integration points are how data is going to flow back and forth between those systems and ultimately where the data is going to reside where’s that ultimate single source of truth going to be in terms of where the data resides and that’s a big part of what you define as part of your Enterprise architecture so when you hear the term Enterprise architecture or software or solution architecture those terms are somewhat interchangeable and refer to basically a visualization and a map of how different technology and different modules within Technologies are going to talk to one another where those data points are going to be how the data is going to flow how different transactions will flow and touch between multiple systems and so that’s ultimately what Enterprise architecture and solution architecture means in order for an Erp system to work properly it needs to have data and it needs to have historic data so data you’ve brought over from previous systems that you had in place prior to deploying a new Erp software and so data migration refers to the whole process of cleaning up your data that’s in your old system because often times the data in the old system is corrupt or it’s become dirty and inaccurate over the years so you need to clean up that data and then you need to figure out how those data fields and those data points map to the new system because you might have different naming conventions for different fields and different subjects within the system and then ultimately how you’re going to move that data from the old system to the new one so that whole process I described is really falling under the bucket of data migration and so data migration is the way that we clean and map and move the data from our old Legacy systems to our newer Erp software so these are 10 of the most important terms and definitions you need to know as part of your ARP software implementation one of the tricky things about Erp implementations and Erp software in general is that there’s a lot of different options you have two basic types of Erp systems you have fully integrated single Erp systems which are meant to provide one single user interface one single database one single application that ties together your entire operations the other bucket of Erp systems is more of the best of breed model and this entails choosing multiple systems to handle different parts of your business so for example you might have a core Erp system to handle your financial and accounting needs but then you might have another system that handles your HR needs you might have another system that handles your CRM or customer relationship management you might have an Mees or manufacturing execution system that automates your shop floor so a lot of different systems that do different things in the market and rather than trying to be everything to everyone these Focus modules are more targeted on specific niches or in some cases specific industries that are meant to do Erp better than the traditional Erp systems can so while some may argue that best of breed is not really Erp it really is Erp syst systems can be one single integrated system or it can be modular based or separate vendors for different functions within your business and different organizations have different needs so you’re going to have an answer that might be different than your nextdoor neighbor or another organization in your industry so let’s dive into some of the pros and cons of single integrated Erp versus best of breed Erp so let’s start with the single Erp software model that’s frankly where most organizations start and assume they want to be at least the clients we work with they want a single Erp model so we’ll start here and we’ll talk through some of the pros and cons here so with single Erp one of the biggest advantages is that you have one system and the fathy of one system leads to another set of advantages which is there’s a lower learning curve because you don’t have to teach people how to use multiple systems you’re training them on one system it’s easier to maintain and deploy because you’re focused on one system versus multiple systems for multiple Technologies it also provides a single source of Truth for data so when you think about a single Erp system you have one system that houses all of your data you don’t have to worry about the data flowing between systems and something happening to the data because it’s going in between multiple systems you have one single system that’s handling all of it and that leads to another benefit which is that there’s less technical complexity with one system because you don’t have to tie together multiple systems you don’t have to worry about all the different integration points and some of the architecture issues that come up as a result of having multiple systems so there’s less technical maintenance here and complexity I should say so these are just a few of the advantages and reasons why you might consider one single Erp system now let’s talk about what a best breed model might look like and how it compares to the single Erp System model so far the single Erp software model sounds pretty good when I look at this I think that sounds reasonable it sounds like something I would want if I were a leader within an organization but let’s also look at the best of breed model to see if it is as good as it seems to have a single Erp software model so let’s talk about best of breed and again just as a reminder best of breed means that we’re not looking for one single system to do everything throughout our organization as we are here what we’re doing here is we’re looking for the best Technologies for the different parts of our organization so for example your accounting and finance group might go out and buy a Finance and Accounting system your supply chain managers might go out and find a Supply Chain management system and your sales team might go out and find a separate customer relationship management or Salesforce automation system and so on and so forth so the idea here is rather than finding one technology across the Enterprise we’re finding the best Technologies for different parts of our organization now some of the benefits of besta breed would be that you’re more likely to find the better fit across the organization now when you talk to a software vendor especially the Erp vendors that sell the single Erp software model they’re probably going to tell you that this isn’t true true their software can do everything that best of breed can just as well but you get all these advantages the fact of the matter is that’s not true when you go out and look at Best of breed models you find that there are Technologies out there that can typically handle certain functions better than any one system can and the reason for that is because no single Erp software vendor is going to be able to beat everything to everyone even if they focus on one industry and you’re in that one industry they focus on it’s likely that you have different nuances and different parts of your business that have different needs that are is going to be satisfied fully by the single Erp model the other component of best of breed that can be helpful to understand is that there’s a higher learning curve so whereas with single arp we said there’s a lower learning curve here we’re saying there’s a higher learning curve because you’re having to train people on how to use multiple systems so a higher higher learning curve here one of the potential downsides here is that you could have multiple sources of Truth so in other words we for example if we have a CRM system that’s tracking our sales Pipeline and we’re capturing prospective client information in that CRM now we’re housing customer and prospective customer data in the CRM system but we’ve also got presumably another system for inventory management or for financials where we need that same data the customer related information but it’s not in the other system so now we need to create integration and there’s integration back and forth and there’s more potential for something to break down or become undermined as a result of some of the human interactions between systems so that’s a potential upside or advantage of single ARP and another consideration for best of breed is that this has higher technical complexity so because we have to take multiple systems and tie them together figure out how we’re going to integrate these systems how the data is going to flow and ultimately what the overall landscape is going to look like and we have to maintain that longer term multiple systems that adds to your technical complexity so on the surface when I look at this I think okay if I look at these four categories or these four criteria that I’ve outlined here really the advantages here are largely to single ARP system models I say the advantages here here here and here and then here I would say likely to find a better fit might be favoring best to breed so on the surface I would look at that and say well clearly we we probably want the single Erp model because there’s only one advantage here but there’s three advantages here but here’s the problem and here’s the thing that it comes down to for most clients we work with is that this right here becomes the most important thing and the problem here is this difference between these two models is a lot bigger than just one item on a checklist so in other words a lot of times you’re more likely to find some bigger showstoppers over here because it functionally can’t handle what it is you need it to do so it ends up pushing organizations to want to at least consider more bester breed model now one thing I’ll suggest is that in some cases the fact that people resist this model and want to look at this model that could be a symptom of resistance to change so in other words we don’t want to change we the way we do business today so we’re going to push for more of a best breed model but a lot of times maybe even a majority of the time for a lot of organizations you find that no they really do have needs that are better satisfied here and these are strategic business needs not resistance to change this is actual stuff that we need to do our business well and to be more effective as a business so this becomes the biggest challenge for most organizations that are trying to resolve the debate and where they fall on the Spectrum so how do we figure out which model is best what do we do and is are there any other options than what we have here that’s what I’ll talk about next now as if this tradeoff and this decision wasn’t hard enough there’s actually a third option that a lot of organizations don’t consider and that is a hybrid model so that’s saying that rather than choosing one or the other we’re going to have a core single Erp system that does all the core vanilla type functions within our business and then we’re going to do best of breed for the complex or the unique aspects of our business or our industry so for example a lot of times if you look at an organization like a manufacturing organization a complex engineer to order manufacturing organization let’s say you might have a corer p system that handles all the financials basic Inventory management basic bill of materials and customer information things like that but when it comes to product lifecycle management CAD drawings and Engineering types of processes you might have bolt-ons that would bolt on to the core Erp system and this ends up being a good middle ground for a lot of organizations that are really having trouble deciding between these two and by the way vendors even recognize that this is a very powerful model because a lot of vendors like sap and Oracle for example and even Microsoft they gone out and acquired a lot of best of breed providers because they know that their single core Erp system can’t do everything they need it to do or that their customers need it to do so they go bu these best of breed providers so that they they can say that they have a single Erp system when in reality what they’re doing is they’re providing a hybrid model to their clients so regardless of which model we lean towards whether it’s single Erp best of breed or hybrid one thing that’s very important is integration and operability so when we think about in operability and integration what we’re talking about is how do multiple systems tie together so especially if we’re going down the hybrid path or the best of breed path we need to have a Clear Vision for how systems can tie together and how we can leverage solution architecture and integration to ensure that we tie the systems together but that function is important even in the single Erp model because as I mentioned earlier so many vendors have gone out and acquired best of breed providers as bolt-ons to their system that are technically third-party systems it just happens to be that the vendor owns those multiple systems so interoperability integr is something that’s very important in any sort of digital transformation especially if you’re going down the path of best your breed or hybrid so the question now becomes which of these models is best and as you may have heard me say in a lot of videos it depends it depends on what you’re trying to accomplish as an organization what your priorities are if this is your number one priority right here and you know you need to find the best Technical and functional fit for your business processes and your needs and you know that your business is fairly unique in terms of being in a unique industry or you have a distinct competitive advantage that others in your industry don’t have it’s probably going to push you more toward the best breed model but if you’re a younger organization you don’t have established business processes yet Perhaps you don’t have any complex business processes or needs yet as an organization a single Erp system probably makes more sense and of course you might be somewhere in between if you’re somewhere in between those two extremes on the Spectrum you might find that the hybrid model works best what a lot of our client organizations do especially when they come to us and say hey third stage Consulting can you please help us Define a digital strategy that helps us leverage the best single Erp system we may start with that as a starting goal but then recognize that we only get let’s just say 80% of the way there so which is a reasonable number by the way if we say we have 80% fit here that’s great that means we could probably start here and at the very least maybe do a hybrid we may not necessarily need to go fully down this path but we may find that we need to now figure out what do we do with the other 20% are we going to water down our business processes and let the software dictate how we do the processes that may be an answer depending on what the process and the function is and how important it is strategically to your business or it could be that no we’re going to actually go find in Via a hybrid model some other best of breed options that we can plug into or bolt onto our Erp system so those are the kind of trade-offs and the decision points you need to go through as an organization to determine what the best fit is for your organization so for more information and best practices on how to navigate decisions like this as well as specific software reviews and rankings that we do on an independent basis at third stage Consulting because we’re not affiliated with any software vendors and we don’t sell software we don’t support just one Software System we support them all for more information and best practices to help you with this decision as well as other strategic decisions that you need to make as part of your digital transformation our encourage you to read my digital transformation report an annual report we publish each year that highlights best practices and Lessons Learned From digital Transformations throughout the world as well as independent reviews and rankings of different technology options you might consider both in terms of single Erp systems as well as best of breed and Hybrid models too so I encourage you to download that digital transformation report to give you some starting point ideas on what your short list might be or what your long list might be for some of these different categories here now that we understand how Erp systems work and what some of the nomenclature in terms of definitions are we understand and the pros and cons of best of breed versus single integrated Erp systems now let’s dive into specific software vendors let’s talk about the top 10 vendors in the industry and this is only 10 vendors we’re going to give an overview of here there’s hundreds of software solutions that provide Erp systems in the market so take it with a grain of salt but these are the top 10 in terms of the ones that are most commonly selected by our clients and the ones that are most successful in their deployments however having said that this is a general top 10 list that may or may not apply to you as an organization and you may find it you have a totally different top 10 list based on your specific needs but having said that this is a good introduction to understand some of the major players in the marketplace before we jump into the top 10 list for this year it helps to talk about the methodology we Ed this year compared to past years as

    well as what changes happened at a high level to the top 10 list first of all we’ll talk about the changes so in other words what systems are no longer in the top 10 that were in the top 10 last time we did this ranking well there’s two vendors in particular that fell out of the top to 10 that were in the top 10 in the past one is Sage X3 and the other is acumatica not that there’s anything wrong with these products but the Erp software field is becoming very crowded and there’s a lot of movement and advances in the industry and there were just simply other vendors that moved further into the top 10 and knocked those two out so that’s the first thing to not is these two vendors are no longer in our top 10 the other thing to note is our ranking methodology how did we decide who is or isn’t in the top 10 and how did we decide how the top 10 compared to one another well what we do is we look at overall functionality of the software we look at the cost and risk of deploying technology and we look at the results that our own clients get from having Chosen and implemented these different Technologies and the beauty of being completely technology agnostic and 100% unaffiliated with all of these software vendors is that we get a broad view of the marketplace and we understand the good the bad the ugly of all the different software vendors and the outcomes that we see with our clients the one thing I’ll say that is a bit different and has a heavier waiting this year than in years past is the failure rate of implementations we looked very heavily this year at what is the failure rate of these different vendors and that worked against some vendors in this case you’ll see a couple of vendors that fell in the top 10 largely because of their implementation results not so much because their technology or the functions and capabilities so that’s a bit about the methodology so let’s jump into the top 10 list now coming in at number 10 is the force platform and the force platform is actually owned by Salesforce and is created by Salesforce and it’s essentially a platform that allows Salesforce to be more than just a CRM solution which is what it’s known for force allows organizations and third party developers to extend salesforce’s capabilities or change salesforce’s capabilities by creating thirdparty applications and adding additional layers of features and functionality for specific functions Andor industries that allow organizations to have a semi-tailored Solution that’s a broad Erp type of solution last year force was number nine on our list it dropped to number 10 but it’s still a very strong solution and it’s a good alternate for organizations that don’t necessarily want a single application but they want to deploy a platform that gives them a lot of flexibility to tie together different systems and potentially even create their own custom applications to tie together with that Force platform now if you’re looking for more information in a deeper dive into Salesforce and the force platform check out this video right here it’s a review that I did not too long ago of Salesforce and this video will dive into the features and functionality of Salesforce in more detail coming in at number nine is Odo Odo is an open source system that has gained a lot of traction and momentum in the marketplace it was number eight on our list last year it fell slightly just a little bit to number nine mainly because there were two new entrance that moved ahead of ODU in the top 10 but still enough to keep it in the top 10 and the reason ODU is in our top 10 is because it offers a good alternative to smaller and midsize organizations that are looking for a system that gives them flexibility and allows them Simplicity in a sea of really complex Erp systems ODU is also very cost-effective so a lot of smaller midsize organizations that don’t have big budgets are able to afford ODU but the downside risk of ODU is that it may not be big enough or complex enough or robust enough for a larger organization and another downside risk is that Odo as an organization seems to be getting a little ahead of itself trying to go after larger organizations when their software isn’t quite capable of some of the larger more complex needs of organizations but despite those negatives there was enough strengths with Odo to keep it in our top 10 and number nine on the list and if you’re looking for a deeper dive review of Odo and understanding the pros and cons and Strikes of weaknesses check out this video right here it’s an independent review that I did of Odo that talks about what some of those strengths and weaknesses are in a bit more detail coming in at number eight is Oracle netw Suite Oracle netw Suite was number two last year and it dropped a few places to number eight largely because of some of the implementation challenges that we’ve seen amongst their customer base now let me start with the strengths though what the strengths of the product are and why it’s in our top 10 list first of all it’s a Pioneer in the software of service or the cloud space so they have a very mature product that’s been around for a long time unlike many Legacy on premise vendors that are just now making the migration to the cloud the other strength of netw Suite is that it’s it’s designed largely for small and midsize companies so if we were just to look at our smaller clients and NS we would actually be much higher on our list in fact it might be as high as number one on our list if we were to look at our client base right now just among small clients but because we’re looking at companies of all sizes and industries net we doesn’t quite have the capabilities to support larger and even midsize organizations and perhaps the biggest thing holding back net weed in our top 10 list this year is the implementation results that we’re seeing with some of our clients some of our clients have struggled with the relative lack of flexibility of the product combined with the complexity of the product as well and this is largely because of the SAS model when you have a software as a service model that is essentially multi-tenant that limits the flexibility of what you can do with it unlike other Cloud Solutions but all that being said netsuite is a very strong product it’s used by a lot of organizations and if you’re in the smaller midmarket it might be especially appealing to you now one other interesting data point as it relates to Oracle net Suite is it is actually number two on our list of the most most commonly selected systems by our client base so that’s something that’s worth noting as well now if you’re looking for a deeper dive into the strengths of weaknesses and the pros and cons of Oracle netw Suite check out this video right here which is an independent review that I did recently of the pros and cons of the software coming in at number seven this year is ifs and ifs is a unique solution that focuses heavily on construction and field services and some manufacturing and distribution and there a software vendor unlike many others that are not trying to be everything to everyone they know what they’re good at and they tend to stick to their knitting in that regard last year ifs was number five on our list and they are the seventh most selected system amongst the third stage Global client base which is why it’s here in our top 10 again this year some of the strengths of the product include the focus that I talk about and the fact that they’re growing fairly aggressively throughout the world and they’re really putting a lot of effort and time and resources into building out their ecosystem of partners that can sell and implement the solution so those are some of the strengths some of the downside weaknesses are that because this is a general ranking of top 10 systems across all Industries ifs doesn’t fit in all Industries and that’s okay but it’s something that does hold back ifs from being higher in our top 10 list having said that because they do Focus so much on certain industries they tend to have somewhat of a higher implementation success rate as a result of that now if you’re looking for more information about the pros and cons of ifs in more detail check out this video right here it’s an independent review that did of ifs that talks about the strengths and weaknesses of the product in a lot more detail coming in at number six is sap S4 Hana and S4 Hana dropped from number four in last year’s ranking down to number six and it’s also our number four most selected Erp system amongst our Global client base now as for is a very robust product it can do a lot of different things it’s designed and built for the Fortune 500 and the biggest organizations in the world that’s the good news the bad news is that there are some material deficiencies in the product as they continue the transition from on-prem ECC and R3 types of solutions to their Cloud s4a solution another reason that s4a has dropped in our top 10 ranking is because the implementation results have not been as strong as other software vendors there have been a lot of sap implementation failures in recent years and in fact even in our own client base we’ve had a couple clients that have completely canceled their S4 implementations because of material concerns with the product and with the implementation itself so for those reasons although the system is falling in our top 10 ranking it’s still a very strong and very prevalent product in the marketplace and that’s why it’s number six for more information and details and understanding of the pros and cons of the system you can also check out this video which is an independent review of S4 Honda that I did not too long ago coming in at number five is a new entrant into our top 10 and that is epicore and epicore is a vendor that owns a number of different systems that I’m not going to go into in a lot of detail here but they own Vantage and profit 21 and a few other different Erp systems that focus on different Industries some of the industries that epic cor focuses on includes manufacturing distribution and Retail those are three of the industries that we see them most commonly used in fact epicore is the fifth most commonly selected Erp software across our client base which is part of the reason why it’s new to the top 10 another reason why epicore is new to the top 10 is because in years past they actually struggled as an organization they had a lot of troubled implementations they had stripped back on their Professional Services Group they had really cut back on their ecosystem of implementation Partners but in more recent years they’ve really put in place a new leadership team that looks very promising and it’s sort of a All-Star group of Executives that have been in the industry for a long time and the vendor itself and the products themselves seem to be headed in the right direction so for those reasons combined with the results we’re seeing with our client base that’s why epicore is number five on our list now if you want to learn more about the strengths and weaknesses of epicore Vantage which is their Flagship product you can watch my independent review of the software which you can find right here on my YouTube channel coming in at number four is workday and workday has been on our list in the past but it wasn’t in our top 10 list last year the reason it wasn’t in our top 10 list is because some of the missing capabilities in core Erp functionality workday has historically been known as more of a financials and HCM or an HR sort of Technology but in recent years workday has invested heavily in Supply chain management and really expanding the Erp esque capabilities of the product the other reason why workday is new to our top 10 list and made the top 10 this year at such a high level is because more and more organizations are choosing workday they’re gaining a lot of traction in their sales cycle and in the marketplace and their implementations do have troubles just like any software vendor but they seem to be building a positive track record of implementation success so you may have thought of workday as just an HR or just a financial type of system but it’s important to think of workday as a more of a complete Erp system if you’re looking for more information about the pros and cons of workday in more detail check out this video right here which is an independent review of the pros and cons of the solution that I recently published on my YouTube channel coming in at number three is in for cloud Suite which is up from number six last year it’s also the number three most selected system amongst third stages client base and the reason in4 Cloud Suite has moved up is largely because it’s being selected at higher Pace amongst our client base but also because Cloud Suite is starting to finally get some traction and some stability to the cloud site solution for a long time in4 has really struggled with M3 and sight line and some of the other Legacy products and having a clear road map for cloud Suite going forward and having a unified road map for cloud Suite going forward but now we’re starting to see the fruits of the last few years of their investments in Cloud Suite in advancing the product as well having said that there are still still imperfections with the product there’s still some confusion and sort of a mix and match of different solutions that are required to satisfy many clients needs but they’ve come a long way and their product is a lot more complete than some of the other products in the marketplace so for those reasons infor is number three on our list this year and you can learn more about in Cloud Suite in more detail in terms of features and functionality in pros and cons by watching this video right here from my YouTube channel that dives into my independent review of in4 cloud Suite coming in at number two is Oracle Fusion Cloud Erp which is up from number three last year so it moved up one in our ranking and it’s also the sixth most selected software among third stages Global client base now the reason Oracle has moved up in the ranking and the reason it’s so high in our ranking is because it provides a flexible option for large organizations Oracle generally focuses on the big multinational organizations it’s a robust product it can do a lot of different things it has a lot of diversity in its functionality but it’s it’s also flexible more flexible than say an sap S4 Hana which is why it rates higher than sap Oracle also has less of a black eye when it comes to implementation results although there are plenty of implementation challenges and even some failures in the Oracle ecosystem Oracle Fusion Cloud Erp has a lower failure rate than sap in terms of the data we’ve seen the other thing to note with Oracle Fusion Cloud Erp is that it has more of an open architecture that can more easily be integrated with other types of systems and Solutions now if you’re looking for more information on the pros and cons of Oracle Fusion Cloud Erp check out my review right here on my YouTube channel that provides the pros and cons from an independent and Tech agnostic perspective coming in at number one this year which is the same as last year’s number one is Microsoft Dynamics 365 fno and the fno stands for finance and operations the reason it’s number one again this year is largely because Microsoft d365 appeals to such a large customer base they generally focus on midmarket and larger organizations so while sap and Oracle tend to focus on just the big companies and netsuite and ODU and others tend to focus on the smaller companies Microsoft d365 sort of straddles between both they cover the midmarket as well as larger organization so it’s a product that can scale but it it’s also not too much overkill for a smaller midsize company that might want to deploy technology the other reason why Microsoft is number one is because first of all it is the number one most selected software by our client base but also because it is a very flexible solution and it’s also a solution that has a familiar user interface in that Microsoft looking feel it’s also an open architecture that can integrate well with third party Solutions so these are just some of the reasons why it’s number one on our list now if I were to focus on the negatives the things that might hold back Microsoft d365 I would say that the biggest negative is the value added reseller ecosystem they really have no control over their ecosystem there’s a wide variety of discrepancy in the qualities and the strengths and weaknesses of different bars out there so you really have to be careful in choosing the right implementation partner because there’s quite frankly too many of them out there but all that being said that’s enough to land Microsoft d365 at number one on our list and if you’re looking for a more detailed review of the pros and cons of the functionality of the software I encourage you to watch my video right here they dives into my independent review of the software so those are the top 10 systems in our top 10 list but there’s a lot of systems that didn’t make the list that you can make a pretty strong argument should have made the list and in some years past they have made the list some honorable mentions worth noting would be ukg ukg is Ultimate Kronos group it’s the merger between Ultimate Software and Kronos and they’ve provided really a best-of class sort of HR and workforce management sort of solution so if you’re not looking for a complete Erp system but you’re really honing in on HR and workforce management ukg might be a great option another honorable mention goes to paler paler isn’t an Erp system per se which is why it did not make the top 10 list but it’s more of a platform a workflow management solution that can help tie together multiple systems and in fact you can watch my independent review of the pros and cons of the system by watching this video right here another one is service now service now is oftentimes viewed as a pseudo Erp system even though it’s not a full-blown Erp system but it’s oftentimes used for service-based organizations and customer service driven organizations and you can watch my review of that soft software in this video right here and then finally snowflake snowflake is a sort of a business intelligence tool on steroids that takes business intelligence to another level it could be a great alternative to traditional Erp systems but because it’s not a complete Erp system we did not includ it in this year’s ranking but it is an upand cominging technology that you might want to consider and then of course the other honorable mentions would go to Sage X3 and acumatica two very strong solutions that were in the top 10 last year and they fell out of the top 10 mainly because we had two new entrance that move to the top of the list but there are still two strong Solutions worth noting so I hope you found this information useful now that we’ve given this overview of Erp systems and how they work specific vendors in the market now let’s shift gears and talk about how to implement Erp systems one of the first steps that’s critical to a successful Erp implementation is your definition of business requirements and business requirements generally are going to summarize your needs and what you want to get out of the system for your future State and that’s the key word here is future State it’s not necessarily focused just on how you do things today but how you want to do things in the future if you had better Technologies so it’s really important to have these business requirements not only to help you select the right system but also to help make sure that as you implement whatever system you’ve chosen you’ve conducted that requirements traceability to go back and make sure that you’ve actually achieved and accomplished those requirements that you expected to see out of the ARP system so so let’s dive into in this next module business requirements and how it fits into in overall Erp implementation first it helps to understand what exactly business requirements are and as the name suggests it’s a set of descriptions of what you need technology to do to support your business so typically what happens is organizations decide that they need a new technology or set of Technologies or they want to deploy a set of Technologies to improve their business as part of their process one of the first steps is to Define what those business requirements or business needs are you can also view them or consider them in terms of what the business wants are in a perfect world if we could improve our business with new technologies what kind of requirements might we have in that scenario so business requirements are really a combination of the things that are working today that you want to preserve but also looking to the future of in a perfect world with new technologies what kind of business needs and requirements is it that we want to have now these business requirements are useful through the the entire life cycle of any sort of Erp implementation or digital transformation business requirements are a useful tool for helping evaluate and select the right technology but they’re also a useful tool in terms of helping implement the technology the way you need it implemented and that latter part is really important because a lot of organizations focus on business requirements to help pick the Technologies or to select the Technologies but then they lose sight of those business requirements and they don’t do much with it during implementation so what I’ll talk about throughout this video is how business requirements can be defined and how they can be used effectively in your digital transformation or Erp implementation so the way business requirements Gathering typically works is you’ll have a series of workshops with different stakeholders and functional areas within your organization you’ll ask them to describe their current processes to walk through their current processes to talk through the things that are working well and the things that aren’t working well what are the pain points and the opportunities for improvement and then another layer is also looking to the Future in a perfect world of if we had better technology what might that look like and what might those business needs or requirements be so we’re looking at business requirements across the spectrum of what works today all the way through what could work or be possible in the future and typically what we’re doing is we’re describing in a fair amount of detail what we would like the technology to do within our functional area what is it that we like the technology to do to support our business going forward now one word of warning here and one tip is to make sure that you’re not simply rehashing what you already do today and focusing just on the current state the current state is important there’s probably things that you’re doing well that you want to preserve and build on but you don’t want to Simply automate what you’ve always done you want to look to the Future to Define what technology could help with and also look to the ways that technology could potentially improve some of the pain points and opportunities for improvement within your organization now once we’ve defined these business requirements through these workshops we might end up with hundreds of business requirements if you’re a larger more complex Lex organization you might end up with thousands so it really depends on the size and complexity and depth that you’d like to go into one thing I would say is that the deeper you go into the requirements the more likely it is that you might run into analysis paralysis but at the same time you don’t want to be so high level that they’re not helpful in helping you select and Implement software effectively so you want to find that right balance to help you manage the project and using those business requirements as a foundation for the entire digital transformation Journey now once we have our full set of requirements not all business requirements are created equally some of them are extremely important and extremely critical their must haves their showstoppers of who can’t get these business requirements or they’re very strategic to the organization there might be another set of business requirements that are low priorities it’s just more nice to have in a perfect world yes we would like these things to be accomplished and then there’s some that are sort of moderate prioritizations that are a little bit more important the nice to have but they’re not super critical or absolutely critical to the organization so typically you want to prioritize your business requirements in terms of high medium Al low or critical nice to have somewhere in between whatever categorization you want to call it typically having those three layers of business requirements is critical and that prioritization will help make sure that you recognize and navigate the inevitable trade-offs that happen when you’re selecting and deploying technology in other words you’re not going to find a technology that meets all of your business requirements so that helps you ensure that you’re at least meeting the most important ones and maybe most of the moderate ones and maybe a fair amount of the low priority requirements so that prioritization is just as important as the actual definition of the business requirements as well now once we have our business requirements defined and we’ve prioritized them now we can use those business requirements to help us identify evaluate and select potential Technologies to help us with our business so now we can look look at demos from software vendors and we can do it not just in the context of a sales pitch from a sales rep but instead we can do it in the context against the backdrop of what our business needs and requirements are and the great thing about this is it allows you as a potential customer to really drive the demo and the sales process with the sales vendors rather than the other way around it allows you to ensure that you’re looking at and evaluating technology through the lens of your business requirements not necessarily just the cool bells and whistles that the technology vendors can provide now having said that during the demo process while you’re evaluating potential Technologies you may find that you add to your list of business requirements because you see something you really like in the technology you’re seeing and that might inform or help you shape some of your business requirements but in general you should have 80 or 90% of your evaluation requirements already defined early on Now One Word of warning in a potential Pitfall that you want to avoid if you can is that a lot of times organization when they have hundreds or thousands of different business requirements they get caught up in analysis paralysis they get concerned that they can’t find a technology that meets every single one of those business requirements well and that’s to be expected you’re not going to find technology that can meet every single one of your business requirements well unless you go out there and buy a bunch of Point solutions that can handle every single nook and cranny within your organization but the key here is we’re using these requirements to compare different options and we want to pick the best option not the perfect opt option but the best one and those business requirements through the prioritization and the waiting process that I described earlier will help you do that another area that business requirements help with during a digital transformation or Erp implementation is in the software and process design aspect of the transformation in other words those business requirements now not only helped you select the right technology but now those same business requirements should help you implement the technology and design the technology the way you need to and this is a great project governance tool tool it’s a way to keep the project on track and to keep the project focused on the business requirements and the business needs that you know you want to accomplish with this digital transformation now one thing to note here is sometimes organizations will do a high Lev set of business requirements during the evaluation process but when they get into the design and implementation phase of the project they’ll go deeper and they’ll Define those business requirements in more detail some organizations will do those detailed requirements upfront during the evaluation in which case those same requirements can then be used to design and implement the technology but regardless of when you do that and when you get into that additional layer of detail you want to make sure you have those detailed business requirements defined before you start designing business processes and new technologies if you don’t have those business requirements in place and clearly articulated and documented what ends up happening is your software vendor and your implementation partner will more than likely sort of guess as to what they think you need and they’ll build build the software the way they’re comfortable with or with what they know not necessarily in the context of what’s best for your business so business requirements are a great project governance tool and they’re also a great way to give organizations control and ownership of their own implementations so that they’re not being hijacked by the software vendor and the implementation partner and finally it’s important to note that business requirements are not just useful for helping design detailed workflows within technology but just as importantly maybe even more importantly those business requirements should help you design your future State business processes and workflows that may sound like the same thing but they’re not you’ve got your high level business processes and workflows and then you’ve got your more detailed granular transactional workflows within the technology and so rather than just building the technology from the bottom up the business requirements that you’ve defined should help you define the business processes from the Strategic level at the macro level all the way on down to that transactional level of detail so business requirements are a great tool for helping you design not just new technologies but also new business processes as well now finally requirements traceability is something that is often overlooked by implementation teams I mentioned earlier in this video that organizations oftentimes will Define business requirements and evaluate and select technology with those business requirements but they too often ignore those business requirements as the implementation goes on and this is a big mistake because if you lose sight of what it is you’re trying to deploy and what it is you’re trying to get out of your technology chances are you’re not going to realize the ROI that you expect from your investment and your cost is more likely to spiral out of control because you don’t have that governance mechanism in place via your prioritized business requirements that help guide you and provide that sort of North Star to your overall implementation so as you go from design to test to training to go live preparation you want to make sure all along the way you have those requirements in the back of your mind and you’re looking at traceability of those business requirements so that you can not guarantee necessarily that you’re going to achieve 100% of your business requirements but instead that you can make an educated and informed decision and understanding of what requirements you have achieved and which ones you haven’t and then when it comes time to go live and you have that go noo decision you can go back to those business requirements and say what percentage of our business requirements have we accomplished and tested and validated within the new technology and which ones haven’t we and can we live with those risks and those trade-offs what often ends up happening is the high priority requirements you expect that you have a very high percentage of compliance with those high level requirements or high priority requirements with the lower level requirements or the lower priority requirements it might be that you’re not as concerned with achieving or validating all of them and then the mid or the moderate ones might be somewhere in between so the business requirements are a great way to ensure that you have that traceability throughout the entire cycle from evaluation and selection all the way through implementation and go live another important first step in an Erp implementation in addition to defining business requirements is also to create a business case a business case is critical for a couple of reasons one is because it helps you justify the project and ensure that the investment you’re about to make in new Erp Technologies can be justified in other words you want to make sure that the business value is there you want to make sure you have a good understanding of what the real total cost of ownership is you want to make sure you have a real understanding of the quantifiable business benefits you expect to get out of your Erp implementation and ultimately you want to understand what Roi or the cost benefit analysis is return on investment by the way is what Roi stands for so a business case is important to not only justify the project but just as important it’s also an important mechanism to provide project governance throughout a project so as you refer back to your business case you’ll be able to make decisions around should we increase the scope should we add cost to our implementation should we customize the software or not there’s a lot of key decisions that need to be made throughout a project that can only be answered objectively by going back to your business case to see how those decisions might impact your business case and then finally longer term a business case is meant to manage and optimize business benefits so that after you’ve deployed the Technologies now you can go back and measure your actual business benefits and try to figure out why there’s gaps because most organizations if not all organizations are going to fail to realize all their business benefits on day one of a new tech techology deployment it takes them time to get used to the technology and to fully leverage that technology and the business case can be a great way to go back and ensure that you get that business value that you expected to see so with that all being said those three reasons why business cases are so important let’s dive into how to create a business case and this module is more of a whiteboard session unpacking a business case in a bit more detail now there are several different dimensions of a business case the one that most organizations tend to hone in on and understand the best is the cost side of the equation so that’s where we’re going to start is we’re going to talk about first how to create the total cost of ownership as part of our business case now when we’re looking at total cost of ownership there’s several different dimensions I want to unpack here and just show you what these different line items should be within your business case the first is the software cost and this is probably the one that’s the most obvious and the most predictable because you get a proposal from software vendor or vendors and they tell you how much the software is going to cost if if you buy it and for the most part it’s going to be the most predictable part of your overall transformation at least as it relates to the cost side of the equation now typically your software costs are going to be some cost per year so I’m just going to leave a blank because it depends on how many licenses you’re buying which vendor you’re buying from how many licenses or subscriptions you’re buying all those things factor into what the overall cost is so I’m not going to give you a placeholder number here because it’s going to vary so greatly depending on who you are as an organization but there’s some number here that you’re going to have that’s typically going to be a annual cost especially if you’re going down the path of the Cloud technology it’s going to be an annual recurring cost so I’m just going to assume that there’s an annual cost per year and that’s one of the light items we need to figure out now if you’re doing an on- premise implementation which some organizations still do it may not be an annual fee it may just be a onetime upfront Capital cost but then there’s going to be an ongoing maintenance fee that might be quite a bit lower than that so if that’s the case for you you might actually have two line items here one for the initial software cost and then one for the ongoing maintenance but for most organizations in most software vendors they’re going down the path of cloud subscription models which involves an annual recurring cost now the next thing we look at as it relates to the cost side of the equation is the technology implementation and this is where you are talking to your software vendor or your third-party implementor that’s providing technology specific Consulting to help you implement the technology and do the configuration the customization the setup of the software there’s going to be a cost associated with that and that’s typically a one-time cost that might be spread out over one two three years or however long it takes you to deploy the technology but there’s some sort of cost associated with this now this number is a lot less predictable than the software cost when we look at software cost as I mentioned before that’s fairly predictable because it is a finite number of licenses or subscriptions a finite number of modules and functionality that you’re getting and you can predict it a lot easier than implementation cost implementation cost or trickier because it depends on how long it takes depends on how much your internal resources get involved it depends on how competent your technology consultant and provider is so a lot of different considerations here but you do have a cost associated with the Technic implementation what I will say is that in most cases The Proposal that you get from software vendors or technology providers are going to underestimate this cost so typically what we do is We’ll add some sort of buffer here or contingency to allow for the unknowns the things that the software vendor may not be considering we also really dig into the assumptions behind this cost to make sure that they’re realistic if for example we find that there’s assumption that you have 40 full-time people committed to the project and that’s how they came up with their cost estimate but you know you can’t commit 40 full-time people to the project then you need to rework that and figure out what is the real cost if we only provide 20 full-time people or whatever the number may be so you really want to rationalize and poke holes in this number so you can get a realistic number because this is where a lot of organizations get into trouble now a lot of organizations will stop here they get their proposal from their software provider and say this is our total cost of ownership however there’s a lot more costs that are hidden that organizations don’t fully understand or plan for and that’s where they get into trouble again or they run into unrealistic expectations because they didn’t plan for these other costs so I’ll walk through what some of these line items are what is going to be your technical implementation costs that are outside the realm of what the software vendor does so we’ll just call this non-vendor costs so these are still implementation cost cost but they cost associated with a line item that is not going to be addressed by your software vendor or your system integrator your technology provider whatever it is examples might be data migration architecture integration things of that nature where maybe your software vendor is doing some of that work but there’s additional work that needs to be done to for example integrate to your legacy system or to clean up all your dirty data and map it to the new system and migrate it over and do all the testing behind that data often times those are examples of separate line items they’re going to add to the cost of your total cost of ownership so think of this as not just one light item but it could be multiple light items of non-vendor related costs and there’s a cost associated with that you also have organizational change cost if you’re doing this right and you want to be successful in your project you’re going to have some organizational change management costs you’re going to have training and adoption communication organizational design all the things that are required to make your project successful your your software vendor may do some things that really scratch the surface of what needs to be done here but most organizations we work with find that they need additional support and help here and this often times is coming from another third party for example third stage Consulting my company will provide organizational change services as a separate line item for organizations go back through the project now finally another line item that’s commonly included in a total cost of ownership is the overall program management and this is a line item that most organizations forget about and the reason this is so important is because the technology vendor and the implementation provider is typically going to provide a focus on one workstream which is focused on configuring and deploying a certain technology however you’ve got all these other activities and other aspects of a project that include internal resources external resources from the software vendor external resources from other potential thirdparty vendors so you need a program management Li item to consider the fact that there’s cost associated with the program management and so that’s another line item that’s commonly overlooked and then a final one I’ll add here is the internal labor so oftentimes organizations will find that they don’t have people just sitting on the bench doing nothing that they Deploy on internal digital transformation but instead they end up having to backfill those Resources by hiring more people to potentially either support these line items here or to help the internal resources that are supporting the project to help them do their they day jobs while they’re supporting the project so these are the major line items that most organizations need to think about when they’re defining their total cost of ownership which is obviously one of the important inputs to creating a business case now when we go through this exercise of looking at total cost of ownership we’re going to end up with a number here right some sort of number that says the total is going to be whatever this value is and that oftentimes becomes the bottom line number that we focus on as far as the cost benefit of our business case however there’s another piece that is missing that organizations typically don’t think about or consider when they’re going through their digital transformation so I’m going to add another line item over here off on the side because it’s so important and that is operational disruption and another way to think about this is risk what are the risks and the costs associated with operational disruption of things that could potentially go wrong and what is the cost associated with that this is a really important number here because this number can often times be exponentially more than theost of the implementation itself let me give you an example if you’re an organization that has a risk of potentially not being able to ship product or getting cancelled orders or not being able to close the books not being able to run payroll what does that cost to you as an organization and mean if you quantify those costs what if we can’t ship product for 30 days for example what is that what is that net impact to your organization when we quantify that number often times again we find that that number is a lot bigger than this number here and that tells us there’s a lot of risk associated with this project and we need to quantify this number because it could end up being that this risk becomes reality and it ends up becoming a part of the cost of the overall project now ideally we don’t want this number to be material we want this number to be as small as possible we don’t want a big operational disruption but we need to understand the correlation here between these two numbers because it may be that in order to mitigate this risk here which is a much bigger cost and a much bigger risk it may mean that we need to modify these numbers here and invest more in the overall project to make sure that we mitigate the risk over here let me give you a quick example a lot of times organizations will look at organizational change management and they’ll say this isn’t nice to have let’s get rid of that we can cut our cost in our bottom line right here but what we’ve done by doing that is we’ve actually increased the risk here which means this number is going to grow exponentially more because you’ve cut back on the employee Human Side of change and the overall change management side of the equation and now you’ve increase the operational risk so it may be that we decide you know what that’s a terrible idea so we’re not going to do that we’re going to go ahead and invest more in change management knowing that we’ve actually decreased the risk cure so we do need to think about this from the perspective of not just what looks good on paper and the line by line cost associated with the implementation itself but what is the cost of the outcome if we don’t do it right so now that we’ve looked at the total cost of ownership and the cost of operational disruption now we start to think about what is the cost benefit of the value that we expect to get out of our technology deployment so this is where we focus on business value business benefits this is the the fun stuff this is why we’re going through this project this is the stuff we expect to get out of the project when we make the Investments we make over here so some examples of ways we’re going to get business value I’m going to try and avoid the really really high level stuff like reduce costs because that’s too vague I’m going to try and get a little bit more Gran Al than that here so I’ll give you some examples of ways that organizations typically see business value one is to reduce inventory so if we can be better at planning and have a better handle on what inventory we have and better anticipate when we need inventory to be in stock at the right time we can actually decrease our inventory levels which frees up cash and there’s a dollar amount associated with that not only in terms of the investment in inventory itself but the carrying cost associated with that inventory and the handling cost ofo stated with that inventory so we need to quantify everything related to inventory reduction and quantify what that impact might be it could also be that we are going to reduce sgna costs and these are the way to look at this is going to be overhead costs you think about all the manual rework the manual processes we have within our organization the extra people the extra headcount we might have an organization that contributes to managing all these manual processes some of those costs can go away over time so we’ll quantify what those sgna costs are now for some organizations most organizations I’d say that we work with are doing a digital transformation not to reduce headcounts necessarily but to not have to hire as many people in the future as a company continues to grow so there is a cost savings associated with that where you can start to quantify how much am I going to save if we double in size but I don’t necessarily need to double my headcount because now I’m more efficient what is the increased value by decreasing the sgna cost and by the way sgna stands for sales General and administration cost so it’s basically all of your overhead and your sales cost another common business benefit you see with digital transformation is increasing Revenue so by having a better handle on ventory by being able to automate some of our sales processes provide better information to our sales team we are likely to increase Revenue too so we want to understand what is that potential impact on Revenue now there’s another business benefit that’s a little bit harder to quantify but it’s really important to think about it from this perspective and that is what is the benefit and the value of having better information so in other words if we have better access to information we can make better decisions we can predict the future better we’ve got better sense of historic data what does that mean to our organization and how can we quantify that in a way that that demonstrates your points to increase business value and business benefits this was a little tougher it’s really dependent on your organization some of it might be captured up here in your ability to reduce inventory and sgna costs and increase Revenue but there might be additional business benefits you want to look at in terms of how we’re going to increase the visibility of information to make better decisions for our organization and based on that you could start to look at how that affects your overall organization so these are just a few examples of ways that we can quantify potential business value but the key here is to really look at this not at a super high level even though this is fairly high level still we haven’t really gotten into for example if we want to decrease inventory where and how are we going to decrease inventory which warehouse location are we talking about our distribution center do we think we have abilities to decrease inventory levels so we want to be very specific about these different benefits even though I’ve summarized them here at a high level we want to break these up into more granular levels of detail so that we can ultimately measure me and hold people accountable for the business value that we actually achieve and that’s what I’m going to talk about next so often times when we create a business case we use this information here to look at what are the overall costs what are the benefits and then we come up with an Roi calculation we come up with a formula that basically says if we invest say a million dollars here we might get half a million dollars per year for the next 10 years of business value based on these metrics here in which case you would look at that and say okay over 10 years we’re getting $5 million of net benefits for the 1 million dollar investment that’s a pretty good Roi so there is a justification component to this and that’s where most organizations sort to stop with their business case they say either this math makes sense or it doesn’t if it does make sense then typically what happens is they’ll move forward with their digital transformation they’ll make these Investments over here assuming they’re going to get the value here and then they sort of set aside the business case and move into execution mode to go Implement new technology what I’ll say is that that’s only getting you about half the value you should be getting out of your business case because ultimately your business case should be a way to track value throughout the implementation and certainly post implementation too you want to be using that as a way to realize the value that you said you would get out of the project over here so let’s start with project governance first and when we look at project governance there’s going to be inevitably decisions that come up during a project to change these costs for example a common one is when we look at the technical implementation we had an estimate here of some amount based on some assumption those assumptions might change during the implementation and we might find that there is a need or want to potentially customize the software which is going to add to our line item here now a lot of organizations will make an arbitrary decision of yes or no we are aren’t going to customize based on whatever criteria they have what they don’t often do is look at well what does this mean to our business case if increasing the cost right here could potentially help us achieve one or more of these measures over here of business value then maybe it does make sense if we invest $100,000 here to get a million dollars of benefits over here okay maybe it makees sense but if we’re going to invest $100,000 of cost over here additional cost but we can’t justify any additional business value that’s going to be a good project governance control for us to say then that doesn’t make sense let’s not do that so the business cases should be a living document that helps you make decisions around project governance as the project is going through the implementation once you’ve gotten through the implementation you’re actually using new techology you’re using these new processes you put in place now you can go back and actually measure what kind of business value are we actually get and spoiler alert most organizations don’t get the business value they expect right away and that’s okay if we go back and measure it we can start to fine tune and figure out why are we not getting it maybe there’s something wrong we did over here maybe we didn’t implement the way we should have maybe we’re not optimizing the business value here maybe we didn’t invest in enough in process Improvement or organizational change those are all things we need to think about in a way that we can use the business case to optimize business value longer term not just to justify the project up front now that we’ve created business requirements we understand what a business case is now it helps to understand how do we phase a project how do we phase different steps in our process and different steps in our implementation so the good thing with an Erp system is that it’s a fully integrated system where it’s at least a set of technologies that can automate your entire business operations your end to-end business processes however for most organizations you don’t want to deploy all that new technology all at once you want to incrementally phase it so that you’re minimizing risk and you’re giving yourselves time to gain momentum and make sure you’re not spreading yourselves too thin so phasing the project is really important and how you phase your project is going to be dependent on who you are as an organization what your priorities are what your scope is your risk tolerance your budget your resource allocation all that stuff factors into how you’re going to phase an Erp implementation so in this module I want to dive into some of the considerations and things to think about to help you determine the best way to phase your Erp implementation essentially when you’re deploying new tech technology or Technologies you have two different schools of thought on how you deploy that technology one would be that you deploy everything all at once and you flip the switch and on day one you’re using new technologies across the Enterprise across all the different technology platforms that you just implemented the other school of thought would be that you take a more incremental approach and phase the project or phase the Technologies to where you’re not flipping the switch all in day one but instead you might have certain parts of your business or certain modules of the technology that go live at different times in more of a sequential phased approach and a lot of organizations might do somewhat of a hybrid somewhere in between what we’re finding though over time is that most organizations are too risk adverse and they don’t see a lot of value in doing the big bang massive transition all at once so most organizations inevitably end up with a sort of phasing strategy where they say we’re going to incrementally roll out this technology to different parts of our organization or using different modules or different Technologies throughout the overall transformation but then the question becomes well how do we phase it what’s the right way for us to phase the project how many phases should we have how do we phase it do we phase it based on processes based on modules based on Technologies does data consider or factor into it these are all things we have to answer questions to and that’s what I want to talk about here today is now that we understand what implementation phasing is and why it’s so important as a risk mitigation measure now we need to figure out well what is it we need to do to determine what the right phasing strategy is for our organization one of the first ways that you can consider phasing your technology is by looking at business processes and choosing the business processes that are going to add the most value to your organization and focusing on those business processes first in your phasing strategy so if for example Topline Revenue growth is one of the biggest opportunities for improvement within your organization it may be that your digital transformation focuses on automating your sales processes first to help drive that Topline Revenue growth you may set aside other Technologies like financials or inventory management other things that are still going to add value to your overall transformation in your overall business but maybe not as much value as you expect to get from in this example your sales automation so that would be one example you can look at is look at your business processes and identify those areas that are the lowest hanging fruit the most immediate value potential in terms of implementing new technologies and focus on that phasing strategy first now of course we’ve got to reconcile what we think our priorities are in terms of business processes we’ve got to reconcile that with the realities of the Technologies and some of the other considerations we’re going to get to here in this video but that’s one dimension to look at one variable to consider first is what business processes Which business processes are going to deliver the most value most immediately and let’s phase our project accordingly based on that another variable or Dimension to view your phasing strategy from is the software itself and how the software is broken into different modules so depending on what software solution or Solutions you’re deploying you’re going to have different ways that the software is architected and different ways of piecing together different mod modules of that particular technology so that’s one consideration you have to look at is just what is the technology you’re deploying and how would you potentially phase the strategy based on that technology another way to think about this is we have to deploy technology in a way that makes sense in the way the technology fits together for that particular vendor that specific solution so for example it might not be realistic to deploy your financial reporting without also deploying your inventory management as an example because it’s hard to do your financials if you don’t have Automation and good tracking of your inventory management so that’d be a good example of how you may not want to split apart those two modules or those two functions into different phases you might want to actually combine those into one phase however going back to my example earlier about sales automation typically for a lot of software Solutions you can set aside sales automation without necessarily having to have inventory management or your financials put in place so if you’re implementing a new Erp system for example it may be that you deploy these Technologies based on how the module fit together now no matter how you phase the Technologies there’s going to be some sort of trade-off and interim solution or a Band-Aid that you’re going to need to tie together some of these different systems so if you for example just put in a new sales automation module it might be that you have to create an interim integration from that sales automation to your financial so you can track revenue for example and that interim integration will go away eventually if you deploy other modules of that same solution to eventually automate your financials but in the meantime you got to create this interim automation or this interim integration so that’s the sort of consideration you have to look at is yes now we’ve broken up our implementation phasing into smaller incremental pieces but now we’ve created rework that has to be done to ensure that you have integration in the meantime while you’re still rolling out the other types of Technologies so these are all trade-offs pros and cons and risk that we have to manage and work through but the technology limitations and the way the technology is architected is one consideration and one input into the overall phasing strategy another thing we need to look at is the organization itself so when we look inward at us as an organization and where the most pain is organizationally or where the most opportunity for improvement is within the organization we might find that that influences or affects the way we phase the implementation of new technologies for example if we find that the finance department is really Under Pressure it’s highly inefficient a lot of manual processes the data is siloed people within the finance organization have trouble accessing data closing the books every month that sort of thing it may be that that organizational pressure forces you to prioritize financials in this example so you also want to look inward at who you are as an organization your culture where your pain points are what parts of your organization you think might be most willing to accept new technologies might be the most excited about new technologies and use that as a way to prioritize and phase the project it’s a lot easier to have an early stage or an early phase of a project that’s focused on parts of the organization that are excited and in the most need for new technologies because that’ll help you build momentum and then when you get to other

    parts of the organization that might not be as excited or might even be adverse to new technologies you’ve already built up some momentum and some quick winds along the way so the organizational considerations are something you need to look at as well as another input into determining what the right phasing strategy is for your organization another consideration to look at as you define your phasing strategy for your implementation is risk management so we as organiz ations and we as Leaders within organizations have to look at how comfortable are we with risk and how much risk are we willing to take and also we have to look at how we going to mitigate whatever risk we do or don’t accept so this influences our phasing strategy because if we’re more risk adverse for example it may be that that’s going to cause us to want to be more incremental it maybe a little slower in our rollout it might mean that we break our project into more phases it might mean that each phase is going to be a little bit longer than a more risk tolerant organization so we have to look at the realities of Who We Are are not necessarily who we want to be in the future but who are we right now and what’s going to be realistic for us as an organization and then we manage the risk accordingly we’ve worked with some clients they’re extremely comfortable with risk they’re high growth fast moving organizations they take on a lot of risk dayto day and they might be more inclined to take more of a big bang or something that’s less phasing and more aggressive in the rollout schedule however most organizations we work with especially larger more mature organizations are just more risk adverse For Better or For Worse that’s not AUST judgement it’s not meant to be a criticism of those organizations that’s the reality of most big organizations is they’re risk adverse and therefore they need to come up with the implementation phasing strategy that reflects who they are and it has to be something that fits them that they can be comfortable with but no matter what you do if you phase the project there are risks associated with more incremental approaches the changes can take longer the implementation itself can take longer you have a lot of interim rework that needs to happen as you integrate Legacy systems that are slowly being phased out so there is is risk associated with it one of the biggest risks too is that change fatigue becomes an issue as the project takes longer if you break it up into too many phases you end up in a situation where the organization itself starts to doubt the project and starts to get tired so you have to look at all these risks on both sides of the equation and really assess your phasing strategies and your phasing options from the perspective of what’s going to help us mitigate the risk the best and what’s going to fit our risk tolerance the best as an organization finally another consideration is managing the scope of the project itself it might be that it’s more appropriate for us to scale back the scope and roll out less Technologies in the name of being more risk tolerant and managing risk more effectively or making sure that we get the most value as we possibly can out of the Technologies we do deploy rather than trying to boil the ocean too often organizations try to bite off more than they can choose they deploy too much technology that never gets used and never adds value to the organization so there’s something to be said for organizations that say we’re actually going to cut back scope and we’re going to try and do it really well and knock it out of the park with what we do deploy so reducing scope managing scope that’s another consideration you need to look at because that ultimately influences how you’re going to phase the project and one of the potential benefits of reducing scope is that you’re also reducing risk now you might also be reducing business value longer term but in the short term you might be reducing risk and reducing cost and for a lot of organizations that’s more important so again you really have to look at who you are as an organization and what’s most important to reflect your priorities and your overall strategic objectives so once we’ve looked at our implementation phasing options and our Alternatives pros and cons of each we’ve looked at it through these different lenses that we’ve talked about now we’ve got to reconcile because a lot of times you find that when you look at phasing through the different lenses that I’ve talked about in this video there’s some conflicts there’s some things that don’t match up in other words it may be that what our business process priorities are don’t necessarily align with how the software can realistically be deployed in which case we’ve got to figure out how are we going to reconcile that and how are we going to sort of create a tiebreaker to figure out what the right answer answer is so we take these qualitative inputs based on these different dimensions and variables that we evaluate the implementation phasing options from and then we ultimately come up with a phasing strategy that makes the most sense for us as an organization now the key here is to really look at the risks and the benefits of every option we consider and we have to recognize that there’s not going to be a silver bullet there’s not a perfect answer here there’s going to be trade-offs there’s going to be risk that remain no matter what strategy we develop so we just have to understand what they are and have a risk mitigation strategy to address those risks as we Define the phasing strategy so these are some of the ways that you can look at and evaluate your implementation phasing options hopefully it’s given you some ideas on how to start to think about your phasing strategy and certainly if you’d like to learn more and discuss some ideas on how to phase your project I’d be happy to brainstorm ideas with you I’ve included my contact information below if you’d like to reach out for informal conversation to discuss how you might phase your upcoming project now as we continue to unpack the concept of how to implement Erp systems and we talk about how to plan for an Erp implementation it’s important to understand the difference between program management and project management a lot of time organizations are focused on the technical project management of Erp systems per se but they’re not necessarily focused on the broader scope of what needs to happen to lead to a true digital or business transformation in other words we’re not just deploying technology we’re deploying process changes organizational changes we’re deploying new data models we’re deploying new architectures new integration points a lot of different things are happening outside the realm of deploying new software so instead of just looking at software project management we have to look at the context of the broader program management for the entire Erp implementation or digital transformation and so in this whiteboard module that I’m going to dive into next this is where I unpack and explain what a program is and how you could think about your Erp project a little bit differently in terms of a program rather than a project so to start I want to talk about project management and that’s the thing that I think most of us can get grounded in and really understand when it comes to digital transformation so I’m not just going to call this project management though to clarify and be more specific I’m going to call this software project management and I’ll discuss here in a moment why that is such an important differentiator so software project management is essentially what most of us think about and most of us focus on when we hire a system integrator for example or a software vendor that’s going to manage the software implementation so this is where we get into things like the technical configuration this is where we get into the overall design even before you get to the config you have the design of the software you’ll have the the technical testing of the software and then ultimately you’re going to have the go live of the software this is obviously not an allinclusive uh project plan but I want to call out these tasks that are commonly included within a software vendor system integrator’s proposal as the project management now I don’t want to be dismissive of the concept of software project management but the reason I called this out and separated it is because it’s one piece of an overall program I’ll talk in a few minutes about what those of other components are but it’s really important to understand that when you hire a system integrator and a software vendor they’re really the Project Lead for a technical workstream so project management is important here but the project management is typically focused on deploying technology and as we’ll talk about there’s a lot of other pieces of a transformation that are just as if not more important than this and if all we do is focus on this then what we’re doing is we’re underestimating the amount of effort the amount of resources the amount of tasks and deliverables that need to happen within a transformation and we’re neglecting all the things over here that I haven’t gone to yet that are even more important to ensure that we’re successful so to start we want to understand what the technical project management is but next we’re going to talk talk about what some of the other components and work streams are within program management so as we slowly start to unpack what program management is I’m going to start by just saying we’re going to have an overarching pmo typically you want to have an an overall Enterprise program that’s going to manage the entire program so now what I want to do is talk about how this all ties together now certainly within your overall pmo and even if you don’t have an internal pmo by the way this is something that you want to make sure you establish is make sure you establish a program management office that can manage the overall program including your software vendor and system integrator resources here so the software vendor software project management reports up to the pmo typically and then that BS the question of well what else is there why do we have a whole pmo just to manage this well the reason is because of a lot more than just this first of all I’ll say that software project management may be multiple workstreams so you may end up finding that you’re not just deploying one technology you’re deploying a best of breed model or you’re deploying a core back office Erp system but then you’ve got some third party boltons on top of that so if you are deploying multiple Technologies you want to make sure that you recognize and identify that there’s different threads different software threads that have their own plans that ultimately need to be integrated up to the overall program so that’s the first thing you may have multiple Technical and software work streams depending on what it is you’re deploying now secondly even if you’re just deploying one system but especially if you’re deploying multiple systems you’re going to have a segment for call it the technical aspects that are not software specific and specifically what I mean by this is overall system architecture data and integration so it’s really that overarching thread that ties together multiple Technologies and even within one technology it ties together the different modules within this technology in any third party boltons Z might have on top of that that’s really the architecture piece so architecture we’re talking about solution architecture how do these systems tie together not only the new systems you’re deploying but in the interim while you’re deploying new technologies chances are fairly high that you’re going to want or need some sort of interim integration points to your third party systems or your legacy systems that you have now a lot of those systems if not all of those systems may go away eventually but as you’re going through the transformation most organizations need to have that interim integration built and so you need to have an over all solution architecture that defines how this is all going to tie together the different Technologies the different modules within the same Technologies how does it all tie together you you also have your data and analytics we’ll call it so this is where we get into Data migration data mapping data cleansing which is really just taking your old Legacy data making sure you clean it up map it to the new system or systems and then ultimately Define what kind of analytics you want to get out of those new system or systems so again it does touch this part over here with project management but typically this is out of scope with a software project manager and a software focused workstream and then the other piece within this is the overall integration and this is becoming an increasingly important function and an underrated function with indigital transformation on the technical side because even with the same software vendors a lot of these software vendors have thirdparty systems that they’ve acquired that still have to be integrated with the core Erp or the core Enterprise technology so integration is very important especially if you’re deploying a best debris model or you’re using business intelligence and data analytics tools on top of a core Enterprise technology so this is another workstream and this is a summary of some of the activities within the workstream that’s not software specific but it’s very technical in nature it needs to integrate with the overall pmo and overall program plan to augment what’s being done here on the software project management side of things so the next project within an overall program that needs to be managed within a successful digital transformation is organizational change management and this is anything to do with the people side of change and this also goes well beyond training and Communications now typically when you hire a software vendor and system integrator they’ll tell you that we we are going to help you manage the change we’re going to do change management we’re going to do that in the form of Technical Training in fact that’s a concept I didn’t mention before but here’s where you would say or where a vendor would say we’re going to do Technical Training to teach people how to use our system to perform transactions that’s an important part of change management but it’s one microcosm one subset of an overarching change management plan an overarching change management plan should look at things like change Readiness what kind of organization is it that you are today what kind of culture do you have today what are you trying to become and what does that mean in terms of the potential organizational pitfalls that might come along along with that and the potential sources of resistance that might come along with that another important work stream within change management is change impact so this is where you look at where we are today in our current state where we’re going in our future State and how different work groups and departments and individuals within an organization are affected by that because ultimately we can’t do this tech training on its own without having done this change impact we need this change impact to be successful in our training so that we can get the changes out on the table and help educate people on what the changes will be well before we get to the tech training so that by the time we get to technology training now we’re starting to reinforce what we’ve already communicated and worked through with our employee base now it’s more a matter of just showing us how to do it within the new system too often software vendors and system integrators jump straight to this and it creates a ton of resistance and a ton of backlash within the organization because the organization isn’t ready for all the massive changes they come with new technologies today that statement by the the way is more true the older your technology is and the more of a leap you’re making in terms of upgrading your Technologies and then a final work stream I’ll focus on today although this is not every single work stream within change management that I’m talking about but some of the highlights another one is the organizational design so as we’re defining the change impacts we’re typically doing that in conjunction with business process improvements and as we’re defining what the improvements are we’re identifying how people’s jobs are impacted and we’re also defining how the new organization is going to look what are the roles and responsibilities I’m actually going to call that out as a a separate or a call out here roles and responsibilities in this new organizational future State and again we need to understand this as an organization our people need to understand this so that a they aren’t alarmed by some of the changes that are coming as part of the transformation but B so we can get more business value out of the transformation and this massive investment we’re about to make in new technology so organizational design design roles and responsibilities is another important thread within change management now for more information on what a complete change management program looks like I’ve included a link to a video right here that you can click on that dives into more specifically what change management is I have a number of other videos beyond that one video that talks about what some of the methodologies are some of the tool sets the deliverables you should focus on I’m not going to dive into all that here today but check out those videos on my YouTube channel for more information about what makes an effective change management program and for even more information I encourage you to download our guide to organizational change management it’s a report that I wrote or a white paper that I wrote that unpacks change management as a whole and talks about all the different work streams and threads within change management and it gives you a roadmap for how to deploy a change management program so I encourage you to download that guide to organizational change management in the links in the description field below so we’ve talked about software project management talked about architecture data and integration change management now last but not least is business process re-engineering so this is the whole business business process thread of how we’re going to change our business processes and what those processes are going to look like in the future and a lot of times people think well we don’t need to do this because we’re already doing it over here when we deploy new software there’s some truth that this is going to drive to some degree what your business processes will look like but if you don’t have sort of a top- Down vision of what you want your processes to be regardless of what technology you’re deploying then this is going to become a very less work stream that’s going to get out of control go over budget take a lot more time than it should because you don’t have Clarity on what you want your business processes to be today’s modern Erp systems are more flexible than ever and even the simplest workflows that you would think would be standard vanilla off the shelf out of the box type of Technologies are not so there’s a lot of different decisions that need to be made and if you don’t have Clarity on what you want your processes to be which is why this is so important this workstream quickly gets out of control this work stream is impacted you have a lot of problems here from our human adoption perspective this becomes difficult as well because now you don’t have Clarity on how you’re going to integrate and leverage different Technologies to improve your business processes so this is a core fundamental aspect of an effective digital transformation and here’s where you define your current state processes you don’t want to spend a ton of time here but you do need to understand where you are today partly because part of what you do today in most organizations there’s value in there A lot of times Executives and organizations as a whole think let’s not worry about this because this is our future State over here let’s focus on the future state fair enough you want to focus on the future state but you do need to understand where you’re starting from because there’s a lot of value and a lot of core competencies you’ve built over decades if not longer that you want to preserve and then of course there’s improvements you want to make there’s pain points there’s deficiencies in your current business processes that you want to focus on improving you want to prioritize what those things are where the real business value is what the business case justification will be all that is an important part of defining the current state which then leads us to Future State and this is exactly what it sounds like this is us defining what our future State processes are so that now we can bridge the gap between current state and future state to do our change impact now we’ve got Clarity on how we’re going to deploy technology here and here and it starts to pull together the entire transformation in that way and then of course I mentioned a moment ago you’ve got your business case and this is where you you quantify what the ROI is what kind of business value you expect to get out of the transformation where you’re going to get the business value and ultimately you use this as a tool to manage to business benefits realization as you go through the transformation and even after the transformation now the reason this is so important is not only because you need to have Clarity for business processes to help drive and enable some of these other work streams but because it also gives you a lot of clarity and it gives you project governance and controls as it relates to pmo or the program management office and that’s what I’m going to talk about next so now we’ve talked about the different pieces of an overall program we’ve talked about how software project management is different than some of these other work streams and why these other work streams are so important but now you’ve got a lot of different work streams that need to be tied together that’s where program management comes into play and again this box is intentionally different than this box you might have an SI or a system integrator software vendor resource that is your technical project manager they would fill this role here but you still need someone up here that’s providing the overall program management that now ties together all these different pieces and so there’s a few different components of program management here one is making sure that we’ve got the project plans aligned across these different workstreams you’ve got a software vendor here that’s going to come together with their proposal or their timeline of what they think the technical implementation looks like you might have multiple software vendors doing the same thing if you have multiple systems you’re deploying you’ve got this piece which is the architecture data migration integration which is going to augment what’s done here and that’s going to determine what the overall full plan looks like as well as the full duration and timeline change management of course is its own animal it’s its own strategy that needs to be integrated with the overall transformation and then of course business process Improvement and by the way the things that are most likely to slow down a project and create disruption and cause a project to take longer than expected are these three right here I don’t want to say that this is rare that you have delays or budget overruns here but when it does happen it’s typically because there’s issues over here that are affecting this piece here so that’s even more reason why you need a solid program management office to manage the entire program program management office is also important in terms of ensuring that we have project governance and controls in place so I mentioned before how the business case is an important project governance tool because it gives us Clarity and Direction when we have a need to Pivot or make decisions on what the project scope is going to be or where we might cut scope or add to scope someone has a customization request someone wants to buy another module ual for technology if we don’t have this business case in Roi in place as sort of our guiding North Star for the transformation we’re going to be making these decisions based on gut feel and emotion but here with this in place now we can make tangible business decisions on the rest of the project any changes that come along with the rest of the project we can use this business case as a project governance tool to manage that entire thing so essentially what the program management office is is a way to tie together the entire operations or the entire set of work streams in the different projects within the overall program and it’s also a way to incorporate project governance with a project Charter the overall program plan the business case the overall vision and strategy for the project the resourcing plan all that stuff is really important from a program management perspective and perhaps more importantly and most importantly is that by having this program management in place this enables you the implementing organization not the system integrator not the software vendor but you the implementing organization you now have control and ownership of the overall program and you should this is your organization you’re deploying technology to improve your business and you need that that ownership and buy in and support and control of the overall program so what does this all mean to your digital transformation well first of all it means you want to open up your mind to look Beyond software project management and like I said at the beginning of this video more often than not software vendors and system integrators and value added resellers propose a plan plan that focuses right here but your transformation typically will entail all this other stuff including the program management so you want to make sure you have a full program plan that integrates all these pieces you also want to make sure you’ve got project governance in place and program governance in place and that you ultimately staff this in a way that allows you to have ownership of the overall program and perhaps most importantly the reason program management is so important and why this is so important to you as an organization is it allows you to focus on the things over here that are more important to success than the technical implementation this is important don’t get me wrong but this stuff is ultimately more important especially these two right here if we do this stuff really well and this really well then chances are pretty high that this the software project management and the architecture data and integration work streams are going to come together better than if you hadn’t focused on those things now that we understand how to plan for and execute on an Erp implementation it’s also helpful to understand why Erp projects fail Erp impl ation failure rates are extremely high a lot of estimates put it at 80% or higher of Erp implementations failing and that number hasn’t really changed and it definitely has not gotten better in the last 25 years that I’ve been doing this so the question becomes why why do Erp implementations fail are we doomed for failure or is there something we can do about it and I would argue there’s something we can do about it and that’s what we’re going to talk about next is really unpacking the root causes of why Erp implementations fail so that ultimately you can identify those risks and mitigate those risks as you go through your project so that you’re not surprised by it you’re not blindsided by these risks hopefully you can learn from others mistakes to ensure that you are doing the things that need to be done to make your project successful and to avoid failure the first common reason why Erp implementations fail is because organizations have unrealistic expectations to begin with and the reason this is so powerful is because as fast as technology is changing and as much as technology can do today it creates this false sense of hope that we as an organization can quickly adapt to this software and we can quickly realize business value from different technologies that are out there and don’t get me wrong Erp software today can deliver dramatic value to most organizations the problem is most organizations don’t realize how difficult it is to get from where you are today to where you could be with new technology and so as a result what ends up happening is not only do you have unrealistic expectations of how quick you might get to that business value but when you realize that a project is going to take longer than you expect it’s going to cost more than expected and require more resources than expected what ends up happening then is that organizations end up scaling back and throttling back on some of the key critical success factors that are critical to make their project successful for example let’s just say we have an organization that thinks they can go through their Erp implementation in 18 months but 18 months was never realistic it was always going to take this organization say 24 or 30 months to go through their implementation what ends up happening is when the organization gets part way through that project maybe halfway through or two-thirds of the way through they start to realize that they have compressed a timeline that’s just not at all realistic so they have one of two choices they can either delay the project and spend a lot more time and money than they expected which oftentimes is not possible with Boards of directors and other Executives holding the project team accountable or they can scale back on Project activities and just try to force fit the Erp implementation into a shorter duration when they do the latter what ends up happening is they end up cutting things that are absolutely critical to success they end up cutting things like organizational change management or they’ll cut a couple of iterations of user acceptance testing they might spend a little bit less time on requirements Gathering up front if they understand early on that they’re behind the eightball on the timeline so these are just a few examples of how organizations end up making a bunch of bad decisions later in a project because they had unrealistic expectations to begin with so one of the biggest things you can do to ensure you avoid this Pitfall is to ensure that you have realistic expectations and do so by taking software vendor and system integrator and implementation partner proposals on a time frame in a budget take those with a grain of salt and make sure you add your own dose of reality from an objective perspective to ensure that you have the appropriate amount of time budget and resources dedicated to the project the next common mistake that organizations make that lead them to failure is that they don’t spend enough time and effort upfront in the implementation planning process and this is a fascinating organizational Dynamic that I’ve seen time and time again throughout my career what ends up happening is you get an organization that is committed to a digital transformation and an Erp implementation they go through an evaluation process and they select the software that they are convinced will be the right answer for them going forward and it probably is it probably is the right answer or a really good answer going forward and it’s at that point in the project that momentum and excitement for the project is the highest it’s never going to be that high again so the team ends up rushing into the implementation because they’re excited they want to get started they want to start building stuff they want to see and touch and feel the technology and that’s all good stuff you absolutely need to do that but the problem with that is that when you jump too quickly into the implementation phase without having a really solid plan and a really solid vision of what it is you want to be when you grow up as an organization you’re going to spend a lot of time and money later on spinning your wheels trying to figure out what it is you want to be when you grow up when you’re in the middle of an implementation so the key here is to make sure you dedicate time in your project it’s sort of a phase zero an implementation planning phase that’s after the selection phase of the project but it’s before you get into the implementation and taking that time to really establish a blueprint for the project a blueprint for your business processes and what the organization is going to look like which modules you’re going to deploy and when how you’re going to Resource the project mobilizing the resources getting your change strategy in place all that stuff the more time you spend doing that upfront you’re going to to save exponentially more time and money later on so it’s critical that you spend time defining this implementation phase and to learn more about what this implementation phase should look like I encourage you to check out this video right here this video for my YouTube channel dives into the implementation planning and implementation Readiness phase of the project in a lot more detail and if you watch that video it’ll describe some of the different activities you should be focused on to avoid this common Pitfall another common reason why Erp implementations fail is because Executives don’t have a Clear Vision or they haven’t articulated a Clear Vision of what it is this Erp implementation is going to be to the organization another common Dynamic within this is that executive teams themselves oftentimes aren’t aligned on what that vision is and so when you have an executive team that doesn’t have alignment amongst themselves Andor they haven’t clearly defined and articulated to the organization what this Erp implementation means to the organization going forward that’s going to create a lot of problems confusion chaos and misdirection as it relates to the Erp implementation now a lot of times Executives will say well we’re going to go through this Erp implementation because we have to our software vendor is forcing us off our old Legacy system and now we need to move to a migration to a newer software or it could be that our old system is old it’s broken we can’t scale as a company and therefore we need new technologies and tools to help us grow those are good starting points but that cannot be the basis and the foundation for the entire justification for why you’re going through the project you need to have and articulate a clearer vision of what the Erp implementation is going to do for the organization for example is it going to help us improve our customer experience if so how is it going to improve the employee experience if so how what are some of the details of how that will look is it going to help us improve our operations help us be more efficient Help Us sell more and generate more Revenue whatever the business benefits are you want to not only Define what are and what the value is to the organization but get into more detail and granularity of what that operating model and that organizational model is going to be in that future State it’s not enough to say we’re just going to deploy sap or Oracle or Microsoft or whatever it is you need to go beyond that and clearly articulate what the vision for the project is and the more time and effort you spend defining this vision and the more effective you are at defining that Vision the more Tailwinds you’ll have supporting you you and the project team going through the Erp implementation so one of the biggest things you can do to avoid ARP implementation failure is to ensure that before you get started on your implementation that you have that clear alignment and vision from the executive team one of the most common root causes for Erp implementation failure is a lack of focus on organizational change management or if there’s a focus on organizational change management it just isn’t effective this is one of the root causes that can lead to a lot of other symptoms Within in Erp implementation and simply put if you don’t address the people side of change you don’t ensure that your people are fully adopting new processes and new tools you’re just going to end up with a bunch of shelfware or investments in technology that is not delivering business value and that has to lead you to the question of why are we doing this project in the first place if we’re not getting the business value that we could and should be getting from it so the key here is to not get too caught up in the technology pieces and components of your Erp implementation but instead to focus more time and effort on the organizational change management piece because the better job you do on organizational change management the more likely it is you are to be successful and when we look at Erp implementation failures particularly as it relates to lawsuits that we’ve been hired to testify in in court we find that the number one most common theme and pattern among those failures is a lack of organizational change management the organization did not focus for whatever reason enough on organiz ational change they didn’t address the people aspects of change and they focused too much time and effort on the technology sides of change so one of the biggest things you can do is ensure that you have a solid and effective change management strategy and plan before starting your Erp implementation now for more advice and tips on how to create that organizational change strategy and plan I encourage you to check out my playlist which you can find right here it’s a YouTube playlist that has all of my YouTube videos that talk about organizational change management so check out this link right here that’ll give you a playlist that you can go through and watch some more videos that describe how to go about the change management process now the fifth and final reason I’ll talk about today of why Erp implementations fail is because the organization doesn’t have a clear definition of success how will we define success of our Erp implementation for some organizations it could be that we’re going to come in on time and on budget and that alone is a tricky proposition and most organizations fail at even that most basic fundamental definition of success but beyond that most organizations don’t have a good vision of what it is they want to get out of the Erp implementation after they’ve gone through it in other words what is our business case what’s the ROI where are we going to get the business value where are the dollars and cents going to come from those are all things that need to be defined clearly on not only so that we can ensure that we maximize the business value post implementation but just as importantly so that we have clear direction as we’re going through the implementation itself in other words having that Clear Vision vision of success can serve as a sort of a guard rail for the project and a North star that guides Us in the right direction as we’re going through the implementation every Erp implementation requires hundreds if not thousands of decisions about how your business is going to run how it’s going to look what sorts of Technologies you will or will not deploy whether or not you’re going to configure the software or customize the software or integrate it to other thirdparty systems a lot of different decisions that materially affect the scope and the cost and the risk of the project and if don’t have that Clear Vision for what it is Success looks like for the project and what you want your organization to look like on the other side then you’re headed aimlessly into the darkness of digital transformation or inp implementation so these are five of the most common reasons why Erp implementations fail now that we understand why Erp implementations fail let’s dive into some case studies and talk about why high-profile Erp implementations have failed in recent years and this is a top 10 list we compiled not too long ago that dives into some of the highest profile best known names in the industry that have struggled in their Erp implementations and the reason these are such good case studies is because it gives us some examples and understanding of things we should not do in our Erp implementations these are the mistakes that we should avoid and so it helps to look at what other companies and specific case studies have done in their implementations that have led them to failure so that we can avoid those same things so with that being said let’s dive into the next module which gets into the top 10 Erp failures of all time coming in number 10 is herbo they’re the company that make gummy bears maybe number 10 on our list it’s actually number one on my kids list because they love gummy bears and they weren’t happy to learn that gummy bears were largely unavailable for a period of time in 2018 after their sap implementation and the general gist in summary of what happened here is they spent hundreds of millions of dollars trying to implement sap in 2018 they finally sort of implemented sap and immediately they ran into supply chain problems they couldn’t track where their inventory was they couldn’t track raw materials they couldn’t get the inventory to stores in time and as a result their sales dropped roughly 25% shortly after the transformation so these problems are enough to land herbo at number 10 on our list coming in in number nine is Washington Community College this company or this organization tried to implement people soft in 2012 or beginning in 2012 and they hired cyber to help implement the product and the tricky part in the unfortunate part of this project is that cyber filed for bankruptcy and went out of business at the time of the implementation and the college was left holding the bag and holding the end result which wasn’t pretty so once cyber went out of business they were acquired by a company called HDC who resumed the project but they eventually canceled the project and keep in mind this is HTC the vendor canceled the project not the college the vendor canceled the project and sued the college for $13 million saying that the reason that the project failed is because they had internal dysfunctions that couldn’t be overcome so this is a very rare situation where the failure was probably the result of both parties but in this case the system integrator was actually the one to sue the college but in either case the college spent a lot of time and money and now is dealing with a lawsuit in an implementation that’s delivering little business value to the college and to its student coming in in number eight is hilet Packer the technology and hardware company now H Packer spent 160 million on their Erp project the project cost $160 million but the damages to the company that they claim were caused as a result of the failed implementation were nearly five times that amount so they spent 160 million expecting to get a certain Roi but in this case they actually lost five times that amount which isn’t the type of Roi that most of us are looking for when we go to implement new technology and one of the interesting quotes from the CIO of HP at that time he said we had a series of small problems none of which it individually would have been too much to handle but together they created The Perfect Storm and that pretty well sums up what happens with a lot of these failures and that certainly was enough to land hul Packer to number eight on her list coming in at number seven is Waste Management another company that tried to implement sap to no avail and waste management spent around $100 million according to public records on their sap implementation and It ultimately failed sap had promised that Waste Management would get annual benefits somewhere in the neighborhood of 100 to $200 million per year but those business benefits never materialized and resulted in a failure on the part of Waste Management one of the key challenges that Waste Management alleges that they had with this project was that sap misre represented the software that was being offered to them and they said that they were being demoed fake software so the demos weren’t the real software that sap really had available according to public records and and quotes from people from Waste Management so that was one of the interesting allegations is that when Waste Management sued sap they alleged that sap didn’t demo properly the the real software that they’re actually going to be getting coming in at number six in our list is Hershey’s hershe she’s tried to implement sap they spent quite a bit of money on their implementation and what they found at the time of their go live is that they were incapable of processing roughly a hundred million dollar of orders for Hershey’s kisses and Jolly Ranchers and again this is another one that may only be number six on our list but it’s definitely in my kids top three because they love candy so some of the problems that Hershey’s ran into is that they try to implement the product the sap product in an unreasonably short short period of time and in fact just from the outside looking in it looks and sounds like it was never going to happen and those unrealistic expectations caused the first Domino to fall which led to a lot of other problems later on throughout the implementation and finally one of the biggest mistakes if not the biggest mistakes that Hershey’s made along with their their implementation Partners is that they decided to go live during a busy holiday season when chocolate is most readily bought by customers and so this was a case where the implementation planning wasn’t very well thought out or if it was thought out the risks were were not well mitigated and it’s just a good reminder that we need to think long and hard about when we go live how it affects our day-to-day business as a way to ensure that we don’t run into operational disruptions coming and number five on our list is Miller Kors the beer company and they also struggled with their Earp implementation they started their sap implementation in 2013 and spent roughly $100 million on the project and as a result of the implementation they’re suing their system integrator which was HCL in this case the indian-based firm and they’re suing for hundred million in Damages trying to recover the damages that were resulting from this sap implementation now the really interesting thing about this to add insult to injury is that hcl’s response publicly to the law suit was a bit flippant uh their response was it’s just one client we have several other reference clients available for every one client that has something bad to say about us so I wasn’t involved in this project I don’t know the inside details but it sounds a bit like there’s there’s some finger pointing going on there but either way it’s something that could have been avoided and we’ll talk more at the end of this video on how to avoid some of those failures but that’s enough to land Miller cors uh within our top 10 number four is Revlon the consumer product company they had an sap project recently and the interesting thing about this is they announced it in a financial filing that’s how the news of the failure broke to the markets and the markets didn’t respond well their stock dropped about 6.9% the day after that filing and the announcement that their sap project had failed now just a little background on this and this is really interesting if you go read the financial filing and the SEC filing they actually outline in a fair amount of detail what happened with this sap implementation so it’s really interesting to go read uh because they’re basically explaining what happened and why it had the effect did on the business but in a nutshell to paraphrase some of what they said in that filing is that they first went live with one of their manufacturing plants in North Carolina and the minute they went live they weren’t able to ship product they lost customer orders they lost visibility to their supply chain and it essentially brought that plant to its knees and it wasn’t able to to manufacture distribute or sell products anymore at least in the short term after the go live and the other interesting thing is because of some of those challenges they had to exped shipments so as they were tracking customer orders and as customers were complaining about late orders they were spending a lot of money Expediting shipments for their customers another interesting aspect and another contributing factor to this failure is that at the time they were implementing sap they had just recently acquired the company Elizabeth Arden and they were trying to figure out how they were going to integrate that company into the core Revlon operations at the same time they’re trying to implement sap so here they are trying to implement a new technology at the same time they’re just trying to figure out how to fit together all of their operations and it created somewhat of a moving Target it sounds like in terms of how that transformation was going to go so when we talk about Erp successes or failures one of the big indicators is Roi what kind of return on investment did we get for the time and cost and money that we put into the implementation in the case of revline it wasn’t so great there’s a negative Roi in the form of lost sales lost customer uh value or lost customer service uh there is a intangible number that they didn’t quantify but they said that there was a material effect on the executive’s time and the amount of time they had to spend trying to recover this and deal with all the problems that resulted from that implementation so I don’t know how you quantify that but that sounds like it’s pretty significant there’s also an increase in capital cost increase in operating expenditures they couldn’t pay their vendors uh they couldn’t uh file their regulatory requirements and Regulatory reports to the to the state and federal regul ERS they had expedite shipments and they lost sales so a lot of problems in that implementation number three on our list is Nike the well-known consumer product company that many of you may buy from and the company spent $400 million to upgrade their Erp systems recently and that didn’t go so well obviously or they wouldn’t be on the list but some of the business damages that resulted from the implementation were that the company had to take a loss of around $100 million or they rode off $100 million of that implementation the stock price dropped by around 20% according to one outlet that we we reviewed and preparing for this and the company had to invest another five years and another $400 million to get the project on track and to make the project successful now from what we understand again outside looking in and and what we see in the public forums is it sounds like the the project is back on track and they’re getting value out of their Erp system but the big question is did they need to spend that much money was it worth the heartache could they have done it better and they could they have optimized the way that they went through the transformation coming in number two is National Grid the large utility company in the US National Grid invested over a billion dollars on their sap implementation and yes I said a billion not a million or any other number but1 billion dollars plus on their sap implementation and it failed the reason we can say with certainty to that failed were some of the results that they also publicly announced and that was widely reported in the media as result of their go live some of the metrics that came out of the company as a result were that uh for example the company had to spend aund million in services to support the implementation after the fact so after they went live they spent another $100 million just supporting and stabilizing the system as it was rolled out they also had two system integrators they had Whi proo involved and actually they filed a lawsuit against whpr Pro and you can find in on my YouTube channel a whole video that talks just about the National Grid versus wiipro lawsuit but they had wiipro whom they sued and they also ended up bringing in ernston young a second system integrator and a second expensive integrator to help support the implementation because it wasn’t going well with whpr Pro by the end of the project the company was spending about $30 million a month just supporting the project and trying to get the product up and running and to get through the implementation which for any siiz company is just a ridiculous amount of money to be spending on trying to implement new technology in addition some of the the end results of their operations after go live their their whole process for the period end closed used to take four days before they rolled out the new Erp system it took 43 days after they went live so definitely a negative Roi there after spending all that money and then finally their post go live accounts payable processes resulted in about 15,000 unpaid supplier invoices that they just couldn’t process and they couldn’t pay so they had a lot of suppliers and vendors that weren’t very happy with them at the time coming in number one on our list is the United States Navy that is the military branch within the US military that spent over a billion dollars on their Erp implementation since 1998 in fact I think this project is still going on from what I understand but at the time of the most recent data that was available they had already spent over a billion dollars on their ARP project and they had three big system integrators helping them they had IBM they had deoe they had EDS I think is no longer a business but they had those three companies helping them and according to a ga GAO report which is a regulatory company that that looks at accountability and oversight for the government they put out a report saying that there was still no material improvements to the organization as a result of this billion dollar project and the other interesting thing is that they had reduced the scope of the project to not be covering the entire supply chain and financials but just to focus on the financial component of their business so in other words they cut from their scope the whole Shipyard Inventory management piece of it and despite cutting the scope significantly they still spent over a billion dollars and still had trouble uh with the project which by the way also affected 90,000 employees so there 90,000 employees that were stuck trying to deal with this this new system that apparently didn’t deliver a lot of value to the organization and like I said they are still implementing the product and this is the reason why the US Navy’s Erp implementation comes into number one on our list so what gives why did these projects fail and more importantly what can we do to avoid this type of disaster or more likely how can we avoid a more moderate failure that we’re not going to read about in the news but still becomes painful for our organization how can we navigate those pitfalls and what is it we can do to avoid this type of failure well first is to choose the right software make sure you’ve got the right technology supporting your business and that you’re not choosing software and implementing software in bias way the second thing is to choose the right system integrator make sure you have the right partner or Partners helping you implement just because it’s a big name or a well-known name system integrator doesn’t mean that you’re immune to failure or that you won’t get fired or that your project won’t fail and if you look at the top 10 list here from today you’ll notice that there’s a lot of big name system integrators and well-respected system integrators that were involved in those failures and some cases they’re involved in litigation as a result another thing to do is to remember that you are in charge of your project this is your project it’s not the software vendors it’s not your system integrators and you need to do what you need to do to make this project successful if your system integrator isn’t working out course correct either give them clear Direction on what you expect from them or fire them if you need to bring in additional help whatever it is you need and also make sure that you’re the one mitigating risks and identifying risks system integrators generally aren’t a very good at mitigating risks and identifying where the risks are because they’re the the fox guarding the henh house so to speak so you need to have independent risk mitigation as part of this whole concept of making sure that you’re in charge and you do what you need to do to make the project successful the other thing to remember is that operational disruption is your biggest risk and potentially your biggest cost for the implementation to often companies will cut corners and step over dollars to pick up pennies and what they’ll do is they’ll underinvested things like organizational change management they’ll try to unreasonably compress the timeline and they’ll cut the budget budget and they’ll do this all in the name of saving money and thinking that they’re increasing Roi but what they aren’t looking at is what’s going to happen on the other side when they go live and this materially affects their business generally the companies that have operational disruptions find that that money lost and spent after go live is a lot more damaging than the money they could have spent to get it right in the first place early on in the implementation another tip is to focus on business Process Management Define what you want your business processes and your operation to look like Define your business blueprint and let that drive your transformation don’t fall into the Trap of deferring to the technology and assuming the technology is going to allow you or help you figure out how to run your business you need to determine how your business processes need to look that will help you define how your technology can best support your business along those same lines we should also be focused on user acceptance testing make sure that we thoroughly test the product and thoroughly test our business processes and really stress test the overall solution and the End to End Business processes each of these failures shouldn’t have happened and they wouldn’t have happened if they had a stringent and effective user acceptance testing process that would have identified these problems before they go live and it affects their business so it gets back to the concept of you owning this you running this as a business user acceptance testing is no exception is something that could have been avoided had the companies been through the process and been effective in the Reser acceptance testing so that’s something that we recommend that you have an independent third party someone outside the system integrator help navigate and help facilitate uh in your process the next thing is executive leadership make sure that your executives are involved they’re bought in they roll up their sleeves and help make some of the decisions that need to be made as part of the transformation and that they are well informed of what’s happening in the project and aware of the risks that’s a big problem that we see with Executives is they don’t necessarily know what the risks are partly because they’re not being involved enough as they should be but also partly because the project team either doesn’t know or isn’t sharing what some of the real risks are and some of those real decisions that need to be made and some of those decision trade-offs that need to be made as well and then finally make sure you have independent technology agnostic support to help you through the digital transformation that’s one of the best things you can do to ensure that you keep your project on track you don’t have the fox guarding The Henhouse and that you’re doing what’s best for you as a business not necessarily what’s best for your software vendor or system integrator companies like our team at third stage is one such example that can help you through that transformation so I hope this training course is provided you a deeper understanding of Erp systems how to plan for an implementation how to actually execute an implementation and ultimately how to avoid failure along with some of the case studies we’ve discussed here today if you’re looking for more information and more of a deep dive understanding and a takeaway from this training course I encourage you to read two pieces of content that we made available to you one is is our annual digital transformation and Erp report which is a report we publish each year and it covers a number of independent reviews and rankings of different Erp systems as well as some tips and lessons to make your Erp implementation more successful you can find that and read that paper for free by scanning the QR code in front of you or you can go to the links below I also encourage you to read my new book called The Final Countdown it’s a book that talks about Erp implementations digital Transformations how to be successful how to plan for a successful implementation and it takes a lot of the concepts we’ve talked about here in this training and goes even deeper in that book so I encourage you to read that you can buy the book by scanning the QR code in front of you or you can simply go to the final countdown. so I hope you found this information useful and I hope you found this training course useful again if you wouldn’t mind sharing this with your colleagues with your project team members anyone else that you think might benefit from this training I encourage you to do that so I hope you found this useful and hope you have a great day

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • The Philosophy of Surah Fatiha by Dr. Israr Ahmed – Study Notes

    The Philosophy of Surah Fatiha by Dr. Israr Ahmed – Study Notes

    This text is a translation and commentary on the first Surah of the Quran, Al-Fatiha. The author explains the meaning and significance of each verse, referencing various Islamic scholars and traditions. He discusses the importance of seeking guidance from God, emphasizing the inherent capacity for recognizing the divine within humanity. The commentary also explores the philosophical underpinnings of the Surah, linking its verses to themes of prayer, the Day of Judgment, and the path to righteousness. Finally, the author provides practical guidance on the recitation of Al-Fatiha during prayer.

    Surah Fatiha: A Comprehensive Study

    Source Material Review: Surah Fatiha

    Quiz

    Instructions: Answer the following questions in 2-3 sentences each.

    1. According to the text, what are some of the different names given to Surah Fatiha and why is it considered such an important Surah?
    2. What is the disagreement regarding the inclusion of “Bismillah” as the first verse of Surah Fatiha, and what are the differing opinions from various scholars?
    3. Why is the recitation of Surah Fatiha considered essential during Namaz, according to the text?
    4. What are the different opinions regarding whether a person should recite Surah Fatiha when praying behind an Imam, and who holds these opinions?
    5. According to the text, what is the Quran’s philosophy regarding the basic guidance present within every human being?
    6. What are the three main problems in a human’s life, as discussed in the text, that require Allah’s guidance?
    7. In the context of Surah Fatiha, explain the meaning of “Rahman” and “Rahim” and how they relate to the mercy of Allah.
    8. Explain the meaning of “Alhamdulillah Rabbil Aalameen” as presented in the text, and differentiate between “Hamad” and “Shukra”.
    9. How does the text describe the different stages of supplication or prayer within Surah Fatiha, specifically regarding the phrase “Iya Ka Na’budu wa Iya Ka Nasta’een”?
    10. What is the meaning of the phrase “Sirat al-Mustaqeem” and who are the people mentioned as being on this path in Surah Fatiha?

    Answer Key

    1. Some names for Surah Fatiha include Suratul Fa, Kafiya, Afiya, Ummal Quran, and Asas ul Quran. It is considered the “opening” Surah of the Quran, revealed to the Prophet Muhammad in its entirety, making it a foundational text for Muslims.
    2. There is a debate about whether “Bismillah” is the first verse of Surah Fatiha. Imam Abu Hanifa considered it to be a symbol and not a verse, unlike Imam Shafi who believed it is part of the Surah’s seven verses. This difference affects whether the recitation of Bismillah is done loudly or silently in prayer.
    3. The text explains that a hadith declares Surah Fatiha as Salah, meaning prayer. Reciting it is obligatory as the prayer is considered incomplete without it, making its recitation an essential component of Namaz.
    4. There are three main opinions: Hanafi scholars say it’s not recited if praying with an Imam in “free qaat” prayer. Imam Shafi states it’s required in every circumstance. Imam Malik says it is recited silently in the silent prayer, but during loud recitations, the prayer should focus on listening.
    5. The Quran’s philosophy is that basic guidance is within every human heart, and that Quran and the books of Allah activate that consciousness. A person who has pure nature and intelligence can, by themselves, recognize a creator and an afterlife with consequences.
    6. Three major problems are: the proper respect between men and women; the balance of freedom for people and rules or laws; and the distribution of capital and labor to avoid inequality. It is suggested that humans cannot solve these issues on their own, and must therefore rely on divine guidance.
    7. “Rahman” is described as the enthusiasm of Allah’s mercy, a stormy condition, while “Rahim” is described as the medicine of Allah’s mercy, a peaceful state. They both come from the essence of mercy, but have distinct states of application.
    8. “Alhamdulillah Rabbil Aalameen” translates to “all praise and thanks are due to Allah, the Lord of all the worlds.” “Hamad” is both praise and gratitude, while “Shukra” is more specific to thankfulness for a favor received. Therefore, the first is more general, while the second is more particular.
    9. The text describes the movement from praising Allah to a personal and specific act of worship. By saying, “Iya Ka Na’budu wa Iya Ka Nasta’een,” a believer is expressing that they only worship Allah and only seek help from him, surrendering their will and destiny to Him.
    10. “Sirat al-Mustaqeem” means “the straight path.” Those who are on this path include the Ambiya (Prophets), Shohada (Martyrs), and righteous common Muslims, all of whom have been blessed and guided by Allah.

    Essay Questions

    Instructions: Answer the following questions in essay format, drawing on the source material for support.

    1. Analyze the speaker’s personal reflections on his ability to teach and interpret the Quran, considering the challenges he faces and the importance he places on this role.
    2. Explain how the speaker uses the analogy of a scale to illustrate the structure and meaning of Surah Fatiha and the relationship between Allah and his servant in prayer.
    3. Discuss the different opinions surrounding the recitation of Surah Fatiha during Namaz, and analyze the speaker’s preferred position, considering his reasoning for it.
    4. Explore the speaker’s interpretation of the connection between the human being’s inner guidance and the external guidance from Allah, focusing on the necessity of prayer and seeking a clear, straight path.
    5. Critically examine the speaker’s analysis of the concepts of “misguidance” and “deviation” within the context of Surah Fatiha, and discuss his examples of those who have strayed from the straight path.

    Glossary of Key Terms

    Surah Fatiha: The first chapter of the Quran, considered a foundational prayer.

    Namaz/Salah: The Islamic prayer, a pillar of Islam.

    Daura Tarjuma Quran: A session of reciting and translating the Quran.

    Surah: A chapter in the Quran.

    Huzoor: A term of respect for the Prophet Muhammad.

    Nuzool: The revelation of the Quran.

    Ayat: A verse in the Quran.

    Hadith: A record of the traditions or sayings of the Prophet Muhammad.

    Ulubari: Refers to those who are well-versed in the hadith.

    Juz: A part or section of the Quran.

    Jahari Rakat: A prayer performed aloud by the Imam.

    Siri Rakat: A prayer performed silently by the Imam.

    Mukt/Free: A person who is praying behind an Imam.

    Salim-ul-Fitrat: A person with a pure, undisturbed nature.

    Salim-ul-Akal: A person with sound intelligence.

    Iman Billah: Faith in Allah.

    Iman Bill: Faith in the divine laws of Allah.

    Sirat Mustaqeem: The straight path.

    Bismillah Rahman Rahim: The opening phrase of the Quran, “In the name of Allah, the Most Gracious, the Most Merciful.”

    Alhamdulillah Rabbil Aalameen: “All praise is due to Allah, Lord of the Worlds.”

    Hamad: Praise with gratitude.

    Shukra: Thankfulness for a favor received.

    Rahman: One of the names of Allah, denoting His boundless mercy.

    Rahim: Another name of Allah, denoting His specific and compassionate mercy.

    Yamal Qayam: The Day of Judgment.

    Iya Ka Na’budu wa Iya Ka Nasta’een: “You alone we worship, and You alone we ask for help.”

    Munam: Those who have been blessed or rewarded.

    Ambiya Kiram: Respected prophets.

    Shohada: Martyrs.

    Gulu: Exaggeration in love or devotion that leads to deviation.

    Masnoon: A practice in Islam based on the actions of the Prophet Muhammad.

    Surah Fatiha: A Divine Guide

    Okay, here is a briefing document summarizing the key themes and ideas from the provided text, with quotes included:

    Briefing Document: Analysis of Excerpted Text

    Introduction:

    This document analyzes an excerpt from a transcribed speech or religious discourse, likely a lecture on the Quran, specifically focusing on Surah Fatiha, the first chapter of the Quran. The speaker provides a detailed commentary, delving into the meaning of the verses, their significance, and the theological and philosophical implications. The speech is presented in a conversational, almost pedagogical tone, often directly addressing the audience. The language frequently incorporates Arabic terms and references to Islamic tradition, suggesting a knowledgeable and religiously-oriented audience.

    Key Themes & Ideas:

    1. Importance of Surah Fatiha:
    • The speech emphasizes the central role of Surah Fatiha in Islam, identifying it as the “Tahi Surat of Quran Hakeem” – the opening Surah of the Quran. It’s noted that “This is the complete Surah which was revealed to Huzoor” (referring to the Prophet Muhammad).
    • Several names of the Surah are mentioned, highlighting its importance and unique place in Islamic belief: “Suratul Fa… Kafiya Afiya Umal Quran Asas ul Quran.”
    • The recitation of Surah Fatiha in prayer (Namaz/Salah) is crucial, described as “Salah” itself. The speaker quotes a Hadith stating, “… one who does not recite Sir Fatiha, there is no prayer for him.”
    1. Detailed Exegesis of the Surah:
    • Bismillah: The phrase “Bismillah Rahman Rahim” is analyzed. “Rahman and Rahim are two names which come out of the essence of mercy… in Rahman is the enthusiasm of the mercy of Allah Ta’ala, stormy condition and in Rahim, the medicine of mercy of Allah Ta’ala.”
    • Alhamdulillah: The speaker clarifies the meaning of “Alhamdulillah Rabbil Aalameen,” explaining that “Hamad is Masaavi, praise plus Shukra” and that it goes beyond a simple thank you, encompassing both praise for God’s attributes and gratitude for His blessings.
    • Malik Yowm-id-deen: The phrase “Master of every day” emphasizes God’s authority over all and the concept of a Day of Judgment: “…on which day it will be decided who will earn what.”
    • Iyyaaka Na’budu wa Iyyaaka Nasta’een: The speaker highlights the shift from praising God to personal declaration: “We worship only You and will worship only You and we ask and will ask for help only from You.” He explains the grammar to demonstrate that the order is significant “the content of Hashar was born” implying a focus and exclusive devotion.
    • Ih’dinas-Siraatal-Mustaqeem: The need for divine guidance is emphasized, and the speaker explains that we request this because we as humans are flawed. The path to divine guidance is defined as the “Sirat Mustaqeem”- the straight path. The need for guidance is tied to complex moral issues such as interpersonal relationships, societal norms, capital and labor.
    1. Human Nature and Guidance:
    • The speaker argues that “the basic guidance is present in the heart of every human being,” which he describes as “Salim-ul-Fitrat” and “Salim-ul- Akal” (undisturbed nature and sound intellect). The concept of fitra is mentioned “Kulo Maalu, every child is born on the basis of Islam,”
    • However, he also believes that human beings need divine guidance in addition to this innate wisdom: “O Lord, now please give me the guidance… My wisdom can stumble in this.”
    • The role of the Quran and the Prophets is to awaken the inherent consciousness and guide people.
    1. Misguidance and Deviations:
    • The speech warns against the dangers of straying from the “Sirat Mustaqeem,” likening it to a small deviation that can have severe consequences. “The word is because this is what happens, there is a small path from the straight path, which has a few directions at a slight angle, but when you keep walking, the further you move on that path, the more you will move away from Sirat Mustaqeem.”
    • He also discusses those who have received guidance but turn away from it due to “mischievous self,” using the example of the Jews who, despite having a lineage of prophets, rejected guidance, including the Prophet Muhammad.
    • The concept of “Gulu” or excess in love or devotion is also touched upon when referencing how Christians came to believe in Jesus as the son of God. This idea is used to show how a good intention can lead to misguidance, the example being the “love for the Prophet [that] should remain within a limit. If Gulu does it then it is obvious that after that it will lead to misguidance”.
    • A distinction is made between those who intentionally turn from guidance and those who are misled: “…that it is one thing to recognize the bad destiny after knowing the truth or to leave it or to argue about it and it is another thing to get trapped in some emotion in some mistake and lose sight of the right.”
    1. The Hadith Qudsi on Surah Fatiha:
    • The speaker references a Hadith Qudsi, where God says, “I swear Salaat bani wa banad,” stating that God has divided the prayer in half between himself and his servant.
    • This Hadith highlights the connection between God and His servants during prayer. “When the person says Alhamdulillah Rabbil Alameen Allah says, my servant The black man has been merciful to us.” “Aa Aiya Ka Nadya, about this when the man says Ja Ka Yaa Nadya Kala Tala Ha Ma Bani Wa It is between me and my servant” In this tradition it is explained that the first three verses are purely praise of God, the fourth is a pact between God and his servant, and the last three are for the guidance of the servant.
    • This Hadith is presented as clarifying “the meaning of this Surah very well.”
    1. Emphasis on Divine Revelation:
    • The lecture emphasizes that humans cannot discover the correct path on their own and therefore rely on divine guidance, “The philosophy of the Quran is that the basic guidance is present in the heart of every human being, but potentially it is The Quran Majeed or the books of Allah that are revealed activates the dormant consciousness within” This idea of inherent knowledge needing divine assistance is used to tie together the need for both human reason and divine guidance.

    Conclusion:

    The excerpt from the text provides a detailed analysis of Surah Fatiha, emphasizing its importance in Islamic faith and the daily life of a Muslim. The speaker combines scriptural interpretation, theological reflections, and practical guidance, all delivered with the goal of increasing the audience’s understanding and devotion. The lecture shows that the Surah is not just a ritualistic recitation, but a powerful message for human beings to recognize God, seek His guidance, and live according to His will. It demonstrates the profound interrelationship between humans and Allah in the act of prayer, and the continuous need to seek guidance from the divine in all aspects of life.

    Understanding Surah Fatiha and Divine Guidance

    FAQ: Key Themes and Ideas from the Provided Text

    1. What is the significance of Surah Fatiha, and why is it considered the “opening” of the Quran?

    Surah Fatiha is highly significant as it’s the first complete Surah revealed to the Prophet Muhammad. It’s considered the opening of the Quran (“Tahi Surat of Quran Hakeem”), like a key to understanding the rest of the holy book. It holds numerous names, including Suratul Fa, Kafiya, Afiya, Ummul Quran, and Asas ul Quran. It is also a necessary part of prayer, with the Hadith stating “La Sala Mal Fa Kitab” – there is no prayer without the recitation of Surah Fatiha. Its first verse “Bismillah Rahman Rahim,” though debated in its inclusion as a verse of Fatiha, is always present as a symbol of beginning with God.

    2. What are the different opinions on reciting Surah Fatiha during prayer, particularly when following an Imam?

    There are varying opinions on whether to recite Surah Fatiha when following an Imam in prayer. The Hanafi view is that if the Imam is reciting aloud, the followers do not recite Fatiha. Imam Shafi, however, believes that it must be recited by all, regardless. Imam Malik suggests that it should be read in silent prayers, while in loud prayers, the followers should listen attentively to the Imam’s recitation. The text favors the view of Imam Malik, seeing it as the most valid way to avoid confusion.

    3. How does the text describe the inherent guidance within human beings, and how does the Quran interact with it?

    The text posits that every human being possesses innate guidance, a dormant consciousness waiting to be activated. This is based on the Hadith stating, ‘Kulo Maalu,’ that every child is born on the basis of Islam. The Quran, as the revealed word of God, awakens this dormant consciousness. Salim-ul-Fitrat-Insan (a human with undisturbed nature) and Salim-ul- Akal- Insan (a human with sound intelligence) can, without specific prophetic guidance, arrive at the understanding that there is a single Creator and that there is life after this one.

    4. What does the concept of “Sirat Mustaqeem” mean, and how does Surah Fatiha guide one towards it?

    Sirat Mustaqeem translates to the straight path. It is a central theme of Surah Fatiha, with the prayer “Guide us to the straight path.” The text emphasizes that even a slight deviation from this straight path can lead one astray. The Surah also leads to a stage where a person asks God for further guidance, since their own wisdom is not perfect, and it is crucial to follow God’s guidance to remain on the correct path and not be misled by temptation or ego.

    5. How does the text explain the names “Rahman” and “Rahim” within the phrase “Bismillah Rahman Rahim?”

    Rahman and Rahim both derive from the essence of mercy. Rahman denotes the enthusiastic and powerful mercy of God, described as being in a “stormy condition.” In contrast, Rahim represents the constant and gentle medicine of God’s mercy, likened to the peaceful flow of a river. The text emphasizes that both these forms of mercy exist simultaneously, though human perception can only grasp one at a time.

    6. What is the significance of “Alhamdulillah Rabbil Aalameen” and how does it relate to “Hamad” and “Shukra”?

    “Alhamdulillah Rabbil Aalameen” translates to “All praise and thanks are due to Allah, the Lord of all the worlds”. The text explains that Hamad means praise combined with thankfulness, and that Shukra is gratitude based on receiving a benefit, whether or not someone is benefiting. It stresses that praise of God includes both His inherent beauty and the immeasurable blessings He bestows. This verse encompasses both these aspects, giving praise for all of God’s beautiful qualities and gratitude for His blessings as the Lord of all worlds, meaning the master of life, the One who provides for and nurtures all of existence.

    7. How does the text explain the verse “Iya Ka Na Budu Wa Iya Kanta Na Stain”?

    “Iya Ka Na Budu Wa Iya Kanta Na Stain” is translated as “We worship only You, and we ask for help only from You.” The text highlights the grammatical structure where the object of the verb comes first, emphasizing exclusivity. This verse represents a promise, an agreement to worship God alone and to seek help from Him alone. It’s described as a major pledge, indicating complete surrender and dependence on God. It acknowledges that one has reached the point of asking for guidance through God’s grace.

    8. According to the text, what are the three key issues for which humanity needs guidance from Allah alone, and what is the importance of “steadfast guidance”?

    The text identifies three crucial issues where humans require guidance from God: (1) how to balance respect and authority between men and women, as humans are inherently biased; (2) the balance between freedom and order in society, as people want liberty, but not to the extent that social order breaks down, which humans can’t judge properly; and (3) determining the just share of capital and labor in production. Humans are incapable of fairly determining these things. The text emphasizes that “steadfast guidance” is needed at every step and is a continuous process, not a one-time event, and those who follow God’s path will have their guidance increased, and that by maintaining this guidance and being steadfast in it, a person can avoid being led astray.

    A Commentary on Surah Fatiha

    Okay, here is a timeline and cast of characters based on the provided text.

    Timeline of Events

    This text is not a historical account in the traditional sense, but rather a detailed commentary on the Surah Fatiha from the Quran. Therefore, the timeline is primarily about the progression of thought and the unfolding of the speaker’s analysis.

    • Past (Referenced): 68 years prior to the speech, the speaker mentions experiencing different types of residences and receiving advice not to take on a large responsibility. This serves as a personal note about his age and life experience prior to the talk.
    • Present:The speaker begins the current year’s Namaz Taraweeh with Daura Tarjuma Quran.
    • He reflects on his age and diminished mental sharpness.
    • He begins the discourse by reciting Surah Fatiha.
    • The speaker gives a detailed linguistic and theological analysis of the Surah Fatiha including its various names and meanings.
    • He examines the different opinions about reciting Surah Fatiha during prayer and the roles of Imam and Mukt.
    • He discusses the philosophical aspects of the Quran and its innate guidance within humans.
    • The speaker explores the concept of divine guidance and how it fits with the human experience of choice and decision-making.
    • The speaker offers further commentary on aspects of prayer and the significance of verses from the Surah, including the meanings of Rahman and Raheem.
    • He elucidates the importance of the promise made to worship God alone, and the need for guidance.
    • He analyses the concept of “Sirat al-Mustaqeem” (the straight path).
    • He addresses various pitfalls and deviations along the path of faith, including misguidance stemming from human error or passion.
    • He touches on the concept of the Day of Judgment.
    • The speaker ends the analysis of Surah Fatiha by connecting the Surah to a hadith Qudsi to explain the relationship between Allah and his servant during prayer.
    • He relates the analysis of this Surah to the concepts of prayer and the experience of the Divine.

    Cast of Characters

    • The Speaker: An elder individual, most likely a religious scholar or Imam, who is delivering a lecture or sermon on the Surah Fatiha during the Namaz Taraweeh. He reflects on his aging mind but expresses pride in his role in the community. While his name is not explicitly mentioned in the provided excerpt, his detailed analysis and personal reflections are central to the entire text. He shows familiarity with varied Islamic scholarship.
    • Allah: The central figure in the text, although not a character in the usual sense. He is the God in Islam and the subject of praise, worship, and the source of guidance. The speaker spends a considerable amount of time describing his qualities and how they are represented in the Surah Fatiha.
    • Huzoor (The Prophet Muhammad): A figure revered by the speaker. The Quran was revealed to him and his guidance is central to the religious discussion in the text.
    • Imam Shafi Rahmatullah: A prominent Islamic scholar and founder of the Shafi’i school of jurisprudence. His opinions on reciting Surah Fatiha in prayer are cited in the text.
    • Imam Abu Hanif Ralla: A highly respected scholar and founder of the Hanafi school of jurisprudence. His views on the verse Bismillah and its relationship to Surah Fatiha is discussed.
    • Imam Malik Rahmatullah: Founder of the Maliki school of jurisprudence. His opinion regarding the recitation of Surah Fatiha is also referenced in the text.
    • Hazrat Luqman (Agha Sir Luqman): A wise figure, referenced as reflecting the philosophy of the Quran. His wisdom and knowledge are held as an ideal.
    • Hazrat Sulaiman al-Salam (Solomon): A prophet whose letter to Malka Saba (Queen of Sheba) is mentioned as the only other place the verse “Bismillah Rahman Rahim” is part of a text.
    • Malka Saba (Queen of Sheba): A historical figure whose interaction with Prophet Solomon is alluded to in a Quranic context.
    • Hazrat Abu Huraira Raz Allah Taala: A companion of the Prophet Muhammad and a prominent narrator of hadith, whose hadith is used in the discussion of Surah Fatiha.
    • Qari Abdul Basit Abdul Samad: A famous reciter of the Quran, whose style of recitation is mentioned in the context of the speaker’s analysis of Surah Fatiha.
    • Moses and Aaron: Prophets from the Jewish tradition, who are mentioned to illustrate the continued line of prophets within the context of a discussion on the Jewish faith and the turning away from guidance.
    • Isa (Jesus): A prophet in Islam (and Christianity). The discussion of his followers is part of an exploration of deviation from the right path and gulu.
    • Yaya: Identified in the text as a prophet and related to the story of Moses, Aaron and Isa to also illustrate the continued line of prophets in relation to a discussion on guidance.
    • Followers of Hazrat Masih al-Salam (Christians): Referenced in the discussion of deviations from the right path, specifically with regards to Gulu.
    • The Jews: Referenced in the discussion of those who turned away from guidance after they received it.
    • Nasa: A Christian whose faith in Masih is mentioned as an example of following one’s heart despite the evidence of guidance.

    Summary

    The text is a religious discourse centered on the Surah Fatiha. The speaker analyzes the Surah from various angles, including linguistic, jurisprudential, and philosophical perspectives. The timeline is structured around his presentation. The “cast” features mainly historical and religious figures whose teachings and actions are used to underscore the main themes of the lecture.

    Surah Fatiha: A Comprehensive Study

    Surah Fatiha is a significant chapter in the Quran, with several names and interpretations discussed in the sources [1, 2].

    Names and Significance

    • It is known by many names, including Suratul Fa, Kafiya, Afiya, Umal Quran, and Asas ul Quran [2].
    • Surah Fatiha is considered the opening Surah of the Quran [1].
    • It is believed to be the first complete Surah revealed to the Prophet Muhammad [1].
    • It is considered the Tahi Surat of the Quran, meaning the “opening key” [1].
    • It has been declared as Salah in Hadith, which makes it a necessary part of Namaz (prayer) [2].

    Verses and Interpretations

    • The Surah consists of seven verses, though there are differing views on the inclusion of “Bismillah” as a verse [2].
    • Some scholars, like Imam Shafi, consider the “Bismillah” to be part of Surah Fatiha, while others, like Imam Abu Hanifa, do not [2].
    • The verses are seen as a dialogue between Allah and his servant [3].
    • The first three verses are considered to be praise of Allah, while the last three verses are considered to be for the servant of Allah [3].
    • The verse “Iya Ka Na Budu Wa Iya Ka Nasta’in” is seen as a promise to worship only Allah and seek help only from Him [3, 4].

    Recitation in Prayer

    • It is considered obligatory to recite Surah Fatiha in Namaz [2].
    • There are differing opinions on whether it should be recited by those praying behind an Imam [2].
    • Some, like Imam Shafi, believe it should be recited in all situations, whether the Imam is reciting loudly or silently [5].
    • Others, following Hanafi, believe that if you are praying behind the Imam you do not recite Surah Fatiha in any Rakat [5].
    • Imam Malik’s view is that it should be recited in silent prayers, but during loud prayers, one should listen attentively to the Imam’s recitation [5].
    • The word “Amen” at the end of Surah Fatiha is also a topic of discussion, with some saying that it should be said out loud when the Imam is leading a loud prayer [6].

    Themes and Teachings

    • The Surah emphasizes the oneness of God and His role as the creator and master of the universe [5].
    • It highlights the importance of seeking guidance from Allah [4].
    • It speaks to the concept of the day of judgment and the consequences of one’s actions [7].
    • The Surah emphasizes the need to remain on the straight path (Sirat Mustaqeem) and avoid deviation [8].
    • It uses the terms “Rahman” and “Rahim” to describe the mercy of Allah [9].
    • It is believed that all humans are born with an innate guidance, but that the Quran helps to activate that guidance [5, 8].
    • The Surah also makes the connection that guidance from Allah is not always direct, but can come through the wisdom and philosophy of the Quran [10].

    Relationship to Other Religions

    • The word “Amen” is found in Judaism and Christianity, suggesting a close relationship between the languages [6].

    Hadith Qudsi

    • A Hadith Qudsi clarifies the meaning of the Surah, stating that Allah has divided Namaz in half between Himself and his servant [3, 6].
    • The first part of the Surah is for Allah, and the second is for the servant of Allah who is asking for guidance [3].

    These points highlight the significance of Surah Fatiha in Islamic faith and practice, emphasizing its role as a prayer, a guide, and a reminder of the relationship between God and humanity.

    Understanding Surah Fatiha and Core Quranic Concepts

    The sources discuss several aspects of Quranic verses, particularly focusing on Surah Fatiha and its significance [1-3].

    Surah Fatiha

    • Surah Fatiha is considered the first complete Surah revealed to the Prophet Muhammad [1]. It is also considered the Tahi Surat (opening Surah) of the Quran [1].
    • The Surah consists of seven verses, though there are differing views on whether “Bismillah” is included as a verse [2]. Some scholars include “Bismillah” as the first verse, while others do not, which impacts how the remaining verses are counted [2].
    • The verses are viewed as a dialogue between Allah and his servant [4]. The first three verses are considered to be praise of Allah, while the last three verses are considered to be for the servant of Allah [4].
    • The verses that praise Allah include: “Alhamdulillah Rabbil Aalameen”, “Ar Rahman Rahim”, and “Malik Yaumiddin” [4].
    • The verses that relate to the servant of Allah include: “Iya Ka Na’budu Wa Iya Ka Nasta’in”, “Ihdinas Sirat Al-Mustaqeem”, and “Sirat Al-Lazina An’amta Alayhim Ghayril Maghdubi Alayhim Walad-Dallin” [4].
    • “Iya Ka Na’budu Wa Iya Ka Nasta’in” is a crucial verse where believers promise to worship only Allah and seek help only from Him [4, 5].
    • The Surah emphasizes the need to follow the “Sirat Mustaqeem” (straight path), and it asks for guidance to stay on this path [5-7].
    • The recitation of Surah Fatiha in prayer (Namaz) is considered obligatory [2].
    • The Surah uses the names “Rahman” and “Rahim” to describe the mercy of Allah [7].
    • The Surah is also known by many other names, such as Suratul Fa, Kafiya, Afiya, Umal Quran and Asas ul Quran [2].

    Other Verses and Concepts

    • There is a mention of a verse from the letter of Hazrat Sulaiman (Solomon) to Malka Saba (Queen of Sheba), which is: “In min Suleiman Hu Bismillah Rahman Rahim”. This verse is an example of the inclusion of “Bismillah” within a Quranic verse [2].
    • The concept of “Hamad”, which is a combination of praise and thankfulness to Allah, is emphasized in the source [7].
    • There is a discussion of the importance of guidance, and the idea that Allah’s guidance can be a step-by-step process [8].
    • The sources suggest that humans are born with an innate understanding of God and a sense of morality, which can be activated by the Quran [3, 6].
    • There is reference to verses about the day of judgment and the resurrection, highlighting the consequences of one’s actions [3, 5, 9].
    • The sources also mention that the people of Paradise will express their gratitude to Allah in their final destination with the words: “Al Hamdulilla Hana Ma Kuna”, praising God who guided them [10].
    • The Quran provides guidance and a clear path, but it also leaves room for interpretation, as evidenced by the different opinions on the recitation of Surah Fatiha and the inclusion of “Bismillah” [2, 3, 11].
    • The source explains the Quranic concept that emotions can sometimes lead people away from the correct path [12].
    • The Hadith Qudsi states that Allah divided the prayer in half between Him and His servant [4, 11].

    These points demonstrate how the sources explore specific verses and general concepts within the Quran, offering insights into their meaning, significance, and practical application.

    Islamic Guidance: Fitra, Quran, and Divine Assistance

    Islamic guidance, as discussed in the sources, is a multifaceted concept that encompasses both innate human understanding and divine revelation, particularly through the Quran [1]. The sources emphasize the importance of seeking and following this guidance in all aspects of life [2].

    Innate Guidance (Fitrat)

    • The sources suggest that every human being is born with an innate sense of Islam, a “fitrat,” which provides a basic understanding of right and wrong [1, 3]. This innate guidance includes the recognition that there is a creator of the universe and that there is a life after this one [1].
    • This innate understanding is described as a potential that needs to be activated, and the Quran and other divine books serve to awaken this dormant consciousness [1].
    • A person who has a pure nature (Salim-ul-Fitrat) and sound intelligence (Salim-ul-Akal) can reach certain conclusions about the existence of God and the afterlife, even without explicit religious teachings [1].

    Guidance Through the Quran

    • The Quran is presented as a source of guidance that is meant to reinforce the innate understanding of humans [1, 3]. It provides step-by-step instructions for living a righteous life and avoiding deviation from the straight path [2, 4].
    • Surah Fatiha is a prime example of this, as it is not only a prayer but also a guide, with believers asking for continued guidance on the straight path (Sirat Mustaqeem) [2, 5].
    • The concept of “Sirat Mustaqeem” (the straight path) is central to Islamic guidance. It represents the correct way of life that Muslims are encouraged to follow [6].
    • Guidance from Allah is not always direct, but can come through the wisdom and philosophy of the Quran [2].
    • The Quran is believed to provide a balance between individual freedom and divine law [4].
    • The Quran addresses essential aspects of human existence, such as the rights and authority between men and women, and the fair distribution of resources [4].

    Seeking Guidance

    • The sources emphasize the importance of constantly seeking guidance from Allah through prayer [3, 5].
    • The sources highlight that even after a person has reached a level of understanding about God’s existence and the afterlife, they must still pray for guidance, as human wisdom is limited [3].
    • The need for guidance is not just about understanding basic principles but also about making correct decisions in daily life [4].
    • The sources make the distinction that guidance is not just about knowing what is right, but also about taking the right path, and avoiding getting caught in emotion or mistakes that would take one away from the path [7].
    • Those who follow guidance are described as being on a path that leads them closer to Allah, and their guidance increases with every step [2].
    • The sources suggest that even those who have recognized the truth and received guidance can still stray due to arrogance or other negative traits, demonstrating a continued need for guidance [7, 8].
    • Guidance is needed at every step of life, both in terms of big decisions and small, daily choices [2].

    Divine Assistance

    • The sources state that Allah is the ultimate source of guidance, and believers must rely on Him for help in staying on the correct path [2, 3, 5].
    • The verses of Surah Fatiha are described as a form of dialogue between Allah and his servant, where the servant seeks guidance from Allah [9].
    • The Hadith Qudsi mentioned in the sources describes how Allah has divided prayer between Himself and His servant, which shows how the servant can seek divine assistance [9].
    • The sources also state that divine guidance can come in different forms, like step-by-step instructions, and that God can show the right path at any time [2].

    Consequences of Guidance and Misguidance

    • The sources mention that there are consequences for both following and rejecting divine guidance [2, 10].
    • Those who follow the guidance will ultimately enter paradise [8].
    • Those who reject guidance due to arrogance, jealousy, or other reasons are described as misguided [7, 8].
    • The example of the Jews, who were given guidance but rejected it, is used to illustrate the consequences of turning away from the truth [8].

    In summary, the sources present Islamic guidance as a combination of innate human awareness, divine revelation, and constant seeking of help from Allah. It is a path that requires both intellectual understanding and continuous effort to stay on the straight path.

    Divine Mercy in Islam

    Divine mercy, as portrayed in the sources, is a central concept in Islam, characterized by two key attributes of Allah: Rahman and Rahim [1]. These names, both derived from the essence of mercy, are used to describe different aspects of Allah’s compassion [1].

    Rahman

    • This attribute embodies the enthusiasm and intensity of Allah’s mercy [1]. It suggests a powerful and overwhelming display of divine compassion [1].
    • The source uses the analogy of a storm in the ocean to describe this attribute, highlighting the forceful and encompassing nature of this mercy [1].

    Rahim

    • This attribute signifies the medicinal aspect of Allah’s mercy [1]. It indicates a gentle and healing form of compassion, like a calm river [1].
    • The source contrasts this with the stormy aspect of Rahman, showing that both qualities of mercy exist simultaneously [1].

    Interconnectedness

    • The terms Rahman and Rahim are used together in the phrase “Bismillah Rahman Rahim,” highlighting that both attributes are constantly present [1].
    • This combination suggests that Allah’s mercy is both powerful and gentle, encompassing all aspects of compassion [1].
    • The sources state that these two attributes are always present at all times [1].
    • There is no word between the two names, signifying that the two attributes are interconnected and harmonious [1].

    Manifestation of Mercy

    • The sources emphasize that Allah’s mercy is boundless and beyond human comprehension [1, 2].
    • The blessings and favors bestowed upon humanity are seen as manifestations of Allah’s mercy [1, 2].
    • The act of providing guidance to humanity is seen as an act of mercy [3, 4].
    • The Quran is also understood to be a source of mercy from Allah [5].
    • The mercy of Allah extends to both those who are on the right path and those who are seeking it [6].
    • The need to constantly seek guidance from Allah, even after understanding basic principles, demonstrates the need for his mercy [3, 4].
    • The Hadith Qudsi, which explains the meaning of Surah Fatiha, reveals the merciful nature of Allah, dividing the prayer between Himself and His servant [7, 8].

    Human Response to Mercy

    • The concept of “Hamad,” which combines praise and thankfulness, is how believers should respond to Allah’s mercy [1].
    • The sources emphasize that while we cannot fully praise Allah as He deserves, we can acknowledge his favors and blessings [2].
    • The sources also state that a believer’s surrender to Allah in worship is also in response to Allah’s mercy [9].
    • Believers are encouraged to reflect on Allah’s attributes of Rahman and Rahim to strengthen their relationship with Him [2].
    • The awareness of divine mercy should inspire believers to seek guidance from Allah and strive to live righteously [4].

    Balance

    • The understanding of Allah’s mercy, both the stormy and calm aspects, helps in comprehending the nuances of His divine nature [1].
    • The sources contrast the concept of divine mercy with the potential for human error and misguidance, indicating that divine mercy is necessary to stay on the right path [6].
    • The source makes clear that emotions and love should remain within limits and should not lead to misguidance, which is an important contrast to the boundless nature of divine mercy [6].

    In summary, the sources present divine mercy as a fundamental aspect of Allah, expressed through the attributes of Rahman and Rahim. This mercy is not only a source of blessings and favors but also a constant presence that guides and supports believers on their spiritual journey [1, 2]. The emphasis on both the intensity and gentleness of divine mercy demonstrates the comprehensive and compassionate nature of Allah [1].

    The Day of Judgment in Islamic Belief

    The sources discuss the Day of Judgement as a significant event in Islamic belief, emphasizing its importance in understanding the consequences of one’s actions and the ultimate accountability to God [1-3].

    Key Concepts

    • Accountability: The Day of Judgement is presented as a time when every individual will be held accountable for their deeds in this life [2, 3]. This accountability is a central theme in the sources, stressing that one’s actions have consequences.
    • Divine Justice: The sources state that the Day of Judgement is the day when it will be decided who will receive what reward [2]. It is a day of reckoning, where the balance of good and bad deeds will be weighed. This concept of justice is integral to the Islamic worldview presented in the sources [2].
    • Resurrection: The sources mention that on the Day of Judgement, after death, all humans will be brought back to life [2]. The resurrection is a crucial step for the final judgement and is a belief emphasized in the sources.
    • Master of the Day of Judgement: Allah is described as the master of the Day of Judgement [2]. The sources emphasize that Allah has ultimate authority on this day.
    • Divine Authority: The sources state that on the Day of Judgement, the authority will belong to Al-Wahid Kahar, which means “the One, the Subduer”. This highlights the absolute power and control of Allah over the events of this day [3].

    Relationship to Human Actions

    • The sources suggest that the belief in the Day of Judgement should influence how people live their lives [2]. The awareness of this day is meant to encourage believers to act righteously, understanding that they will be judged.
    • The sources highlight that the actions of this life will have their consequences in the next life, with the Day of Judgement being the culmination of this [1, 2].
    • The sources also suggest that it is important to live life keeping the Day of Judgement in mind, seeking to purify one’s heart and mind in preparation for the reckoning [3].

    Surah Fatiha and the Day of Judgement

    • The sources make clear that in Surah Fatiha, the verse “Malik Yaumiddin” (“Master of the Day of Judgment”) emphasizes Allah’s sovereignty over the Day of Judgement [2, 3].
    • The recitation of Surah Fatiha is presented as a promise to worship Allah and seek help only from Him, with the Day of Judgement as the ultimate day of accountability [3].

    Significance

    • The Day of Judgement is an important part of the guidance that is present in the Quran and a foundational aspect of Islamic teachings discussed in the sources [1, 2].
    • The sources indicate that the belief in the Day of Judgement is linked to the idea of divine justice, where every person will receive what they deserve based on their actions [2].
    • The Day of Judgement serves as a motivation for believers to live a life of obedience to God, with the understanding that their actions will ultimately be judged [2, 4].

    In summary, the sources present the Day of Judgement as a crucial aspect of Islamic belief, characterized by divine justice, accountability, and resurrection. The belief in this day is designed to encourage believers to live a life in accordance with divine guidance. The sources also highlight that the understanding of the Day of Judgement is integral to the messages of the Quran and that it is a central concept in the Surah Fatiha.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Al Riyadh Newspaper, April 3, 2025: Internal Affairs, MBS Directives, Charitable Drives, US Trade Policies

    Al Riyadh Newspaper, April 3, 2025: Internal Affairs, MBS Directives, Charitable Drives, US Trade Policies

    Al Riyadh newspaper on Thursday, April 3, 2025, covers a range of topics. A primary focus is on Saudi Arabia’s internal affairs, including Crown Prince Mohammed bin Salman’s directives aimed at balancing the real estate sector and initiatives celebrating Eid al-Fitr across various regions with community events and charitable drives. The publication also reports on regional issues, such as Israel’s actions in Gaza and the West Bank, condemnation from Saudi Arabia, and Lebanese-Saudi efforts to restore trust. Internationally, the paper examines the potential impact of US trade policies on tourism and the stabilization of oil prices amid geopolitical tensions and production adjustments. Furthermore, it details Saudi Arabia’s development of “The Footsteps of the Prophet” trail in Medina, aiming to enrich religious tourism. Finally, updates on local Eid festivities and the temporary free parking initiative in central Buraydah are provided.

    01

    Study Guide: Analysis of “20731.pdf”

    This study guide is designed to help you review the key information and concepts presented in the provided excerpts from the Arabic newspaper “Al Riyadh” (issue 20731, dated Thursday, April 3, 2025).

    I. Quiz

    Answer the following questions in 2-3 sentences each.

    1. According to the article, what is the main goal of the Crown Prince’s directives regarding the real estate sector in Riyadh?
    2. What did the Lebanese President Michel Aoun emphasize regarding relations with Arab countries, particularly Saudi Arabia?
    3. According to the analysis by Dr. Khaled Ramadan, what is a significant threat to American tourism in 2025 and why?
    4. What military action did Israel announce expanding in Gaza, according to the news report?
    5. What did the Houthi group report regarding an American airstrike in the Al Hudaydah governorate of Yemen?
    6. What initiative did the Saudi administration of the Eastern Province Health Cluster launch, and what is its purpose?
    7. What temporary decision did the Al-Qassim region’s municipality make regarding parking in central Buraidah, and what was the rationale behind it?
    8. What is the “Prophet’s Migration Trail” project in Medina, and what is its significance according to the article?
    9. What caused the stabilization of oil prices near their highest level in over a month, as mentioned in the economic news?
    10. According to the “Jenaayat Al-Layali Al-Arabiyyah” (The Crime of the Arabian Nights) article, what is one of the negative ways the “Arabian Nights” has been historically viewed in the West?
    01
    رئيسة وزراء الدنمارك تتعهد بدعم جرينلاند في مواجهة ضغوط ترامب

    II. Answer Key to Quiz

    1. The main goal of the Crown Prince’s directives regarding the real estate sector in Riyadh is to regulate land prices and address the concerns of citizens, ultimately aiming to increase Saudi families’ homeownership in line with Vision 2030’s objectives for improved quality of life and social stability.
    2. Lebanese President Michel Aoun emphasized the importance of Lebanon taking necessary measures to restore trust with Arab countries, especially Saudi Arabia, highlighting the Arab world as an economic lifeline for Lebanon and discussing efforts to lift export bans.
    3. A significant threat to American tourism in 2025 is the expansion of the trade war, stemming from the re-election of Trump and subsequent changes in international relations and potential new tariffs, which are expected to decrease international travel to the United States.
    4. Israel announced the expansion of its military operation in Gaza, with the intention of gaining control over wider areas of the sector, bordering Israeli security zones, amidst ongoing air and ground attacks.
    5. The Houthi group reported that an American airstrike targeted a water institution in the Al Hudaydah governorate, resulting in casualties and damage to the building, claiming the victims were civilian workers.
    6. The Saudi administration of the Eastern Province Health Cluster launched the “Eidna Antum” (Our Eid is You) initiative to bring joy to orphans and patients in hospitals and health centers during Eid al-Fitr by distributing gifts and organizing festive events.
    7. The Al-Qassim region’s municipality decided to temporarily make parking in central Buraidah free, replacing the investor in managing the parking, aiming to stimulate commercial and economic activity, especially during Ramadan and Eid al-Fitr.
    8. The “Prophet’s Migration Trail” project in Medina is a development project that traces the historical route of the Prophet Muhammad’s migration, encompassing 41 historical landmarks over 470 kilometers between Mecca and Medina, aiming to enrich the religious and cultural experience of visitors.
    9. The stabilization of oil prices near their highest level was influenced by concerns over escalating geopolitical tensions, particularly President Trump’s threats against Iran, and uncertainty surrounding talks between Russia and Ukraine regarding oil production.
    10. According to the article, the “Arabian Nights” has been historically viewed in the West as perpetuating negative stereotypes of Arabs, including associating them with backwardness, the desert, terrorism, and deceitfulness, and was even used to justify colonial expansion.

    III. Essay Format Questions

    Consider the following questions for essay format responses. Each question encourages a more in-depth analysis of the provided source material.

    1. Analyze the interconnectedness of domestic policy (real estate regulation in Saudi Arabia), regional relations (Lebanon and Arab states), and international events (US trade policy and tourism) as presented in the news excerpts. How do these seemingly disparate issues relate to broader socio-economic and political landscapes?
    2. Discuss the various conflicts and tensions highlighted in the excerpts, including the Israeli-Palestinian conflict in Gaza, the situation in Yemen, and the potential for escalation in the Russia-Ukraine war. What are the stated causes and potential consequences of these conflicts as depicted in the news?
    3. Evaluate the significance of cultural and social initiatives reported in the excerpts, such as the “Eidna Antum” initiative and the “Prophet’s Migration Trail” project, within the context of Saudi Arabia’s Vision 2030. How do these projects contribute to the broader goals of the vision?
    4. Critically assess the analysis of American tourism in the face of potential trade wars and shifting international perceptions. What are the key factors contributing to the predicted decline, and what are the potential economic ramifications for the United States?
    5. Explore the arguments presented in the article “Jenaayat Al-Layali Al-Arabiyyah” regarding the historical and cultural impact of the “Arabian Nights” in the West. How does the author frame the legacy of this work, and what are the implications of this perspective?

    IV. Glossary of Key Terms

    • ولي العهد (Wali al-‘Ahd): Crown Prince. The designated successor to the throne.
    • رؤية السعودية 2030 (Ru’yah al-Sa’udiyyah 2030): Saudi Vision 2030. A strategic framework launched to reduce Saudi Arabia’s dependence on oil, diversify its economy, and develop public service sectors such as health, education, infrastructure, recreation, and tourism.
    • التضخم (Al-Tadakhum): Inflation. A general increase in prices and fall in the purchasing value of money.
    • الإقليمي والدولي (Al-Iqlimi wal-Duwali): Regional and International. Relating to the immediate surrounding area and the broader global context.
    • التسوية والاستغلال (Al-Taswiyah wal-Isti’ghlal): Manipulation and Exploitation. Actions taken unfairly for one’s own benefit.
    • عيد الفطر (Eid al-Fitr): The Festival of Breaking the Fast. A religious holiday celebrated by Muslims worldwide that marks the end of the month-long dawn-to-sunset fasting of Ramadan.
    • التراث السعودي والهوية الوطنية (Al-Turath al-Sa’udi wal-Hawiyyah al-Wataniyyah): Saudi Heritage and National Identity. The cultural legacy and sense of belonging to the Saudi nation.
    • الحوثيين (Al-Huthiyyin): The Houthis. A Zaidi Shia Muslim political and military movement that emerged in Yemen.
    • الرئيس الأميركي (Al-Ra’is al-Amriki): The American President. The head of state and government of the United States.
    • الرسوم الجمركية (Al-Rusum al-Jamrukiyya): Customs Duties/Tariffs. Taxes imposed on goods when transported across international borders.
    • الناتج المحلي الإجمالي (Al- الناتج المحلي الإجمالي): Gross Domestic Product (GDP). The total monetary or market value of all the finished goods and services produced within a country’s borders in a specific time period.
    • جائحة كوفيد-19 (Ja’ihat Covid-19): The Covid-19 Pandemic. The global outbreak of coronavirus disease 2019.
    • الاحتياطي الفيدرالي (Al-Ihtiyati al-Federali): The Federal Reserve. The central banking system of the United States.
    • سندات الخزانة الأميركية (Sanadat al-Khizanah al-Amrikiyyah): U.S. Treasury Bonds. Debt securities issued by the U.S. Department of the Treasury to finance the federal government’s spending.
    • المستوطنين (Al-Mustawtinin): Settlers. Often used in the context of the Israeli-Palestinian conflict to refer to Israeli civilians living in settlements in the West Bank and other occupied territories.
    • الأونروا (Al-Unrwa): UNRWA (United Nations Relief and Works Agency for Palestine Refugees in the Near East). A UN agency that supports Palestinian refugees.
    • الضفة الغربية (Al-Diffah al-Gharbiyyah): The West Bank. A landlocked territory near the Mediterranean coast of Western Asia, the bulk of which is under Israeli occupation.
    • الكومنولث (Al-Kumanwilth): The Commonwealth. A political association of 56 member states, the vast majority of which are former territories of the British Empire.
    • منظمة التعاون الإسلامي (Munazzamat al-Ta’awun al-Islami): The Organization of Islamic Cooperation (OIC). An international organization founded in 1969 consisting of 57 member states, with a collective voice of the Muslim world.
    • وكالة التنمية الأميركية الدولية (Wakalat al-Tanmiyah al-Amrikiyyah al-Duwaliyyah): USAID (United States Agency for International Development). An independent agency of the U.S. federal government that is primarily responsible for administering civilian foreign aid and development assistance.
    • دييغو غارسيا (Diego Garcia): A strategically important atoll in the central Indian Ocean, part of the British Indian Ocean Territory, which hosts a major U.S. military facility.
    • أوبك+ (OPEC+): A group of oil-producing countries comprising the 13 OPEC members and several non-OPEC countries, including Russia.
    • الذهب الفوري (Al-Dhahab al-Fawri): Spot Gold. The price of gold for immediate delivery.
    • الأونصة (Al-Awnsah): Ounce. A unit of weight.
    • موسم جدة (Mawsim Jeddah): Jeddah Season. An annual arts, culture, and entertainment festival held in Jeddah, Saudi Arabia.
    • مجمع الملك سلمان العالمي للغة العربية (Mujamma’ al-Malik Salman al-‘Alami lil-Lughah al-‘Arabiyyah): The King Salman Global Academy for the Arabic Language. A Saudi academy dedicated to promoting and developing the Arabic language.
    • هيئة التراث (Hay’at al-Turath): The Heritage Commission. A Saudi government entity responsible for preserving and promoting the Kingdom’s cultural heritage.
    • بنو قادس (Banu Qadis): Qadisiyah (referring to the Al-Qadsiah FC football club).
    • ديربي (Dirbi): Derby. A sports match between two rival teams from the same city or region.
    • روشن (Roshen): Referring to the Roshn Saudi League, the top-level football league in Saudi Arabia, named after its sponsor.
    • قمة نيوم (Qimmat Neom): The Neom Summit (referring to a football match involving Neom FC).
    • وهم الثراء السريع (Wahm al-Thara’ al-Sari’): The Illusion of Quick Wealth. The belief that one can become rich quickly with little effort, often through unconventional or high-risk means.
    • التحيز التأكيدي (Al-Tahayyuz al-Ta’kidi): Confirmation Bias. The tendency to favor information that confirms existing beliefs or hypotheses.
    • وهم السيطرة (Wahm al-Saytarah): Illusion of Control. The tendency for people to overestimate their ability to control events, especially chance events.
    • الليالي العربية (Al-Layali al-‘Arabiyyah): The Arabian Nights/One Thousand and One Nights. A collection of West Asian and North African folk tales compiled in Arabic during the Islamic Golden Age.
    • الاستشراق (Al-Istishraq): Orientalism. The study of Near and Far Eastern societies and cultures, languages, and peoples by Western scholars; often associated with prejudiced and stereotypical views.
    01

    Global Affairs: Saudi Arabia, Lebanon, US Tourism, Gaza, USAID

    Q1: What are the main objectives of the Saudi Vision 2030 regarding the real estate sector, as indicated by the Crown Prince’s directives?

    The directives of the Crown Prince aim to regulate and balance the real estate sector, particularly in Riyadh, by controlling rising land prices. This is a key part of the broader Saudi Vision 2030 goals, which prioritize enabling citizens, building a vibrant society, fostering a prosperous economy, and establishing an ambitious nation. The focus is on making homeownership more accessible to Saudi families and improving their quality of life and social stability.

    Q2: How is Lebanon attempting to restore confidence with Arab nations, particularly Saudi Arabia, concerning its exports?

    Lebanon is undertaking necessary measures to rebuild trust with Arab countries, with Saudi Arabia being a primary focus. President Aoun emphasized efforts to fundamentally address the issue of declining Lebanese exports, especially fruits and vegetables. He noted that discussions during his visit to Saudi Arabia regarding lifting the ban on Lebanese exports received a positive response. Lebanon is stressing the importance of implementing procedures that facilitate this and restore confidence, recognizing the Arab world, especially Saudi Arabia, as an economic lifeline.

    01
    ترمب يوقع على أمر تنفيذي لفرض رسوم جمركية أميركية مضادة «في العالم أجمع»

    Q3: What potential threats does the expansion of trade wars pose to the American tourism industry, according to the analysis provided?

    The expansion of trade wars, particularly due to the re-election of Trump and subsequent shifts in international attitudes, poses significant threats to American tourism. There is an anticipated decrease in inbound travel to the United States, potentially leading to a $18 billion annual drop in tourism spending in 2025. This decline is linked to a less welcoming international perception, exacerbated by rhetoric and policies viewed as hostile to foreigners and immigrants. Increased tariffs and trade tensions are also causing travelers from key markets like Canada to cancel trips and seek alternative destinations, jeopardizing jobs within the American hospitality sector.

    Q4: What is the current situation in Gaza, as reported in the provided text?

    The situation in Gaza is dire, marked by an escalation of Israeli military operations, including the expansion of ground operations and air strikes targeting various parts of the Strip. This has led to numerous Palestinian casualties and injuries. Basic necessities are severely lacking, with bakeries in southern Gaza closing due to fuel and supply shortages, raising fears of a new phase of famine. International bodies are condemning the Israeli campaign of starvation against civilians. Since the renewed offensive, over a thousand Palestinians have been killed, many of whom are children, and thousands more have been injured.

    Q5: What initiatives were undertaken in Saudi Arabia to celebrate Eid al-Fitr in 2025, as highlighted in the text?

    Several initiatives were launched across Saudi Arabia to celebrate Eid al-Fitr in 2025. In the Eastern Province, the “Our Eid is You” initiative by the Saudi Health Administration aimed to bring joy to orphans, the elderly, and patients in hospitals through visits, gifts, and various festive activities. In the Qassim region, celebrations included traditional food, heritage games at “Khadra’a Buraidah,” and efforts by the Buraidah municipality to beautify parks and squares. The Tabuk desert witnessed traditional Bedouin customs, emphasizing community and solidarity. The Jeddah Governorate also organized two-day Eid festivities featuring artistic installations and celebratory lighting.

    Q6: What was the temporary initiative regarding parking fees in central Buraidah, and what was the rationale behind it?

    The Buraidah Municipality temporarily suspended parking fees in central Buraidah. This decision aimed to boost commercial activity and alleviate financial burdens on shoppers and merchants during Ramadan and in anticipation of the Eid al-Fitr rush. The municipality emphasized that this step was part of ongoing efforts to improve services and enhance the experience of parking users according to the highest standards, while also reorganizing and developing the parking project.

    Q7: What is the “Steps on the Prophet’s Path and the Experience of the Prophetic Migration” project, and what are its objectives?

    The “Steps on the Prophet’s Path and the Experience of the Prophetic Migration” project focuses on developing the region of Medina and the governorates under its jurisdiction by highlighting the historical route of the Prophet Muhammad’s migration. The project aims to enrich the experience of Hajj and Umrah pilgrims by developing and activating numerous historical and cultural sites along the 470-kilometer route between Mecca and Medina. It includes 41 historical landmarks, five sites related to the migration story, and the “Museum of the Migration Region.” The project is expected to accommodate 12,000 visitors daily with various facilities, offering a unique opportunity to trace the Prophet’s journey and reflect on the profound spiritual impact of the Hijra.

    Q8: What are the key concerns and potential consequences of the United States Agency for International Development (USAID) restructuring, as mentioned in the text?

    The restructuring of USAID involves a significant reduction in its workforce, including locally employed foreign nationals, American diplomats, and civil service staff, as part of an effort to align its operations with the “America First” policy. This move is raising concerns about the agency’s ability to continue its humanitarian aid and development programs effectively in over 60 countries. There are fears that the elimination of a substantial portion of its workforce will hinder its capacity to address global challenges and provide necessary assistance, particularly in regions like Ukraine, the West Bank, and Gaza.

    01
    ‏توجيهات ولي العهد تعزز التوازن في القطاع العقاري

    Crown Prince’s Directives: Balancing Saudi Real Estate

    Your query asks to discuss the directives of the Crown Prince. Based on the sources, the directives of the Crown Prince, specifically those related to the real estate sector, are aimed at enhancing balance within the sector.

    The sources emphasize the wisdom and deep-rooted governance of Crown Prince Mohammed bin Salman behind these decisions. These directives are described as embodying courage and an enlightened will to address issues decisively at their core.

    Several reasons and the philosophical underpinnings for these directives are highlighted:

    • They are seen as a wise philosophy that rebalances the relationship between supply and demand in the market.
    • These directives aim to curb monopolies and exploitative practices, opening the way for more rational and sound planning.
    • The importance of these directives is evident in the statements of ministers and their impact on alleviating the suffering of Saudi families and improving their quality of life.
    • It is anticipated that these directives will contribute to redirecting spending towards more diverse and productive sectors, thereby boosting consumption rates and growth in various areas.

    The expected positive outcomes and the government’s approach to ensuring the success of these directives include:

    • Working towards reducing the gap between supply and demand in the real estate market.
    • Efforts to promote balance in the real estate sector, ensuring stability for investors and developers, and achieving the Kingdom’s economic and developmental goals.
    • The government is committed to the ongoing implementation of comprehensive financial reforms for the real estate sector, enhancing citizens’ ability to own their homes and supporting a balanced and sustainable real estate sector.
    • The Real Estate General Authority’s CEO stated that the authority will work on implementing studied mechanisms aligned with the reality of the Saudi market to achieve balance among all parties and enhance the stability of the real estate market.
    • In Riyadh, the directives of the leadership aim to enhance the balance between supply and demand in the real estate sector.
    • The documentation of the rental relationship will extend beyond legal aspects to include pricing controls aimed at limiting price disputes, renewal procedures, and related regulations.
    • The government is not only issuing decisions but also monitoring and activating its tools to address any attempts to manipulate this regulatory step and undermine the vision set by the state.

    Furthermore, the official spokesperson for the Real Estate General Authority cautioned against exploiting the new regulations that the real estate market, particularly in Riyadh, is witnessing.

    01

    Saudi Real Estate Reform: Balancing Growth and Stability

    Based on the sources, the real estate sector in the Kingdom is undergoing significant attention and reform, particularly guided by the directives of the Crown Prince aimed at enhancing balance within the sector.

    The government’s focus is on creating a balanced and sustainable real estate sector. This involves several key efforts:

    • Addressing the imbalance between supply and demand in the real estate market. The Crown Prince’s directives are specifically intended to rebalance the market, moving away from monopolies and exploitative practices towards more rational planning.
    • Implementing comprehensive financial reforms for the real estate sector to enhance citizens’ ability to own homes.
    • Ensuring stability for investors and developers in the real estate market.
    • Achieving the Kingdom’s economic and developmental goals through a thriving real estate sector.

    The Real Estate General Authority plays a crucial role in executing these directives. The CEO emphasized that the authority will implement studied mechanisms aligned with the reality of the Saudi market to achieve balance among all stakeholders and enhance market stability. In Riyadh, the leadership’s directives are specifically focused on enhancing the balance between supply and demand in the real estate sector.

    Furthermore, the documentation of rental relationships is being expanded beyond mere legal aspects to include pricing controls aimed at limiting price disputes, as well as regulations for renewal procedures.

    Minister Al-Jadaan highlighted that these steps are part of broader government efforts to promote balance in the real estate sector, ensuring market sustainability and stability for investors and developers. He also affirmed the government’s commitment to ongoing comprehensive financial reforms to build a balanced and sustainable real estate sector that supports citizens’ ability to own homes.

    However, the official spokesperson for the Real Estate General Authority cautioned against attempts to manipulate the new regulations being implemented in the real estate market, especially in Riyadh, to undermine the state’s vision. The government is actively monitoring and activating its tools to prevent such exploitation.

    The expected positive outcomes of these directives include alleviating the suffering of Saudi families, improving their quality of life, and potentially redirecting their spending towards more diverse and productive sectors, which could boost consumption and growth in various areas.

    In summary, the discussion around the real estate sector in the sources centers on the government’s active intervention, guided by the Crown Prince’s directives, to establish a more balanced, sustainable, and equitable market that benefits both citizens and the national economy, while also emphasizing the need for vigilance against any attempts to undermine these efforts.

    01

    Saudi Housing Ownership: Reforms and Objectives

    Based on the sources and our conversation history, the discussion around housing ownership is a key aspect of the reforms and directives concerning the real estate sector in the Kingdom.

    The sources indicate a strong emphasis on enhancing the ability of Saudi citizens to own their homes. This goal is directly supported by the comprehensive financial reforms that the government is continuously implementing for the real estate sector.

    The directives of the Crown Prince are central to this effort, aiming to create a balanced and sustainable real estate sector. By addressing the imbalance between supply and demand in the market and curbing monopolies and exploitative practices, these directives are expected to contribute to a more accessible housing market for citizens.

    Minister Al-Jadaan specifically affirmed the government’s ongoing implementation of comprehensive financial reforms to bolster the capacity of citizens to own their homes. Similarly, the Real Estate General Authority is working on implementing studied mechanisms aligned with the reality of the Saudi market to achieve balance among all parties and enhance the stability of the real estate market, which indirectly supports the goal of increased housing ownership by creating a more stable and predictable environment.

    The anticipated positive outcomes of these initiatives are expected to extend to alleviating the suffering of Saudi families and improving their quality of life, which includes facilitating home ownership. Furthermore, by redirecting spending towards more diverse and productive sectors, the reforms may indirectly support housing ownership by fostering overall economic growth and stability.

    In summary, the sources highlight that increasing housing ownership for Saudi citizens is a primary objective of the government’s reforms in the real estate sector. These reforms, guided by the Crown Prince’s directives, encompass financial measures and efforts to create a more balanced and sustainable market, ultimately aiming to make homeownership more attainable for a larger segment of the population.

    01

    Kingdom Economic Development Initiatives and Dynamics

    Based on the sources and our conversation history, the discussion around economic development encompasses several key themes, including real estate reforms, tourism, oil market dynamics, government initiatives, and broader economic principles.

    The real estate sector reforms, driven by the Crown Prince’s directives, are explicitly linked to the Kingdom’s economic and developmental goals. These reforms aim to redirect spending towards more diverse and productive sectors, thereby boosting consumption rates and growth in various areas. The focus on creating a stable environment for investors and developers in the real estate market is also intended to contribute to overall economic growth. Furthermore, enhancing citizens’ ability to own homes can have long-term positive effects on economic stability and individual well-being, which are integral to national development.

    The sources also touch upon the potential economic impacts of changes in tourism. A report mentioned the expectation of a decrease in travel to the United States, potentially affecting tourism revenue. Conversely, government initiatives like the development of the “Pilgrim’s Journey on His Steps” project in Medina aim to enrich visitors’ experiences and deepen their understanding of Islamic history, which could boost tourism revenue and contribute to economic diversification. The “Jeddah Season” is also highlighted as a major cultural event aimed at enriching the entertainment experience, likely with the goal of attracting more visitors and stimulating the local economy.

    The oil market remains a significant factor in the Kingdom’s economic landscape. The sources discuss the stability of oil, but also highlight the potential for disruption due to geopolitical tensions, particularly involving Russia and Ukraine, as well as threats of tariffs from the United States on major oil importers like Russia and China. Fluctuations in oil prices and supply can have substantial effects on the national revenue and broader economic planning.

    Several government initiatives beyond real estate and tourism are mentioned, which contribute to economic development in various ways. These include:

    • A program to enhance food safety in Riyadh, which contributes to public health and consumer confidence, potentially impacting related industries.
    • Support for local crafts and productive families, aiming to preserve heritage and empower local businesses.
    • The King Salman Global Academy for the Arabic Language launching a program in Spain to promote Arabic language education, which can foster international cooperation and potentially create economic opportunities in related fields.
    01
    أسعار النفط تهبط دولارين بعد فرض رسوم جمركية أمريكية جديدة

    The discussion around free parking in Buraidah provides a localized example of government intervention with direct economic consequences, both positive (revitalizing commercial activity) and negative (potential loss of investment revenue and challenges with implementation). This illustrates the complexities of economic policy and the need for careful consideration of various factors.

    Finally, an article on “The Illusion of Quick Wealth” offers broader economic insights, emphasizing the importance of rational thinking, understanding risks, and focusing on sustainable wealth building through consistent savings, education, and long-term investments. This perspective underscores the principles that should guide individual financial decisions and, by extension, contribute to a more stable and resilient economy.

    In summary, the sources point to a multi-faceted approach to economic development in the Kingdom, involving significant reforms in key sectors like real estate, initiatives to boost tourism and cultural engagement, careful navigation of the global oil market, support for local industries and public well-being, and an emphasis on sound economic principles for long-term prosperity. The directives of the Crown Prince appear to be a central driving force behind many of these strategic economic initiatives.

    01

    Enhancing Quality of Life in the Kingdom

    Based on the sources and our conversation history, the discussion around quality of life encompasses several key areas, including housing, social well-being, health, and economic stability.

    The real estate sector reforms are explicitly aimed at improving the quality of life for Saudi families. The directives of the Crown Prince are intended to alleviate the suffering of Saudi families by creating a more balanced and sustainable housing market, ultimately making homeownership more attainable [2, and our prior discussion on housing ownership]. This improved access to suitable housing is a fundamental aspect of a higher quality of life. Furthermore, the expectation that these reforms will redirect citizens’ spending towards more diverse and productive sectors suggests a potential for increased access to a wider range of goods and services, contributing to an enhanced quality of life.

    The sources highlight various social and cultural initiatives that contribute to the well-being and enjoyment of life. The “Eidna Antum” initiative aims to bring joy to orphans and social welfare centers during Eid Al-Fitr, directly improving their quality of life during this festive period. Similarly, the celebrations of Eid Al-Fitr across different regions, including Qawara, Asyah in Buraidah, Tabuk, Aseer, the Northern Borders, and the Saudi Consulate in Los Angeles, indicate a focus on fostering community spirit and providing celebratory environments for citizens, residents, and visitors, all of which contribute to social well-being. Events like “Layali Al-Eid” in Jeddah and the diverse programs in “Eid Al-Basta” in Abha further emphasize the efforts to enhance the festive atmosphere and provide engaging activities for people of all ages. The “Jeddah Season”, with its diverse cultural and artistic events, also contributes to the quality of life by providing entertainment and cultural enrichment. The “Pilgrim’s Journey on His Steps” project in Medina aims to enrich the experiences of visitors, which can be seen as enhancing their spiritual and personal well-being.

    Health and safety are also important aspects of quality of life addressed in the sources. The program to enhance food safety in Riyadh directly contributes to public health and well-being by aiming to ensure the quality and safety of food and water products.

    Economic factors play a significant role in quality of life. The discussion on free parking in central Buraidah suggests an effort to revitalize commercial activity, which could make daily life more convenient for residents by improving access to shops and services. The article on “The Illusion of Quick Wealth” indirectly relates to long-term quality of life by emphasizing the importance of financial stability and sustainable wealth building over risky ventures that could lead to financial hardship. As we discussed previously, a stable and thriving economy contributes to the overall well-being of the population.

    It is also important to note that the sources touch upon international issues such as the situation in Palestine and Lebanon. While these events occur outside the Kingdom, they can impact the broader sense of global well-being and security, which can indirectly affect the perceived quality of life.

    In summary, the sources indicate that enhancing the quality of life for citizens and residents is a significant focus in the Kingdom. This is being addressed through real estate reforms aimed at improving housing affordability and quality, various social and cultural initiatives that foster community spirit and provide entertainment, efforts to ensure public health and safety, and attention to economic stability and development.

    Main Headings

    • توجيهات ولي العهد تعزز التوازن في القطاع العقاري The Crown Prince’s directives enhance balance in the real estate sector.
    • المملكة تدين اقتحام وزير الأمن القومي الإسرائيلي للمسجد الأقصى The Kingdom condemns the Israeli Minister of National Security’s storming of Al-Aqsa Mosque.
    • ضبط البوصلة . عبدالله الحسني Compass adjustment. Abdullah Al-Hasani
    • عون: العالم العربي وعلى رأسه السعودية رئة لبنان اقتصادياً Aoun: The Arab world, led by Saudi Arabia, is Lebanon’s economic lung.
    • توسع الحرب التجارية يهدد السياحة الأميركية The expansion of the trade war threatens American tourism.
    • اليمن: سبعة قتلى وجرحى في قصف أميركي Yemen: Seven killed and wounded in US bombing
    • إسرائيل توسع عدوانها على غزة Israel expands its aggression on Gaza

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • A Concise Guide to Software Testing Principles and Practices

    A Concise Guide to Software Testing Principles and Practices

    These excerpts extensively discuss software testing, covering its fundamental principles, the systematic software testing life cycle (STLC), and various testing types and levels. It differentiates between functional and non-functional testing, exploring specific methodologies like black box, white box, and gray box techniques. Furthermore, the text examines test automation, its benefits, implementation steps, tool selection, and comparison with manual testing, including guidance on when automation is most and least appropriate, alongside discussions on agile testing, API testing, regression testing, and the creation of effective test plans and test cases, concluding with a section on common interview questions in software test automation.

    Software Testing Study Guide

    Quiz

    1. What is the primary purpose of acceptance testing? Acceptance testing aims to evaluate the software system’s compliance with business requirements and determine if it is acceptable for delivery to end-users or stakeholders. This level of testing is often performed by management, sales, customer support, and even the end-users themselves.
    2. Differentiate between load testing and stress testing. Load testing evaluates a system’s behavior under increasing expected workload to monitor response time and stability. Stress testing, on the other hand, assesses the system’s behavior at or beyond its anticipated workload limits to determine its breaking point and resilience.
    3. Explain the concept of regression testing. Regression testing is performed after code changes, such as adding new features or fixing bugs, to ensure that these modifications have not negatively impacted existing functionalities or introduced new defects. It verifies that the software still works according to its specifications.
    4. Describe the V-model of software development and testing. The V-model is a sequential development approach where each development phase is associated with a corresponding testing phase. For example, requirements gathering is linked to acceptance testing, high-level design to system testing, detailed design to integration testing, and coding to unit testing, emphasizing parallel verification and validation.
    5. What is equivalence partitioning in black box testing? Equivalence partitioning is a black box testing technique that divides the input data of a software into groups (equivalence classes) such that all members of each group are expected to be processed in the same way. This allows testers to select one representative value from each class to test, reducing the total number of test cases.
    6. Explain the main principle behind boundary value analysis. Boundary value analysis is a black box testing technique that focuses on testing the values at the edges or boundaries of input domains, as well as values just inside and outside these boundaries. The principle is that errors are more likely to occur at these boundary points rather than within the center of the input range.
    7. What is statement coverage in white box testing? Statement coverage, also known as line coverage, is a white box testing technique that aims to ensure that every executable statement in the source code has been executed at least once during testing. It helps identify parts of the code that have not been tested.
    8. Contrast statement coverage and decision (branch) coverage. While statement coverage ensures every line of code is executed, decision coverage (or branch coverage) goes further by ensuring that every possible outcome (true or false) of each decision point (e.g., if statements, loops) in the code is tested at least once. Decision coverage includes statement coverage.
    9. What is the purpose of a test plan? A test plan is a document that outlines the strategy, scope, objectives, schedule, and resources required for testing a software product. It defines what will be tested, how it will be tested, who will do the testing, and when the testing activities will occur.
    10. Describe the objectives of sanity testing. Sanity testing is a quick, initial evaluation performed after a new software build or code changes to determine if the changes are stable and rational enough for further, more rigorous testing. Its objectives include verifying the newly added functionalities, evaluating the correctness of bug fixes, and ensuring that the changes haven’t negatively impacted existing features.

    Quiz Answer Key

    1. Acceptance testing primarily aims to evaluate the software system’s compliance with business requirements and determine if it is acceptable for delivery. It is often performed by stakeholders like management, sales, customer support, and end-users.
    2. Load testing assesses system performance under expected workloads, focusing on response times and stability. Stress testing evaluates system behavior at or beyond anticipated limits to find breaking points and assess resilience under extreme conditions.
    3. Regression testing is performed after code modifications to ensure that new features or bug fixes have not introduced new defects or negatively affected existing functionalities, confirming the software still meets specifications.
    4. The V-model is a software development lifecycle model where each development phase has a corresponding testing phase performed in parallel, emphasizing verification at each stage of development.
    5. Equivalence partitioning is a black box technique that divides input data into groups (classes) that are expected to be processed similarly, allowing testers to choose one representative value per class for testing.
    6. Boundary value analysis is based on the principle that errors are more likely to occur at the boundaries of input domains, so it focuses on testing values at and around these limits.
    7. Statement coverage (line coverage) is a white box technique that ensures each executable statement in the source code is executed at least once during testing.
    8. Statement coverage ensures every line of code is run, while decision coverage ensures that all possible outcomes of each decision point (branches) in the code are tested, thus providing more comprehensive testing than statement coverage.
    9. A test plan defines the strategy, scope, objectives, schedule, and resources for software testing, outlining what, how, who, and when testing activities will take place.
    10. Sanity testing aims to quickly evaluate the stability and rationality of a new software build or changes to decide if it’s suitable for further rigorous testing by verifying new features, bug fixes, and the impact on existing functionalities.

    Essay Format Questions

    1. Discuss the importance of both functional and non-functional testing in ensuring the quality of a software product. Provide examples of different types of each testing category and explain how they contribute to a reliable and user-friendly application.
    2. Compare and contrast different black box testing techniques such as equivalence partitioning, boundary value analysis, and use case testing. Explain the scenarios in which each technique would be most effective and highlight their individual strengths and limitations in identifying software defects.
    3. Analyze the relationship between software development lifecycle models (such as the Waterfall model and the V-model) and the integration of testing activities. Discuss how different models emphasize testing at various stages and the potential benefits and drawbacks of these approaches in ensuring software quality.
    4. Evaluate the significance of performance testing in modern software development, especially for web and mobile applications. Discuss the various types of performance testing (load, stress, endurance, spike) and explain how each helps in identifying and mitigating potential performance bottlenecks and ensuring a positive user experience.
    5. Critically assess the role of automation in software testing. Discuss the advantages and challenges of implementing test automation, considering different types of testing (e.g., unit, regression, performance). Provide examples of tools and frameworks used for test automation and analyze their impact on the efficiency and effectiveness of the testing process.

    Glossary of Key Terms

    • Acceptance Testing: A level of software testing conducted to determine if a system satisfies its acceptance criteria and is acceptable for delivery to the end-users.
    • Alpha Testing: Acceptance testing performed by a specialized team of testers within the development environment.
    • Beta Testing: Acceptance testing performed by real end-users in their own environment.
    • Black Box Testing: A testing approach where the internal structure or code of the software is not known to the tester. Testing is based on inputs and outputs.
    • Boundary Value Analysis (BVA): A black box testing technique focused on testing values at the edges of input domains.
    • Decision Coverage (Branch Coverage): A white box testing technique that ensures every possible outcome of each decision point in the code is tested.
    • Endurance Testing: A type of performance testing conducted to evaluate a system’s behavior under a significant workload for an extended period.
    • Equivalence Partitioning (EP): A black box testing technique that divides input data into groups that are expected to be processed in the same way.
    • Functional Testing: Testing that focuses on the functions and features of the software, verifying that they operate as expected based on requirements.
    • Integration Testing: Testing that verifies the interaction and communication between different modules or components of a software system.
    • Load Testing: A type of performance testing conducted to evaluate the behavior of a system under increasing workload.
    • Non-Functional Testing: Testing that focuses on aspects of the software other than its functionality, such as performance, reliability, and security.
    • Performance Testing: Testing conducted to evaluate the response time, stability, scalability, and resource utilization of a software system under various workloads.
    • Regression Testing: Testing performed after code changes to ensure that existing functionalities have not been adversely affected.
    • Reliability Testing: Testing conducted to determine the probability of failure-free software operation for a specified period under stated conditions.
    • Sanity Testing: A brief initial test to determine if a new software build is stable enough for further rigorous testing.
    • Smoke Testing: A preliminary testing performed after a software build to verify that the critical functionalities are working.
    • Spike Testing: A type of performance testing conducted to evaluate a system’s behavior when the load is suddenly and substantially increased.
    • Statement Coverage (Line Coverage): A white box testing technique that ensures every executable statement in the source code has been executed at least once.
    • Stress Testing: A type of performance testing conducted to evaluate the behavior of a system at or beyond the limits of its anticipated workload.
    • Test Case: A specific set of conditions under which a tester will determine whether a software application, system, or one of its features is working as it was originally designed to do.
    • Test Plan: A document outlining the objectives, scope, approach, schedule, and resources for a testing effort.
    • Unit Testing: Testing of individual software components or modules in isolation.
    • Use Case Testing: A black box testing technique where test cases are designed based on the various ways users can interact with the system.
    • V-Model: A software development lifecycle model that emphasizes the relationship between each development phase and a corresponding testing phase.
    • White Box Testing: A testing approach where the tester has knowledge of the internal structure or code of the software. Testing involves examining the code and its logic.

    Software Testing: Concepts and Techniques

    ## Briefing Document: Software Testing Concepts and Techniques

    This briefing document summarizes the main themes and important ideas presented in the provided sources related to software testing. It covers various types of testing, testing techniques, testing methodologies, test planning, test case writing, and popular testing tools and frameworks.

    **1. Fundamentals of Software Testing**

    * **Purpose:** The primary goal of software testing is to ensure the software application performs well under expected workloads, identify defects before deployment, and validate that the system meets specified requirements and is acceptable for delivery.

    * As stated in “01.pdf”, “The purpose of this test is to evaluate the systems compliance with the business requirements and assess whether it is acceptable for delivery.”

    * **Importance:** Reliable software is crucial across various sectors, including manufacturing, healthcare, defense, and finance, building confidence in business systems.

    * “therefore the question is that how reliable the software application is this question is very very important because the Reliable Software is of great use and the organization working on it can feel the confidence in their business systems.”

    **2. Types of Software Testing**

    The sources broadly categorize testing into functional and non-functional testing.

    **2.1 Functional Testing:** Focuses on what the system does.

    * **Unit Testing:** Performed by developers to test individual code units for correct behavior. Code coverage (line, path, method) is a key aspect.

    * “unit testing is usually performed by a developer who writes different code units that could be related or unrelated to achieve a particular functionality.”

    * **Sanity Testing:** A quick evaluation after a build to ensure major functionalities are working and the build is stable enough for further testing. It’s a surface-level check.

    * “sanity testing aims at checking whether the developer has put some same thoughts while building the software product or not… to determine whether it is eligible for further rounds of testing or not.”

    * **Smoke Testing (Build Verification Testing):** Done after each build release to ensure build stability.

    * “testing that is done after each build is released to test in order to ensure build stability is known as the smoke testing.”

    * **Regression Testing:** Ensures new code changes (enhancements, bug fixes) do not negatively impact existing functionality.

    * “testing performed to ensure that adding new code enhancements fixing of bugs is not breaking the the existing functionality or causing any instability…”

    * **Integration Testing:** Verifies the coherent working of multiple functional modules when combined. Different approaches include top-down (using stubs for missing lower-level modules) and bottom-up (using drivers for missing higher-level modules).

    * “validation of such scenarios is called integration testing”

    * Regarding top-down: “what you do you employ or deploy stops instead of these origal module since they’re not developed yet these TBS simulate the activity of M2 M3 and M4.”

    * Regarding bottom-up: “here the bottom level units are tested first and upper level units are tested then step by step after that.”

    * **Acceptance Testing:** Determines if the system is acceptable for delivery and meets business requirements. Often performed by management, sales, customer support, end-users, and customers. Types include User Acceptance Testing (UAT), Business Acceptance Testing, Contract Acceptance Testing, Operational Acceptance Testing (OAT – non-functional aspects like recovery, compatibility), Alpha Testing (internal specialized testers), and Beta Testing (real end-users in their environment).

    * “acceptance testing is a level of software testing where a system is tested for acceptability the purpose of this test is to evaluate the systems compliance with the business requirements and assess whether it is acceptable for delivery.”

    * **Positive Testing:** Testing with valid inputs to ensure the system behaves as expected.

    * **Negative Testing:** Testing with invalid inputs to verify error handling and system robustness.

    **2.2 Non-Functional Testing:** Focuses on how well the system performs.

    * **Documentation Testing:** Evaluates the quality and accuracy of software documentation (test plans, test cases, requirements). Focus areas include instructions, examples, messages, and samples.

    * “documentation testing helps to estimate testing efforts required and test coverage now software documentation includes test plan test cases and requirements section”

    * **Installation Testing:** Checks if the software is successfully installed and works as expected after installation.

    * “installation testing checks if the software application is successful fully installed and it is working as expected after installation.”

    * **Performance Testing:** Assesses the system’s performance under various conditions. Types include:

    * **Load Testing:** Evaluates behavior under increasing workload.

    * “conducted to evaluate the behavior of a system at increasing workload”

    * **Stress Testing:** Evaluates behavior at or beyond anticipated workload limits.

    * “conducted to evaluate the behavior of a system at or beyond the limits of its anticipated workload”

    * **Endurance Testing:** Evaluates behavior under a significant continuous workload.

    * “conducted to evaluate the behavior of a system when a significant workload is given continuously”

    * **Spike Testing:** Evaluates behavior when the load is suddenly and substantially increased.

    * “conducted to evaluate the behavior of a system when the load is suddenly and substantially increased”

    * Tips for performance testing include establishing a production-like test environment, isolating the test environment, researching and choosing appropriate tools, conducting multiple tests, and being aware of test environment changes.

    * **Reliability Testing:** Assures the product is fault-free and reliable for its intended purpose over a specific period. Types include feature tests, regression tests, and load tests (for reliability under load).

    * “assures that the product is fault-free and is reliable for its intended purpose it is about exercising an application so that failures are discovered before the system deployed.”

    * **Security Testing:** Ensures data and resources are protected from unauthorized access.

    * “helps in determining that its data and resources are protected from possible Intruders”

    **3. Software Development and Testing Models**

    * **V-Model:** An extension of the waterfall model where each development phase is associated with a corresponding testing phase. Emphasizes verification and validation in parallel. Phases include requirement (acceptance testing), high-level design (system testing), detailed design (integration testing), coding (unit testing). Advantages include simplicity, ease of understanding, suitability for small projects, and cost-effectiveness. Disadvantages include inflexibility to changes, testing often squeezed at the end, and lack of inherent defect elimination.

    * “each testing phase is associated with a phase of development cycle”

    * “requirement phase is associated with acceptance testing… high level design phase which relates to system testing… detailed design phase which is in parall to integration testing… coding stage begins where you have another necessary phase that’s nothing but un testing”

    * **Incremental Model:** Views the development process as a series of cycles or builds, with each increment adding specific functionality. Each increment includes design, development, testing, and implementation. Considered a “multi-waterfall” model.

    * “you can consider the incremental model as a multi- waterfall model of software testing the whole incremental process here is divided into various numbers of cycles each of them is further divided into smaller modules”

    **4. Black Box Testing Techniques:** Testing without knowledge of the internal code structure.

    * **Equivalence Partitioning:** Divides input data into classes where all members are expected to be processed similarly. Test cases are designed to cover one value from each valid and invalid partition, reducing the number of test cases.

    * “you divide the number of input values into possible test cases… you pick up a value and perform a test case or execute the test case since rest of the values come in the same category whatever the result you get for the particular value which you take can be applied to that other values as well”

    * **Boundary Value Analysis:** Focuses on testing values at the boundaries of input domains, as errors often occur at these points (maximum, minimum, just inside/outside boundaries). Includes positive and negative testing.

    * “test cases are designed to include values at the boundaries if the input is within the boundary value it’s considered positive testing if the input is outside the boundary value it’s considered negative testing.”

    * **Decision Table Based Technique:** Uses tabular representation of conditions (inputs) and actions (outputs) to identify all possible input combinations and their expected outcomes. Also known as the cause-effect table technique. Useful for functionalities with multiple input dependencies.

    * “a decision table basically is a tabular representation of different possible conditions versus test actions you can think of conditions as inputs while actions can be considered as outputs.”

    * **State Transition Diagram:** Analyzes the application’s behavior for different input conditions in a sequence, especially for finite state systems where the output for the same input can vary based on the system’s history. Involves creating a state transition diagram, a state table, and designing test cases from them.

    * “the tester analyzes the behavior of an application on the test for different input conditions in a sequence… you can use this technique when your system is giving out different output for same input depending on what has happened in the earlier state.”

    * **Use Case Testing:** Derives test cases from use cases, which define user interactions with the system. Focuses on user actions and the system’s responses.

    * “a use case is basically a tool for defining the required user interaction it depends on user actions and the response of the system to those user actions.”

    **5. White Box Testing Techniques:** Testing with knowledge of the internal code structure.

    * **Statement Coverage (Line Coverage):** Ensures every statement in the source code is executed at least once.

    * “every statement in the source code is executed at least once so each line of the code is tested…”

    * **Decision Coverage (Branch Coverage):** Ensures every branch from all decision points in the code is traversed at least once (both true and false outcomes). More comprehensive than statement coverage.

    * “test cases are designed so that each branch from all decision points are traversed at least once”

    * **Condition Coverage (Predicate Coverage):** Ensures all individual Boolean expressions within decision points are evaluated to both true and false.

    * “ensures whether all individual Boolean Expressions have been covered and evaluated it to both true and false”

    * **Multiple Condition Coverage:** Tests every possible combination of true and false values for all conditions within a decision. If there are ‘n’ conditions, 2^n test cases are required.

    * “every possible combination of true or false for the conditions related to a decision has to be tested”

    **6. Experience-Based Testing Techniques:** Rely on the tester’s knowledge, skills, and experience.

    * Mentioned as drawing logically from experience, background, and skills in testing. Testers use strategy, documentation plans, and gained experience.

    **7. Writing Test Cases**

    * **Preparation:** Check for existing test cases, understand characteristics of a good test case (accuracy, traceability, repeatability, reusability, independence), consider different scenarios from the customer’s perspective, and allocate sufficient writing time.

    * “consider if your test case already exists before writing a new test case… know the characteristics of a good test case… consider the different scenarios… give yourself sufficient writing time”

    * **Tool Selection:** Various tools are available, with Excel spreadsheets recommended for basic manual test cases.

    * **Common Mistakes to Avoid:** Combining multiple test conditions into a single test step, which can lead to unclear failure points and hinder flow. Modular test design is recommended.

    * “what if one of the condition fails we have to mark the entire test is failed right… tests need to have a flow here which you cannot actually see so the solution is to write modular test”

    * **Basic Structure:** Typically includes a Test Plan Identifier, Test Objective, Test Object, Test Item, Test Condition, Test Case details (test data, preconditions, expected results), and Test Suit.

    **8. Test Planning**

    * Involves analyzing the product, developing a test strategy, defining objectives, estimating resources, creating a schedule, and determining test deliverables.

    * “you analyze the product after that you develop a test strategy decide on the type of testing that you want to do then Define your objective… estimate the amount of resources… do think about shedule and estimation write that as a point in your test plan and lastly determine the test deliverables”

    * **IEEE 829 Standard:** Provides a standard format for test plan documentation to ensure all necessary requirements are met. Includes sections like Test Plan Identifier, Introduction, Test Items, Features to be Tested, Features Not to be Tested, Approach, Item Pass/Fail Criteria, Suspension Criteria, Test Deliverables, Testing Tasks, Environmental Needs, Roles and Responsibilities, Staffing Needs, Schedule, Risks, and Approvals.

    **9. Regression Testing Specifics**

    * Performed when new features or functionalities are added, or existing ones are modified, to ensure no new defects are introduced and existing functionalities remain stable.

    * A **Traceability Matrix** is used to link requirements, test cases, and defects, aiding in understanding the impact of changes and ensuring adequate test coverage. Can be unidirectional (requirements to test cases) or bidirectional (linking defects back to test cases and requirements).

    * Highlights the importance of tracking the relationship between features and potential dependencies.

    **10. Performance Testing Tools**

    * **Apache JMeter:** An open-source Java-based load testing tool for analyzing and measuring the performance of various services. Advantages include being open-source, platform independence, user-friendly GUI, easy element addition, XML-based test plans, support for various protocols (HTTP, FTP, JDBC, SOAP, JMS, FTP), comprehensive documentation, recording capabilities (HTTP/HTTPS), and report generation. Key elements include Thread Group, Samplers (HTTP Request, FTP Request, JDBC Request, etc.), Listeners (View Results Tree, View Results in Table, Graph Results), and Configuration Elements (CSV Data Set Config, HTTP Cookie Manager, HTTP Request Defaults, Login Config Element).

    * “Apache J meter is a Java open source software that is used as a load testing tool for analyzing and measuring the performance of a variety of services.”

    * Key elements are described in detail with their functions.

    * **LoadRunner:** A comprehensive performance testing tool.

    * **WebLOAD:** An enterprise-grade load testing and performance analysis tool.

    * **NeoLoad:** A performance testing tool for web and mobile applications.

    * **Silk Performer:** A performance and load testing tool for enterprise-class applications.

    * **Tsung:** An open-source multi-protocol distributed load testing tool.

    * **Gatling:** An open-source load and performance testing framework based on Scala, Akka, and Netty.

    * **k6:** An open-source, developer-centric performance testing tool built for the modern web.

    * **Locust:** An open-source load testing tool written in Python.

    * **AppLoader:** Compatible with various Citrix environments and other applications, offering scriptless test scenario creation and automatic script generation.

    * **SmartMeter.io:** An alternative to JMeter, aiming to fix its drawbacks, offering easy scriptless test creation with advanced editing, strong reporting, and CI/CD integration.

    **11. Unit Testing Frameworks**

    * **JUnit (Java):** An open-source unit testing framework for Java, crucial for Test-Driven Development (TDD). Promotes “test first, code later.” Features include annotations (@Test, @Before, @After, @BeforeClass, @AfterClass, @Ignore), assert statements (assertEquals, assertTrue, assertFalse, assertNotNull, assertNull, assertSame, assertNotSame, assertArrayEquals), test fixtures (setup and teardown methods), test suites (grouping test cases), and test runners. Supports exception testing using the `expected` parameter in the `@Test` annotation and parameterized tests.

    * “junit is an open-source unit testing framework for a test driven development environment we call it tdd it supports the core concept of first testing then coding”

    * Annotations and assert statements are explained with examples.

    * **TestNG (Java):** Another popular testing framework for Java, offering more advanced features than JUnit. (Mentioned in the context of JUnit vs. TestNG and TestNG annotations).

    * **NUnit (.NET):** A unit testing framework belonging to the xUnit family, written entirely in C#.

    **12. Sanity Testing Deep Dive**

    * A quick evaluation of software quality after a release to determine if it’s stable enough for further testing. Focuses on new functionalities and bug fixes to ensure they work as intended and haven’t negatively impacted existing features.

    * **Objectives:** Verify new functionalities, evaluate accuracy of new features/changes, ensure introduced changes don’t affect existing functionalities, and assess logical implementation by developers.

    * **Process:** Identify new/modified functionalities, evaluate their intended behavior, and test related parameters to ensure no adverse impact on existing features.

    * **Key Points:** Performed on relatively stable builds, doesn’t require extensive documentation or scripting, focuses on limited functionalities, usually done by testers, is a narrow and deep type of regression testing, and acts as a gatekeeper for further testing.

    * **Advantages:** Speedy evaluation, narrow focus saves time, saves testers’ effort by identifying unstable builds early, identifies deployment and compilation issues, requires less documentation, and provides a quick state of the product for planning.

    This briefing document provides a comprehensive overview of the software testing concepts and techniques discussed in the provided sources. It highlights the different types of testing, methodologies, tools, and frameworks crucial for ensuring software quality.

    Software Testing Concepts and Techniques FAQ

    FAQ on Software Testing Concepts and Techniques

    1. What is Acceptance Testing and what are its different types?

    Acceptance testing is a level of software testing conducted to determine if a system meets the business requirements and is acceptable for delivery. Its purpose is to evaluate the system’s compliance from a business perspective. The different types include:

    • User Acceptance Testing (UAT): Assesses if the product works correctly for the intended users and their usage scenarios.
    • Business Acceptance Testing (BAT): Determines if the product meets the business goals and purposes.
    • Contract Acceptance Testing: Verifies if the product meets the criteria specified in a contract, often performed after the product goes live.
    • Operational Acceptance Testing (OAT): Evaluates the operational readiness of the product, including non-functional aspects like recovery, compatibility, maintainability, and reliability.
    • Alpha Testing: Conducted in the development or testing environment by a specialized internal team (alpha testers).
    • Beta Testing: Performed by real end-users (beta testers) in their own environment.

    2. What is Performance Testing and what are its key types?

    Performance testing is conducted to evaluate the behavior of a software application under expected or extreme workloads, focusing on aspects like speed, scalability, and stability. The key types include:

    • Load Testing: Evaluates the system’s behavior under increasing workload.
    • Stress Testing: Assesses the system’s behavior at or beyond its anticipated workload limits.
    • Endurance Testing: Evaluates the system’s behavior under a significant workload continuously over a long period.
    • Spike Testing: Assesses the system’s behavior when the load is suddenly and substantially increased.

    3. What is Reliability Testing and why is it important?

    Reliability testing ensures that a software product is fault-free and can perform its intended purpose without failure for a specified period. It aims to discover failures before deployment. Types include feature tests, regression tests, and load tests (in the context of reliability). It is crucial because software applications are used in critical sectors, and their reliability instills confidence in business systems.

    4. Can you explain the V-model of software testing and its phases?

    The V-model is a software development lifecycle model where each development phase is associated with a corresponding testing phase, emphasizing the parallel nature of verification and validation. The typical phases include:

    • Requirement Phase: Associated with Acceptance Testing, ensuring the system meets user needs.
    • High-Level Design Phase: Related to System Testing, evaluating compliance of the integrated system with specified requirements.
    • Detailed Design Phase: In parallel with Integration Testing, checking interactions between different system components.
    • Coding Phase: Corresponds to Unit Testing, ensuring individual parts and components behave correctly.
    • The model proceeds up the ‘V’ with testing phases validating the outputs of the corresponding development phases.

    5. What are Equivalence Partitioning and Boundary Value Analysis in testing?

    These are black-box testing techniques used to design effective test cases:

    • Equivalence Partitioning: Divides the input data into groups (partitions) where all values within a partition are expected to produce the same behavior. Test cases are then designed by picking one value from each partition, reducing the total number of test cases.
    • Boundary Value Analysis: Focuses on testing the boundary values of input domains, based on the observation that errors often occur at these limits. Test cases include values at the exact boundaries, just below, and just above the boundaries.

    6. What is Sanity Testing and how does it differ from Smoke Testing?

    • Sanity Testing: A quick evaluation of the quality of a newly released software build to determine if it’s stable enough for further rigorous testing. It focuses on testing the main functionalities and newly introduced changes or bug fixes to ensure they are working as expected and haven’t negatively impacted existing features. It’s often narrow and deep, focusing on specific areas.
    • Smoke Testing: A high-level, superficial test performed on a new build to ensure that the most critical functionalities are working. It aims to quickly identify major issues that would prevent further testing. It’s often broad and shallow, covering end-to-end workflows.
    • Key Differences: Sanity testing is usually performed on relatively stable builds with specific changes, often after a smoke test. It doesn’t typically require detailed test scripts and is conducted by testers. Smoke testing is done on every new build to check basic stability and might involve some scripting.

    7. What are Top-Down and Bottom-Up approaches in Integration Testing?

    These are strategies for integrating and testing software modules:

    • Top-Down Approach: Testing begins with the high-level modules and progressively integrates lower-level modules. If lower-level modules are not yet ready, ‘stubs’ (simulated modules) are used to mimic their functionality. Advantages include early testing of critical modules and a more consistent testing environment. Disadvantages include the need for many stubs and the lower-level modules being tested inadequately until later.
    • Bottom-Up Approach: Testing starts with the lowest-level modules and integrates towards higher-level modules. ‘Drivers’ (programs that call the lower-level modules) are used to simulate the behavior of higher-level components. Advantages include thorough testing of lower-level modules. A major disadvantage is that the basic functionality of the software is tested last.

    8. What is Unit Testing and why is it an important practice in software development?

    Unit testing involves testing individual units or components of a software application in isolation to ensure they function correctly. A unit can be a function, method, or class. It is typically performed by developers. Unit testing is crucial because:

    • It helps identify and fix bugs early in the development cycle, making debugging easier and cheaper.
    • It improves the quality and reliability of the code.
    • It facilitates code refactoring by providing confidence that changes haven’t introduced new issues.
    • It serves as living documentation for how individual parts of the software are intended to work.
    • It contributes to more robust and maintainable software.

    Principles of Software Testing

    The basic principles of software testing play a significant role for a software tester while testing a project. Here are the principles discussed in the sources:

    • Software testing can help in detecting bugs. Testing any software or an application can help in revealing some defects that may or may not be detected by developers during development. However, testing alone cannot confirm that a product is bug-free or error-free. Therefore, it is essential to devise test cases to find as many defects and errors as possible.
    • Exhaustive testing is impossible. It is not feasible to test all combinations of data inputs, scenarios, and preconditions within an application. For example, a single application screen with ten input fields and three possible values would require a vast number of test scenarios. Instead of trying to cover all possibilities, it is better to focus on potentially more significant test cases.
    • Testing should be performed as early as possible. The cost of an error increases exponentially throughout the stages of the software testing life cycle. Starting testing as early as possible helps in resolving detected issues before they have a greater impact later on.
    • Defect clustering. Approximately 80% of all errors are usually found in only 20% of the system modules. If a defect is found in a particular module, there is a higher chance of finding other defects in the same area. Therefore, it makes sense to test that area of the product more thoroughly.
    • Testing is context dependent. Different applications should be tested differently depending on their purpose or the industry. For instance, safety might be the primary concern for a FinTech product, while usability and speed might be more emphasized for a corporate website. The type of testing performed should align with the specific situation and requirements.
    • Error-free or bug-free software is just a myth. The complete absence of errors in a product does not necessarily mean that the testing was successful. Even if a product is polished and functional, if it is not useful or does not meet user expectations, it will not be adopted.

    Software Testing Life Cycle and Methods

    The software testing life cycle (STLC) involves a sequence of steps executed in a definite sequence to organize the software testing process. It is a systematic and planned way of conducting testing. According to the source, the STLC comprises six phases:

    • Requirement Analysis: In this initial stage, the testing or QA team determines what needs to be tested. This includes understanding both functional and non-functional requirements. Functional testing evaluates how the software functions, while non-functional testing covers aspects like performance and security.
    • Test Planning: This phase involves planning how the testing will be conducted. This includes deciding on resources (cost, personnel, time), setting deadlines, and outlining the entire test process. A test plan document is created, which encompasses the plan from the beginning to the end.
    • Test Case Development: Here, step-by-step procedures for test execution are written out, including expected results, actual results, and whether the test passed or failed. Developing comprehensive test cases is a crucial part of the STLC.
    • Environment Setup: Before actual testing begins, the test environment needs to be set up. This involves configuring the necessary software and hardware for the testing teams to execute test cases comfortably, including hardware, software, and network configurations.
    • Test Execution: This is the phase where the test analysis team executes the test scripts based on the chosen strategy and compares the expected and actual results. When test execution begins, the test analysis starts executing the test scripts based on the strategy selected for the project.
    • Test Cycle Closure: This final phase involves a meeting of the testing team to evaluate the complete testing cycle based on factors like test coverage, quality, cost, and time. The team analyzes test result reports to identify areas for improvement and discusses the overall testing life cycle.

    The source also mentions that software testing is broadly classified into static testing and dynamic testing. Static testing involves checking the source code and software project documents to identify and prevent defects early in the STLC without executing the software. This can be done through inspections, audits, and technical reviews. Once initial preparations are complete, the team proceeds with dynamic testing, where the software is tested during execution. Dynamic testing can be further categorized by methods (Black Box, White Box, Gray Box, Ad Hoc), levels (Unit, Integration, System, Acceptance), and types (Functional, Non-functional).

    Software Testing Methods: Dynamic Techniques

    Based on the sources, dynamic testing involves testing software during its execution. The source “01.pdf” elaborates on different software testing methods that fall under dynamic testing. These methods describe the ways in which tests are conducted in reality and include the following:

    • Black Box Testing: This method focuses on the inputs and the expected outputs of the software application without knowing how it works internally or how the inputs are processed. The purpose of Black Box testing is to check the functionality of the software and ensure it works correctly and meets user demands. Testers perform testing without much knowledge of the product’s internal structure. Techniques under Black Box testing include:
    • Equivalence Partitioning: Input values are divided into partitions or classes based on the similarity of their outcomes. Instead of testing every possible input, a value from each class is used. This helps identify valid and invalid equivalence classes, saving time and effort.
    • Boundary Value Analysis (BVA): This technique focuses on testing the boundary conditions of the input domain. It involves testing values at the edges, just above, and just below the defined boundaries, as behavior changes often occur at these points.
    • Decision Table Based Technique: This method uses a tabular representation of different possible conditions versus test actions (inputs vs. outputs). It helps testers identify all combinations of input values, especially when there are many, and the corresponding outputs. It is also known as the cause-effect table technique.
    • State Transition Diagram: This approach analyzes the behavior of an application for different input conditions in a sequence. It is applicable when the system gives a different output for the same input depending on its prior state (finite state systems). It involves creating a state transition diagram, a state table, and then designing test cases from these.
    • Use Case Testing: This technique uses use cases to define required user interactions based on user actions and the system’s response. It is a functional testing approach that doesn’t require programming skills and involves identifying scenarios, defining test cases and conditions, and determining test data for each scenario.
    • White Box Testing: Unlike Black Box testing, this method requires profound knowledge of the software’s code as it involves testing the structural parts of the application. Generally, developers who are directly involved in writing the code are responsible for this type of testing. The main purposes of White Box testing are to enhance security, verify the basic flow of input/output, and improve the design and usability of the product. Techniques under White Box testing include:
    • Statement Coverage: This aims to ensure that every executable statement in the code has been executed at least once.
    • Decision Coverage (Branch Coverage): This method checks both possibilities (true and false) for each decision point or branch in the code to ensure no branch leads to abnormal behavior. It is more powerful than statement coverage.
    • Condition Coverage (Predicate Coverage): This focuses on Boolean expressions and ensures that all individual Boolean expressions within a decision have been evaluated to both true and false.
    • Multiple Condition Coverage: This is an extension of condition coverage where every possible combination of true or false for the conditions related to a decision has to be tested. If there are ‘n’ conditions, 2n test cases might be required.
    • Gray Box Testing: This method is a combination of both Black Box and White Box testing. An experienced tester using this method has partial knowledge of the internal application structure and can design test cases based on this knowledge while still maintaining a Black Box perspective.
    • Ad Hoc Testing: This is an informal testing method performed without any planning or documentation. Tests are conducted informally and randomly, without formal expected results. The tester improvises the steps and executes them without prior design. There is no documentation, test design, test case, or planning involved in Ad Hoc testing. Examples of techniques under Ad Hoc testing include pay testing, monkey testing, and buddy testing.

    Software Testing Levels: Unit, Integration, System, Acceptance

    Based on the source “01.pdf”, there are four main levels of software testing: unit testing, integration testing, system testing, and acceptance testing. These levels progress from testing individual components to testing the entire system as a whole. Let’s look at each of these levels in more detail:

    • Unit Testing: This is the micro level of testing. It involves testing individual modules or a piece of code to ensure that each part, or unit, is working properly. A unit can be a specific piece of functionality, a program, or a particular procedure within an application. Unit testing helps to verify internal design, internal logic, internal parts, as well as error handling. Typically, unit testing is performed by software developers themselves or their peers. In some rare cases, independent software testers might also perform it.
    • Integration Testing: This level of testing is performed after unit testing. It tests how the units work together when individual modules are combined and tested as a group. While each unit might work well on its own, integration testing determines how they perform together and ensures that the application runs very efficiently. It also identifies interface issues between modules. The source mentions a few techniques used in integration testing, including the big bang technique, top-down approach, and bottom-up approach. We further discussed the top-down approach and bottom-up approach in a later part of the source. The top-down approach starts with high-level modules and uses stubs for lower-level ones, while the bottom-up approach tests lower-level units first and then progresses to higher-level units. A sandwich or hybrid approach, combining top-down and bottom-up, is also mentioned.
    • System Testing: As the name suggests, all the components of the software are tested as a whole in this level. The purpose is to ensure that the overall product meets the specified requirements. System testing is particularly important because it verifies the technical, functional, and the business requirements of the software. It is typically performed by independent testers after integration testing and before acceptance testing. System testing often involves a combination of automation testing as well as manual testing techniques.
    • Acceptance Testing: This is the final level of testing and is also sometimes referred to as user acceptance testing (UAT). It determines whether or not the software is ready to be released to the market. Since requirements can change throughout the development process, it’s crucial for the user to verify that the business needs are met before the software is released for commercial use. The source indicates that management, sales, or customer support often performs this kind of testing, and sometimes even the customers and end-users. Different types of acceptance testing mentioned include user acceptance testing, business acceptance testing, contract acceptance testing, operational acceptance testing, alpha testing, and beta testing.

    Each of these levels of testing has a particular purpose and provides value to the software testing life cycle. Some levels, like unit testing, are their own type of testing, while others, like integration testing, have various categories or approaches within them.

    Software Testing Types: Functional and Non-Functional Approaches

    Based on the source “01.pdf”, software testing types are the approaches and techniques applied at a given level of testing to address the requirements in the most sufficient manner. The purpose of testing and the tools or strategies used can change depending on the requirements. Broadly, software testing types are divided into functional testing and non-functional testing.

    Functional Testing: This type of testing focuses on verifying that each function of the software application operates in conformance with the requirement specification. It mainly involves black box testing and is not concerned with the source code. Each functionality is tested by providing appropriate input, verifying the output, and comparing the actual results with the expected results. Under functional testing, the source lists several types:

    • Unit Testing: As discussed earlier, this is a level of software testing where individual units or components of a software are tested. The purpose is to validate that each unit performs as designed. It is typically performed by developers.
    • Integration Testing: This level involves testing where individual units are combined and tested as a group. It verifies that the communication and interaction between different modules work correctly.
    • System Testing: Here, a complete and integrated software is tested. The purpose is to evaluate the system’s compliance with the specified requirements. It is performed after integration testing and before acceptance testing.
    • Interface Testing: This type verifies that communication between different software systems or components is done correctly. It checks if all supported hardware or software has been tested and if the integration between components like servers and databases is functioning as expected.
    • Regression Testing: This testing is performed to ensure that adding new code, enhancements, or fixing bugs does not break the existing functionality and that the software still works according to the specifications. It is carried out every time changes are made to the code to fix defects.
    • User Acceptance Testing (UAT): This is a level of software testing where a system is tested for acceptability. The purpose is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery. It helps handle real-world scenarios according to specifications.
    • Smoke Testing: This is testing done to ensure that the most critical functionalities of the application are working correctly. It is often done after each build is released to ensure build stability and is a high-level test performed on the initial software build.
    • Sanity Testing: This testing is done to ensure that all the major and vital functionalities of the application or system are working correctly. It is generally done after smoke testing and after a build has passed smoke testing and gone through some level of further testing or bug fixes.

    Non-Functional Testing: This type of testing determines the performance of the system to measure, validate, or verify quality attributes of the system. Under non-functional testing, the source lists several types:

    • Documentation Testing: This helps to estimate testing efforts required and test coverage. It involves checking test plans, test cases, and requirements sections for accuracy and completeness.
    • Installation Testing: This type of quality assurance work focuses on what customers will need to do to install and set up the new software successfully. It involves testing full, partial, and upgrade installations, as well as uninstallation processes.
    • Performance Testing: This includes load testing, stress testing, endurance testing, and spike testing. It is conducted to evaluate the behavior of a system under different workload conditions. Load testing evaluates behavior at increasing workloads, stress testing at or beyond anticipated limits, endurance testing under continuous significant workload, and spike testing under sudden and substantial load increases.
    • Reliability Testing: This assures that the product is fault-free and is reliable for its intended purpose. It involves exercising an application to discover failures before deployment.
    • Security Testing: This type aims to strengthen the security of the application, not just in terms of data and information but also affecting the whole functionality of the system. It focuses on areas like network security, client security, access to the application, and data protection.

    The choice of which testing types to perform depends on the requirements of the testing and the specific needs of the project. The source emphasizes that testers determine the right testing for the apps.

    Test Automation engineer Full course in 10 hours [2025] | Testing Course For Beginners | Edureka

    The Original Text

    hello everyone and welcome to this comprehensive full course on automation testing as software applications grow in complexity ensuring their quality becomes crucial so this is where the test automation Engineers play a vital role they design automated testing Frameworks write efficient test scripts and ensure that the software meets the highest standards of performance and functionality so in this course we will walk you through the essential Concepts skills and tools required to become a proficient test automation engineer whether you are a beginner or looking to enhance your testing skills this course will provide you with the knowledge you need now let’s outline the agenda for this automation testing full course we will start by exploring how to become a test automation engineer where we will understand the key skills qualifications and career path to excel as a test automation engineer next we will cover what software testing is where we will learn the fundamentals of software testing its purpose and its role in ensuring product quality then we will move on to the types of software testing where we will explore different types of testing including manual and automated approaches followed by software testing methodologies where we will understand methodologies like agile waterfall and devops for efficient testing strategies after that we will discuss software testing Tools in this we will discover popular testing tools like selenium junit and J meter along with their use cases moving forward we will discuss how to write a test case where we will learn the structure of effective test cases to ensure comprehensive coverage then we will cover what is a test plan where we will understand the purpose of a test plan its components and how to create one effectively next we will explore functional testing here we will explore functional testing principles to verify that the software behaves as expected followed by functional testing versus non-functional testing here we will understand the differences and when to apply each type of testing next we will dive into advanced testing Concepts like what is API testing where we will learn how to validate apis using tools like Postman and dressed ass short after that we will discuss what agile testing is discover how agile testing fits within Agile development methodologies next we will explore what is unit testing where we will learn the importance of unit test and how Frameworks like G units are used then we will move on to what is regression testing where we will explore regression testing strategies to ensure that the code changes do not break existing functionality next we will discuss automation testing here we will understand the principles of automation testing and how it enhances the testing process next the test automation framework using selenium where we will build a structured framework using selenium to automate web applications effectively and finally we will wrap up this course with test automation interview questions to prepare for the frequently Asked interview questions to boost your confidence in your job interview but before we jump into the course content please like share and subscribe to our YouTube channel and hit the Bell icon to stay updated on the latest tech content from edureka edureka’s automation testing course is designed to help you improve and streamline your test automation strategies with a strong focus on real world applications this program ensures comprehensive automation for web-based applications using selenium and devops practices the curriculum includes handsome training in software testing selenium API automation with rest Azure devops integration Java and performance testing with jmeter also edor Rea selenium certification training is designed to help you become a certified automation tester this program covers working with various web element locating strategies and managing your automation environment using supported plugins so enroll in this selum course to gain hands-on experience with widely used automation Frameworks like data driven keyword driven hybrid and bdd so check out the course Link in the description box below with that said let’s get started with our first topic which is how to become a test automation engineer what is software testing so software testing is basically a process of evaluating the functionality of a software application to find any software bugs so it checks whether the developed software met the specified requirements and identifies any defect in the software in order to produce a quality product it is also stated as the process of verifying and validating a software product so it checks whether the software product meets the business and Technical requirements that guided its design and development it works as per the requirement and can be implemented with the same characteristics so now that you know what is software testing let’s see who is a testing automation engineer so the role of the test automation engineer is to design build test and deploy effective test automation Solutions now to fulfill this role the automation engineer applies appropriate automation Technologies to meet the short and long-term goals of the testing organization so now what does automation engineer actually do an automation engineer basically utilizes technology to improve streamline and automate a manufacturing process they are responsible for planning implementation and monitoring of such technology so now let’s move ahead and have a look at the road map that will lead you to become a successful test automation engineer so first of all in order to become an automation engineer you need to have a bachelor’s degree you will likely need to earn a bachelor’s of engineering degree related to to the field in which you want to work for example if you want to become a software Testing Engineer you will need a bachelor’s degree in software engineering now to work in this field you must be comfortable working closely with other professionals you also need mathematics and science and also a little bit of computers and electronics now next up we will need to know about the basic principles of software testing such as finding the presence of any sort of defects how to determine the risk without exhaustive testing early testing defect clustering and how to make a product fulfill business requirements without any error now if you are new to the testing industry one needs to have knowledge of programming languages such as C C++ Java SQL python HTML now along with this if you also have a master’s degree in computer science machine learning statistics or any such certifications related to automation testing it is just an added Advantage now some of the best certifications for a test automation engineer are cast that is the certified associate in software testing csde that is the certified software test engineer and there are many more such certifications so now let’s move ahead and have a look at the job roles for a test automation engineer now some of the most common job profiles include test automation performance tester test analyst and QA engineer so let’s have a look at some of these statistics provided by LinkedIn on these top profiles so here you can see the graph for the top companies in test Automation and some of the big names are Accenture cognizant IB M TCS and enosis now the top skills that are required to become a test automation engineer include the knowledge of testing agile methodologies SQL test planning and also you need to be well acquainted with manual testing now apart from these you need to be well acquainted with programming languages like Python goang and JavaScript you also need to be well vered with AWS microservices Docker and selenium now these skills will basically help you move to a higher position as a test automation engineer and also add up to your appraisal okay now talking about appraisals in hike Ed Rea has released a small video just a few hours back on hike and Appraisal during this season of the year which is essentially the appraisal season so do check out our latest video named upna hike AA I’ll leave the link in the live chat and also also in the description box hope you guys will enjoy it now moving on next up is the performance tester profile so some of the top companies for this job role are IBM Accenture TCS cognizant and Cap Gemini now some of the top industries for performance tester are the IT services computer software telecommunications Financial Services as well as banking now United States is considered to be the best preferred location for a performance tester followed by India UK Canada and Australia now some of the must have skills to become a performance tester include the knowledge of selenium cucumber Java API APM jira Python and also you must be profound with automation tools so next we will talk about the test Analyst job profile now for this particular role Bangalore is one of the top most preferred locations after us UK and Australia and similarly companies like Accenture cognizant TCS are one of the top recruiters now talking about some of these skills you must be well versed with SQL jira uat tdd Confluence and some of the scripting languages like python JavaScript also you would need some of the automation tools so now that you know about the different job profiles let’s have a look look at the roles and responsibilities of a testing automation engineer now in case of software testing every company defines its own level of hierarchy roles and responsibilities but on a broader level if you take a look You’ll Always Find two levels in a software testing team the first one is the test lead or manager now a test lead is responsible for defining the testing activities for subordinates testers or test engineers all responsibilities of test planning to check if the team has all the necessary resources to execute the testing activities to check if testing is going hand inhand with the software development in All Phases and also prepare the status report of testing activities he is also responsible for required interactions with customers and updating project manager regularly about the progress of testing activities next up we have the the test Engineers or the QA testers now they are responsible to read all the documents and understand what needs to be tested now based on the information procured in the above step decide how it is to be tested and inform the test lead about what all resources will be required for software testing then develop test cases and prioritize testing activities then we finally execute all the test case and Report defects Define severity and priority for each defect and Carry Out regression testing every time when changes are made to the code to fix defects now how a software application shapes up during the development process entirely depends on how the software engineering team organizes work and implements various methodologies now test automation Engineers can save you from the world full of codes Enterprises completely agree with the statement and this is the reason why you see a lot of job opportunity ities in automation testing industry so here I’m going to explain in detail the seven most important steps to becoming a test automation engineer it will also help you if you are planning to switch your career to automated testing now the first one is manual testing now while I understand that companies are moving towards codeless automated testing tools to reach an expert level and to keep up with the competition of automation test engineers in the industry it is highly important to focus on manual testing Concepts initially now manual testing is basically a process of finding out the defects or bugs in a software program in this method the tester plays an important role of end user and verifies that all the features of the application are working correctly now this makes a point very clear that automation testing is for experienced manual testers the next skill is the programming skills now it is very important to possess excellent technical programming skills now most newcomers ask that if they need programming skills for automated testing now most of the people who come up with the idea of Shifting to automated testing wish to skip the coding part either they don’t have programming knowledge or they hate coding however that one needs to be very proficient with manual testing skills to become a great automation Testing Engineer for a long lasting career in the software testing industry and if you’re new to the testing industry you need the following programming languages such as C C++ Java SQL python PE XML HTML and CSS now there are also a few technical skills a manual tester should Master to become a brilliant automation Testing Engineer such as the test architecture test design performance testing configuration management manual testing agility and interaction communication between the teams troubleshooting agile devops and continuous de delivery now the combination of all the above mentioned skills can help you transit to automated testing easily and smoothly now next up is understand the application now the common application details that every automation tester needs to take care of are which programming languages have been used while developing the application on what platform is the application built which databases are involved are there any web services or apis connected to different parts of the system and how and many more such questions now these are just few points and it may vary based on the complexity of the applications so make sure you’re completely thorough with the application that you are going to test via automation testing now next up we have the automation testing tools now when learning to become a smart automation Testing Engineer if we don’t talk about the test automation tools and we are doing an injustice to the industry a major part of the companies have already started using automation testing tools now the main reason behind using them is their benefits to the Enterprises some of the famous testing tools are selenium testing whz ranx sahi water and test complete now next up is the atlc methodology now atlc stands for automation testing life cycle now the way we follow the life cycle of software development and testing same is the way for automation testing as well to understand and follow the atlc one needs to have experience of the following such as the decision making in automated testing then the test automation tools automation testing process then test planning design and development test script execution and management and finally review and assessment of test programs now for each test automation requirements a test automation engineer follows the life cycle and to be a successful automation test engineer you need to understand the atlc methodology and executed in your each test automation project now moving on the next one is the test automation strategy so once you are through with the atlc methodology and the automated testing tools you are are well prepared to create your test automation strategy for your clients or employer now to become a great automation test engineer you would be the right person to initiate with preparing the test automation strategy finalizing the tools overall cost and Roi calculation now automation strategy creation is considered to be a very crucial part as you would need to Define and develop the path that will help you to reduce the manual testing hours and offer Justice on the ROI of the clients now let’s move on to the final skill which is the testing Trends now for this you have to stay updated with the testing strengths and this is the most important part of this industry the most trending best practices tools techniques tips and tricks will help you and your team to achieve the success in optimizing your test automation strategies and methodology now this generation is moving towards automation everywhere however there has been a lot of debate around test automation tools replacing the manual testers but remember the creators of test automation tools are the testers like you so to become a smart automation Testing Engineer and to be successful in this industry you would need to really work hard with passion and dedication so once you have mastered these skill skills you are now on your way to become a successful software test automation engineer now let’s see some of the topmost companies that are hiring for a test automation engineer now these companies are Accenture IBM cognizant enosis TCS and kep Gemini so do keep an eye for an opportunity and utilize your skills to grab the offer software is a highly complex thing it depends on code that is written and maintained by others and in different location that may be across the globe cutting across entirely different programming languages techniques servers networks and many other things bugs therefore are an unfortunate reality for every software product and there are a lot of risks involved in software by risk I just mean anything that can potentially cause a loss of something of value this can include functional issues or it can be scalability issues reliability issues security issues or performance issues or any other thing unfortunately sometimes these issues manifest into software disasters and have caused millions of dollars in waste and sometimes even led to casualities for example Starbucks coffee shop was forced to give away free drinks just because of register malfunction a F35 military aircraft was unable to detect the targets correctly because of a radar failure a high voltage power line in Northern Ohio it brushed against some overgrown trees and it was shut down normally the problem would have tripped on alarm in control room but due to software issues the alarm system failed and that day there was like power cut for about 24 hours in the entire city similarly in 1985 Canada’s theak 25 radiation therapy machine it malfunctioned due to some software buck and it delivered lethal radiation to patients like leaving three people dead and critically enjoying many others while I can keep going software failures happen every day you’ve probably experienced a software failure in the past week or even days as simple as an app glitch on your smartphone to serious ones like cancelled flights or crashing infrastructure systems and many others software bugs have become so common to everyone’s lives that it would be easy to simply just roll our eyes and say hey here we go again but what if software professionals do that how do companies make sure that disasters won’t happen well software testing software testing helps to find bugs well if I have to Define software testing it is quality analysis of software code to understand if the software performs as expected or not and to learn about ways in which it can be improved suppose you entered a baking contest and you’re planning to make cookies chances are you will first make a small batch of cookies to test how good your recipe is and if everything tastes well and fine as you expected it to be well depending on the feedback you receive about the taste and other qualities of the cookie you would then modify your recipe and proceed for further cooking software testing is somewhat similar in that sense well after a programmer or a team of programmers write a software program there are Information Technology professionals known as testers who would then test the software to see if there are any areas where the software crashes or does not yield the results as expected that’s what software testing is all about well the main objective of software testing include to verify and validate the completeness of the software product to check if the software product meets the business and Technical requirements to identify technical bugs and to ensure that the software product is glitch free in the end or before it’s released to Market and lastly to generate high quality test cases and issue correct problem reports well I’m sure at this point you’re clear of what software testing is right but why do you think we need software testing what benefits does it offer to any of us first of all it gives confident in the quality of the final product for the organization producing the software product it saves a lot of time effort and money for the organizations that are developing and selling the product because once the product is tested they can be sure that there are no Faults that would prove fatal to them or the company later on it even offers business optimization it confirms that an application is able to operate well and fine in all required conditions and on all different kind of operating systems or web browsers correctly and properly well this enhances user experience and customer satisfaction lastly obviously all this factors contribute to money so they bring profit to organization in simple terms in order to make sure that the release software is safe and its functioning as expected the concept of software testing was introduced its Paramount important because software bugs errors defects can potentially lead to expensive or dangerous consequences in the software program like the few of them which I mentioned earlier in the session so the software testing is an exceptionally imaginative and an intellectual task for testers to perform testing of software or application consist of some principles that play a significant role for a software tester while testing the project what I mean is there are certain set of principles that every tester should be aware of when they’re performing software testing so what are the basic principles of software testing let’s discuss that first of all software testing can help in detecting bucks that’s the basic of it right testing any software or an application can help in revealing a few or some defects that may or may not be detected by developers when they develop the product however testing of software alone cannot confirm that you developed product or software is bug free or error free hence it’s essential to device test cases and find out as many defects and errors as possible so the first point or the principle here is software testing can help in detecting bux if you have proper test cases and test scenarios the next principle is that exhaustive testing is impossible well there’s no way to test all combination of data inputs scenarios and precond conditions within an application for example if a single application screen contains about 10 input Fields with three possible values this means if you have to cover all the combinations then you would have to create about 5949 I guess test scenarios well that doesn’t look good and it’s just for one app screen imagine you having 50 plus such screens while in order not to spend weeks creating millions of such less possible scenarios it’s better to focus on potentially more significant test cases the third principle is you should perform testing as early as possible the cost of an error grows exponentially throughout the stages of software testing life cycle therefore it is important to start testing the software as soon as possible so that all the detected issues are resolved and they do not affect you later on next up we have defect lustering well according to a certain principle Approximately 80% of all errors are usually found in only 20% of the system modules therefore if a defect is found in a particular module of the software program the chances are that there might be other defects as well that is why it makes sense to test that area of the product more thoroughly and testing is context dependent depending on the purpose or the industry different application should be tested differently right while safety could be primary importance for a fine tech product it is less important for a corporate website well the latter as in the corporate website in turn puts an emphasis on usability and speed so according to your situation and requirements you should choose what type of testing you want to perform and lastly error free or bug free software is just a myth the complete absence of errors in your product does not necessarily mean that your testing was successful no matter how much time you have spent polishing your code or improving the functionality of your product if it’s not useful or it does not meet the user expectations it won’t be adapted by the target audience or it can’t be released to Market it’s as simple as that so these are certain basic principles of software testing well along with the principles we discussed just now you might have to consider some additional sources to note other principles in addition to the basic ones with that said the next topic that we going to discuss here is very important Concept in software testing which is software testing life cycle so what exactly is software testing life cycle organizing a software testing process can be quite challenging just like how developing a software involves a sequence of steps testing also involves steps that can be executed in a definite sequence this manner of executing testing in a systematic and plann way is what we call a software testing life cycle or stlc basically it comprises of six phases which include requirement analysis test planning test case development environment setup test execution and test cycle closure well I’m not going deep in here but let’s just discuss what each of this phase mean in software testing life cycle so the very first step in software testing life cycle is requirement analysis in this stage the testing or the QA team decides what needs to be tested there are two kinds of testing mainly functional and non-functional we’ll talk more about that later on functional testing includes test to evaluate how the software is functioning and non-functional testing includes features that are behind the scenes such as performance security and all that Concepts so the team here considered both functional as well as non-functional requirements into consideration well after a decision is made as to what aspects of testing need to be completed the next stage is planning how the test will actually be conducted this includes deciding the resources in terms of cost the number of personel that should be assigned to the testing phase the number of hours it should take the deadlines by which the result should be delivered and many other things basically you’re planning the entire test process in this step and there’s something called a test plan document which involves your entire plan from the first step to the last step if you want to know more about what test plan is and how do you write a test plan its pattern and parameters involved in that well there is a video called how to generate or create a test plan in Eder software testing playlist so please do refer to that so the second step is basically planning everything as to how to perform when to perform and all that next up we have test case development one of the important stages of software testing life cycle is developing the test cases this includes writing out a step-by-step procedure on how test should be executed the expected results the actual results and if the test was a pass or a fail and again if you want to know more about test cases and how to write a best test case well you could refer to how to write a test case video in Eda YouTube playist so coming back test case development is a really important concept and you have to consider many different things here when you’re actually generating a test case the fourth step is environment setup so before the actual testing can be started the test environment has to be set up a testing environment is a setup of software and hardware for testing teams to execute test cases in comfortable manner it supports test execution with Hardware software and network configurations next is nothing but test execution the next phase is the process of executing the code and comparing the expected and the actual results when test execution Begins the test analysis starts executing the test scripts based on the strategy which you have selected for your project lastly it’s test cycle closure it involves calling out the testing team members for meeting and evaluating complete cycle criteria based on test coverage quality cost time and many other Concepts so basically here you’re analyzing the test result reports and seeing how you can make them better or how you can improve them or discussing the results organizing and basically discussing the entire testing life cycle is the last step which is test cycle closure so these are the six most important phases of a software testing life cycle well when you are setting up testing environment there are certain things that you should be aware of first thing is that software testing is broadly classified into two categories static testing and dynamic testing static testing initially checks the source code and software project documents to catch and prevent detects early in the software testing life cycle it’s also called non-exhaustive technique and verification testing it could be performed as inspections andal and Technical reviews or it could be reviews during walkthrough meetings that you organize with team members and all that so basically it’s an informal form of testing but as soon as the primary preparations are finished the team proceeds with Dynamic testing where software is tested during execution Dynamic testing can be described by different methods levels and types of underlying quality analist activities let’s have a closer look at the segment of dynamic testing process so first up we have something called software testing methods software testing methods are nothing but the ways the tests are conducted in real they include Black Box testing white box testing gray box testing and hadock testing so black Bo testing I’m sure you might have heard of it before it gets its name because a QA engineer here focuses on the inputs and the expected outputs without knowing how the application actually works internally and how these inputs are being processed the purpose of this blackbox testing is to check the functionality of the software and making sure that it works correctly and it’s meeting user demands next up white box testing unlike blackbox testing this method requires profound knowledge of the code as it involves testing of some of the structural part of the application therefore generally the developers here are directly involved in writing code are responsible for this type of testing the main purpose here is to enhance security the basic flow of input output throughout the application and to improve the design and the usability of the product well obviously there’s a combination of both blackbox and white box testing that’s what we call a gray box testing it involves testing of both functional and structural part of application so you using this method an experienced tester has partial knowledge of internal application structure and based on this knowledge she can design test cases while still pursuing the blackbox perspective apart from this we also have something called ad hoc testing this is an informal testing method as it’s performed without any planning or documentation conducting tests informally and randomly without any formal expected results the tester improves the steps and without even knowing executes them here so basically in ad hoc testing there’s no documentation no test design no test case no planning so each of these methods that we discussed just now I mean the white box blackbox and ad hoc testing we have multiple techniques coming under these categories for example under white box you have statement coverage decision coverage condition coverage and multiple condition coverage for blackbox testing you have decision tables use case testing State transition diagram bva which is nothing but boundary value analysis equivalent balance partition and under ad hoc testing we have pay testing monkey testing body testing and much more if you want to know more about any of these techniques you can refer to the software testing methodologies and techniques video or blog in AA playlist so next up we have software testing levels a piece of software is more than a several lines of code it is usually a multi-layer complex system incorporating dozens of separate functional components and third party Integrations therefore efficient software testing should go far beyond just finding errors in the source code there are four main levels of software testing unit testing integration testing system testing and acceptance testing let’s briefly check out what each of these levels are so the first level of unit testing is the micro level of testing it involves testing individual modules or a piece of code to make sure each part or I can say unit is working properly here when I say unit it can be a specific piece of functionality or a program or a particular procedure within an application or it can be anything it depends on what the tester considered a unitest unit testing helps verify internal design internal logic internal parts as well as error handling so after unit testing integration testing is performed this level tests how the units work together individual modules are combined and tested as a group it’s one thing if every unit of your software project is working well on the own but how do you think they’ll perform together well integration testing helps you determine that and ensures that your application runs very efficiently it identifies interface issues between modules well there are few techniques that can be used here we have big Bank technique top down approach bottom up approach and many other things to know more you can refer to the integration testing video and the software testing Edo playlist the next level of testing is system testing as name implies all the components of software are tested as a whole in order to ensure that the overall product meets the requirements specified system testing is particularly important because it verifies the technical functional and the business requirements of the software final level of testing is acceptance testing or sometimes it’s referred to as user acceptance testing or uat it determines whether or not the software is ready to be released to the market let’s face it guides requirement keeps changing throughout the development process right and it’s important that user verifies the business needs are met before the software is released into market for commercial use so that’s what uat or user acceptance testing the fourth one is all about so each level of testing has a particular purpose and it provides value to the software testing life cycle some levels are on their own type of testing for example unit testing but some have certain categories under them like integration testing like we discussed has big bang approach top down approach bottom up approach and like that lastly we have software testing types so basically these types are approaches and the techniques that are applied at given level like we discussed the different level using an appropriate method to address the requirements in most sufficient manner well like I said earlier the purpose of testing and the testing tool or the strategy that you use every time keeps changing depending on the requirements right and that we call different types of software testing there are a variety of software testing types and each of them Ser different purpose so broadly it’s divided into functional testing and non-functional testing under functional we have unit testing integration testing system testing interface testing smoke sanity testing and many others coming to non-functional testing we have performance testing security reliability and many other things so each of these testing types that you can see on the screen have their own purpose and the import importance based on the requirements of your testing you should choose the one which suits your category today’s world of technology is completely dominated by machines and their behavior is controlled by the software powering it so how do we know that the machines will behave exactly the way we want them to every time now the answer to all these questions lie in software testing so now let’s see see the different types of testing so quality assurance or software testing is crucial because it identifies errors bugs from a system at the beginning by considering the problems in the base helps to turn Improvement in the quality of product and brings confidence in it now by beginning means where it comes feasible and able to resolve the existing bugs now functional testing and nonfunctional testing are the two kinds of testing that are performed by by the QA or the software tester so the types of software testing are basically the key role where the tester determines the right testing for the apps so here we have two main types of software testing such as the functional testing and non-functional testing now under functional testing we have unit testing integration testing system interface regression and user acceptance testing and under non-functional testing we have documentation installation performance reliability and security testing also performance testing can be divided into load stress endurance and Spike testing so now let’s move ahead and have a look at all of these types of testing in details so the functional testing focuses on manual as well as automation testing a functional testing is a bunch of various types to execute the perfect product now the first one is the unit testing under functional testing so unit testing is basically a level of software testing where individual units or components of a software are tested now the purpose is to validate each unit of the software performs as designed now a unit is the smallest testable part of any software it usually has one or a few inputs and usually just a single output now who performs this unit testing it is normally performed by the software developers themselves or their peers now in rare cases it may also be performed by independent software testers now let’s have a look at the unit testing task so first we have the unit test plan under which we prepare review rework and form the Baseline next up we have the unit test cases or scripts where again we prepare review rework and check the Baseline of the scripts and finally we have the unit test step where we perform our final task now let’s have a look at some of the benefits of unit testing now unit testing increases confidence in changing or maintaining code so if good unit tests are written and if they are run every time any code is changed we will be able to promptly catch any defects introduced due to the change next up codes are more reusable in order to make unit testing possible codes need to be modular now this means that codes are easier to reuse also the development is faster now if you if you do not have unit testing in place you write your code and perform that fuzzy developer test but if you have unit testing in place you write the test write the code and run the test now writing tests takes time but the time is compensated by the less amount of time it takes to run the tests you need not fire up the GUI and provide all those inputs now the cost of fixing a defect detected during unit testing is lesser in comparison to that of defects detected at higher levels so compare the cost of a defect detected during acceptance testing or when the software is live next up debugging is very easy so when a test fails only the latest changes need to be debugged so with testing at higher levels changes made over the span of several days or weeks or months need to be scanned also codes are more reliable here now moving on the next type is the integration testing so integration testing is a level of software testing where individual units are combined and tested as a group so the purpose of this level of testing is to expose faults in the interaction between integrated units test drivers and test stubs are used to assist an integration testing so who performs integration testing for this the developers themselves or some independent testers perform this sort of testing integration testing also involves a task plan such as the integration test plan where we prepare review rework and form the Baseline also we have integration test cases or scripts under which we prepare review rework and form the Baseline and finally again we perform the integration test now let’s have a look at some of the approaches of integration testing the first one is the Big Bang now Big Bang is an approach to integration testing where all or most of the units are combined together and tested at one goal now this approach is taken when the test testing team receives the entire software in a bundle so what is the difference between Big Bang integration testing and system testing well the former tests only the interactions between the units while the later tests the entire system next up we have the top down now this is an approach to integration testing where top level units are tested first and lower level units are tested step by step after that this approach is taken when top down development approach is followed the test tubs are needed to simulate lower level units which may not be available during the initial phases next up we have the bottom up now this is an approach to integration testing where bottom level units are tested first and upper level units step by step after that now this approach is taken when bottom up development approach is followed the final one is the sandwich or the hybrid now this is an approach to integration testing which is a combination of top down and bottom up approaches next up we have the system testing system testing is a level of software testing where a complete and integrated software is tested now the purpose of this test is to evaluate these systems compliance with the specified requirements system testing is the third level of software testing performed after integration testing and before the acceptance testing so basically the independent testers perform the system testing now again the system testing also has certain tasks such as the system test plan where we prepare review rework and form the Baseline and next up we have the system test cases where we prepare review rework and form the Baseline as well and then finally perform the system test now let’s have a look at an analogy of system testing now during the process of manufacturing a ballpoint pen the cap the body the tail the ink cartridge and the ball Point are produced separately and unit tested separately so when two or more units are ready they are assembled and integration testing is performed now when the complete pen is integrated the system testing is performed so this was all about the system testing now let’s move on and have a look at the interface testing now it basically verifies that communication between the systems are done correctly if all supported Hardware or software has been tested now when an application or a software or a website is developed then there are s several components of it those components can be server database Etc now the connection which integrates and facilitates the communication between these components is termed as an interface so there are three phases of interface testing in an interface life cycle first we have the configuration and development so when the interface is configured and once the development starts the configurations need to be verified as per the requirement next up is the validation so when when the development is completed the interface needs to be validated and verified now this can be done as a part of unit testing also finally we have the maintenance now once the whole software is ready deployed and working then the interface needs to be monitored for its performance and any new issues introduced due to the changes made or detering performance now let’s see why do we have to perform interface testing so it is required to check if the server execution is proper now error handling is done properly and appropriate error messages are shown for queries made by the application or software it is also used to check the result when a connection to the server is reset and also to check the security aspect when the components communicate within themselves interface testing is also done to check the impact of network failure on the communication between the components now let’s have a look at few steps that ensure interface testing is successful first one is Define your requirement now before creating the interface tests it is essential to understand the application hence try to find answers to questions like what is the purpose of the interface or what is the workflow of the system or application now defining all such answers will help you to understand the requirement next up is the expected output now we know and understand the requirement very well it is the time to finalize the output that we will be expecting from the tests not just a pass or fail it can some data call to another API Etc third one is start small so with interface testing we can’t directly move on with creating big test cases creating small test cases or calls is relatively simple at least in small functions create small test code and verify if the output is as expected or not next try automating now writing codes for testing and interface can be boring you will not only be spending time in writing the code but along with this you will will also have to spend time to understand the format style the coding language used for development and then as an icing on the cake you will have to make sure that your code isn’t creating a problem to the app or system code finally Define the start and stop points now before starting the execution of a test we always decide the start and the stop point of the test as well as decide how the entire testing process will start and end next up we have the regression testing now regression testing is a crucial stage for the product and very useful for the developers to identify the stability of the product with the changing requirements now let’s have a look at some of the techniques of regression testing first one is retest all now as the name itself suggests the entire test cases in the test suit are re-executed to ensure that there are no bugs that have occurred because of a change in the code next up we have the regression test selection now in this method test cases are selected from the test suit to be re-executed not the entire suit is re-executed here next up we have the test case prioritization test cases with high priority are executed first then the ones with medium and low priority finally we have the hybrid technique now this is a combination of regression test selection and test case prioritization now how do we select the regression test suit for most of the bugs found in the production environment occur because of the changes did or bugs fixed at the 11 are that is the changes done at a later stage so let’s have a look at the test plan template first we have the document history now it consists of a record of the first draft and all the updated ones next we have the references column that keeps a track of all the reference documents used or required for the project while creating a test plan next up we have the regression test plan that consists of all the introduction and details that are involved in the testing now the final one in functional testing is the acceptance testing now acceptance testing is a level of software testing where a system is tested for acceptability the purpose of this test is to evaluate the systems compliance with the business requirements and assess whether it is acceptable for delivery so basically the management sales or the customer support performs these kind of testing also the customers and the end users of the software can do the following acceptance testing also has a task plan such as as the acceptance test plan where we prepare review rework and form the Baseline and then we have the acceptance test cases or checklist where we again prepare review rework and form the Baseline and finally perform the acceptance testing now let’s have a look at some of the types of acceptance testing first one is the user acceptance testing now this is used to assess whether the product is working for the user correctly for the usage next up we have the business acceptance testing now this is required to assess whether the product meets the business goals and purposes or not next we have the contract acceptance testing now this is a contract which specifies that once the product goes live within a predetermined period the acceptance test must be performed and it should pass all the acceptance use cases then we have the operational acceptance testing now this is to assess the operational Readiness of the product and is a non-functional testing it mainly includes testing of recovery compatibility maintainability technical support Port availability reliability failover localization Etc then we have the Alpha Testing now this is to assess the product in the development or testing environment by a specialized testers team usually called the alpha testers and finally we have the beta testing now this is to assess the product by exposing it to the real end users usually called the beta testers or beta users in their environment now these were some of the functional testing now let’s move on and have a look at some of the non-functional testing types now there are a bunch of software testing types which differentiate the job work for the qway while testing the apps it is a testing to determine the performance of the system to measure the measure validate or verify quality attribute of the system the first one is the documentation testing now documentation testing helps to estimate testing efforts required and test coverage now software documentation includes test plan test cases and requirements section so there are four main focus areas when testing documentation that is instructions examples messages and samples so if Specific Instructions are provided for certain activities it’s likely we will have test scenarios defined for those same activities similarly step-by-step examples may be provided to explain GUI screen inputs clarify Syntax for commands or other interfaces show expected outputs or illustrate other important points now when we hit a problem for example an error message we should verify that the documentation for the message is correct now finally samples are sometimes documented for such things as initialization or tuning parameter input files now next up we have the installation testing so installation testing is a type of quality assurance work in the software industry that converges on what customers will need to do to install and set up the new software successfully now the testing process may involve full partial or upgrades install or uninstalled processes now let’s have a look at some of the installation testing tips first we need to install the full version of application now in case if you are upgrading the application or previously installed a basic version now installing the full version on same path then system should allow you to install full version application without any error next we have the automate testing efforts the flowchart will help you to create the automated scripts using the flowchart you can easily make out the automated script for installation testing now after execution every test case use of the disk image to be installing on dedicated machine which will save some time next up we have the required disk space check in installation now this is the most critical scenario in the installation testing now the disk space checking is done using automated and manual testing method so you can verify calculated dis space Space by installer is correct or Not by using manually or automated tools now on different file system format the disk space may vary like on NTFS FAT32 and fat16 Etc next we have the use of distributor testing environment now to executing test cases effectively you can use distributor testing environment which will save your cost and time next we have the automate the check off files installed after installation so you can use the automated script to check that all the required files are installed successfully or not then we have the confirm for registry changes after installation so here you have to check for registry changes after the installation of your software then we have the negative testing and installation testing now this intensely tried to break the installation process to check the behavior of application under such conditions finally we have the uninstallation testing now you should also check for the uninstall testing to check whether the user is able to uninstall the application without any error and removing all folders and files related to installation next up we have the performance testing now the performance testing includes load testing stress endurance and Spike testing now here the software tester team provides performance testing on Amazing projects now let’s have a look at the types of performance testing so we have load testing which is a type of performance testing conducted to evaluate the behavior of a system at increasing workload then we have the stress testing which is a type of performance testing conducted to evaluate the behavior of a system at or beyond the limits of its anticipated workload then we have the endurance testing which is a type of performance testing conducted to evaluate the behavior of a system when a significant workload is given continuously finally we have the spike testing which is a type of performance testing conducted to evaluate the behavior of a system when the load is suddenly and substantially increased now let’s have a look at some of the tips for performance testing so first we have to establish a test environment as close to the production environment as possible then we have to isolate the test environment even from the QA or u8 environment though there is no perfect tool for performance Testing Research and decide on the tool that best fits your purpose also do not rely on the results of just one test you should conduct multiple tests to arrive at an average number be wary of any changes to the test environment from one test to the other next up we have the reliability testing now reliability testing assures that the product is fault-free and is reliable for its intended purpose it is about exercising an application so that failures are discovered before the system deployed now let’s have a look at some of the types of reliability testing first we have the feature test now in this each function in the software should be executed at least once and the interaction between two or more functions should be reduced also each function should undergo proper execution or functional test next we have the regression test so whenever any new functionality is added or old functionalities are removed in an application it under goes a regression test to make sure with introduction of new functionality no new bugs are introduced then we have the load test now load test is done to test whether the application is supporting the required load without getting break down now in order to find the breako of an application the load is gradually increased until the application gets hung now let’s have a look at some of the importance of reliability testing as we know software applications are in use in almost every sector of manufacturing Healthcare Defense government telecommunication Etc therefore the question is that how reliable the software application is this question is very very important because the Reliable Software is of great use and the organization working on it can feel the confidence in their business systems now the test cases should be designed covering all the required functionality of the software application and these test cases should be executed for sufficient amount of time to get a rough estimate of how long the software can execute fine without failure now the test case execution sequence to run the overall functionality of the software application should match the real production operational plan of the application now moving on let’s have a look at the final type of non-functional testing the next type is the security testing now the security word itself defines that something has to relate with technique to strengthen the security it’s not about securing data and information it can affect the whole functionality of the system so there are basically four main focus areas that are to be considered in security testing that is the network security which involves looking for vulnerabilities in the network infrastructure then we have client security which ensures that the client cannot be manipulated and the server code and ITS Technologies are robust enough to fend off any intrusion now let’s have a look at some of the security testing techniques first one is access to application so whether it is a desktop application or a website access security is implemented by roles and Rights Management it is often done implicitly while covering functionality then we have the data protection now there are three aspects of data security first one is that a user can view or utilize only the data which he is supposed to use the second aspect of data protection is related to how that data is stored in the database and the last one is an extension of the second aspect proper security measures must be adopted when the flow of sensitive or business critical data occurs next up we have the Brute Force attack Now The Brute Force attack is mostly done by some software tools the concept is that by using a valid user ID the software attempts to guess the associated password by trying to log in again and again then we have the SQL injection and xss So conceptually speaking the theme of both these hacking attempts is similar so for all input fields of the website field length should be defined small enough to restrict input of any script then we have the service access points so when there is a large number of the target audience the access points should be open enough to facilitate all users users accommodating enough to fulfill all users requests and secure enough to cope with any security trial next up we have the session management so you can test for session expiry after particular idle time session termination after maximum lifetime session termination after log out check for session cookie scope Etc then we have the error handling so the error codes are returned with a detailed message these messages should not contain any critical information that can be used for hacking purpose finally we have the specific risky functionalities now mainly the two risky functionalities are payments and file uploads these functionalities should be tested very well so these were the different types of software testing that are involved in our everyday life so when I say testing methodology I mean combinations of principles ideas methods and Concepts that help you during the testing process testing methodologies are simply strategies and approaches used to test a particular product to make sure that it fits the purpose so as software applications get more and more complex and get intervened with many different platforms and devices it’s more important than ever to have a robust testing methodology because a methodology it manages user requirements test cases bugs all in single integrated test environment it offers full traceability throughout the testing life cycle it acts as a complete testing solution that includes management requirements test case designs release management and many other things it provides a complete picture of software product and its health issues or you can say status it leverages current technology Investments and many other automated testing Solutions and offers best testing experience that is why when you start with testing you need to have a proper suitable testing methodology guys nowadays there are dozens of software testing methodologies each with their own starting points duration of execution and methods that are used in each step the more well-known among those are we have waterfall model we have V model agile model spiral model you have something called rup that’s rational unified process and rad model that’s nothing but rapid application development model extreme programming and many others choosing the proper one can be a harsh experience that’s why you should know what each model mean what they has to offer what are the disadvantages where they’re applicable where they’re not applicable and they’re advantages so in this session we going to discuss each of these models in brief but before we proceed any further I want to let you know guys one thing people often combine software development models with software testing models because the development of the software and the testing most of of the time are done in parallel not exactly parallel but as soon as the software is developed it’s sent to testing so when they mean software testing methodologies they’re almost same as software development models itself don’t confuse anyway let’s get started with our first model which is waterfall model I’m sure you have heard of waterfall model right it’s one of the most popular model in software engineering well the waterfall model is one of the oldest models developed by vinston Roy in 1970 it’s also known as linear sequential life cycle model the traditional waterfall testing approach it represents multiple stages in a sequential manner that flows progressively downward just like a waterfall hence the name waterfall model it means that you can move to the next phase of the development or testing only after you have completed the previous phase successfully so once a phase of development is completed you can proceed to next phase and there’s no turning back as in once you start with the design phase you cannot go back to the

    requirement phase this approach is useful when requirements are well known you’re sure about the technology and you have understood the technology and all the resources with required expertise are available and they are at hand in such cases this model is highly useful as you can see it has like five phases first you begin with requirement phase that’s nothing but capture and analyze all the requirements and make sure whether they are testable or not then you have system design you create and document designs based on the requirements which you collected in the previous phase you define the hardware and the software requirements as well next up we have implementation you create robust code for components as per design and then integrate them and obviously next we have verification that’s nothing but testing integrated components they form a whole system here you make sure if the system is working as per the requirements you also keep track and Report the testing process you also make sure that the system is stable with zero bucks and it passes all the test criteria and environment setup is perfect so basically in this step you’re making sure that your product is perfect and lastly you have system maintenance you make sure if the application is working efficiently as for the requirement within the suitable environment in a case a defect is found then that should be fixed and deployed or updated and later on so that’s all about waterfall model talking about advantages and disadvantages the main advantage of waterfall model is that it allows for departmentalization and managerial control apart from that it’s very easy to understand and easy to manage because it’s easy to understand it allows for easy testing in analysis it says significant amount of time talking about disadvantages the disadvantage of waterfall model is that it does not allow for much revision so once an application is in the testing phase it’s very difficult to go back and change something like I said earlier because of that it’s shorten flexibility it lacks the visibility of the current progress as in you cannot see what’s happening right away and the most important thing is changes in the business requirements or new additions in functionality require changing all the previous steps lastly the end product is available only at the end of the cycle so these are some disadvantages next up we have V model so V model is basically an extension of waterfall model where the process execution takes place in a sequential manner but in vshape which is clearly visible on the screen as you can see there’s an image so as you can see in the image below there exist a directly Associated testing phase in each phase of development cycle as you can see the requirement analysis is associated with operational testing and acceptance testing then you have i l design which is associated with integration testing similarly detailed specification is associated with unit testing so basically using this V model you can perform stacked testing verification and review that helps to prevent possible defects in the later stages well you can say that this model is basically divided into three phases we have verification phase next up is the coding phase and validation phase and verification phase and validation phase are done in parallel or you can say each testing phase is associated with a phase of development cycle so guys the phases of V model are changeable but usually they include the following phases as you can see requirement phase is associated with acceptance testing its main purpose is to evaluate if the system is ready for the final usage then you have high level design phase which relates to system testing and includes evaluation of compliance of specified requirements to the integrated system and next up we have detailed design phase which is in parall to integration testing that checks the interactions between different system components after that the coding stage begins where you have another necessary phase that’s nothing but un testing it’s important to make sure that the behavior of individual parts and the components of your software is correct and it meets the requirement so basically in coding this pH it contains actual coding in the development life cycle so programming languages should be chosen based on your requirements talking about advantages and disadvantages of these model like I said it’s just an extension of waterfall model so the advantages and disadvantages are almost similar apart from that it’s simple to use easy to understand it’s good good for small projects and it’s highly cost effective when compared to Waterfall model and there’s no overlapping between the faces because as you can see the enter process is sequential talking about disadvantages just like waterfall model no inherent ability to respond to changes you have to change all the steps and testing is usually squeezed in the end and the absence of Clear Solutions that eliminate the software defects that’s one of the most important disadvantages of V model and it’s not suitable for large and and complex projects that’s it about the V model let’s move on to next model which is incremental model well everything is said in the name itself you can consider the incremental model as a multi- waterfall model of software testing the whole incremental process here is divided into various numbers of cycles each of them is further divided into smaller modules each iterations add a specific functionality of the software so an increment here actually includes three Cycles software designing and development testing and implementation as you can see in the diagram I have build one which includes all the three faces then I have build two a functionality has been added in the build one and then we’ move on to the build to and add another functionality that way you develop a product in incremental process another good thing with this model is that simultaneous development of different product versions is possible for example the first first version can pass the testing phase while the second one passes the development phase the third version in turn can pass the designing phase at the same time so simultaneously you can develop different product versions well you can continue this until your product is perfectly develop well it all says in the name itself right incremental model as you go on in every build you add a new functionality and at a single point of time you can have multiple builds or multiple versions being developed the advantage is that it’s more flexible and it’s cheaper when you have change of requirements also the software testing process here is more effective since it’s easier to test and debug if you’re using smaller iterations but the disadvantage is that it’s costlier when compared to Waterfall model that’s all about the incremental model it’s simple next up we have agile model agile as you guys know has become one of the most popular software development methodology in recent years in parallel it’s also known as software testing methodology so majority of firms use agile techniques in some capacity or other for software development and testing projects so with agile developers build software incrementally well you can say it’s a type of incremental software testing technique so they break the project down into small segments of user functionality which we call stories prioritize them and then continuously deliver them in two week Cycles called Sprints the testing methodology is also incremental each small release is Thoroughly tested to ensure quality as you can see I have increment one I have request phas after that it’s tested it’s coded and designed so you can see that increment is a small release it’s tested perfectly for each and every defect and the quality is ensured and then we move on to the next increment and we have the same process being done again but we add further more functionalities to the previous iteration so basically this entire process of iteration allows testers to work in parallel with the rest of the project team throughout the process and fix the flaws and errors immediately after they occur so the main goal of this approach is that they have to deliver a new software feature fast and that to with the best quality so it focuses on responding to the change rather than extensive planning like in waterfall model waterfall model is all about planning one phase after other and not going back again but here if you have a requirements change you interact with the other team or the other increment and make the changes as soon as possible and release the product in small Cycles so that’s the profit of agile model next up we have advantages so as you can see it has a lot of advantages to offer it’s an Adaptive approach that responds easily to the changes unlike waterfall model since flaws and defects are easily found and corrected the quality of the product will also be improved and it’ll be best it allows for the direct communication between the testers and other people involved in the testing process or the software development process it’s highly suitable for the large and long-term projects because you can release the product in small iteration so that’s what makes it more suitable for large and long-term projects it promotes Teamwork because it allows for direct communication which directly affects the teamwork it’s easy to manage because we are handling the small release Cycles in every iteration and lastly it requires minimum requirements or resources you can say talking about disadvantages it’s highly dependent on customer feedback so every small iteration you release it to Market you wait for the customer feedback and based on that you develop the next iteration obviously there are bugs in addition to that you also take the customer feedback as well so it’s highly dependent on Clear customer requirements up front and there’s this maintainability risk involved it’s difficult to predict time and effortful large projects it lacks documentation efficiency it’s not suitable for compx project and there are chances of getting off track as the outcome of AG stage is not that clear next we have spiral model spiral model is similar to incremental model with more emphasis placed on risk analysis so basically here the importance is given to risk analysis the spiral model has four phases you have planning risk analysis engineering and execution and evaluation a software project repeatedly passes through these faces in iterations which we we call spirals here so once the first cycle is completed the second cycle starts software testing starts from planning and it lasts until the evaluation phase so the main advantages of this spiral methodology is that immediate test feedback that’s ready at the third stage of each cycle since the feedback is available in every Sprint or spiral in this model it helps to guarantee the quality of the product just like your agile model however it’s important to keep in mind that the model can be pretty costly one and it’s not suitable for small projects so the thing that you have to remember is that the main emphasis here is on risk analysis and since you get the customer feedback in the third phase the quality of the product is really high so we already discussed the advantages the first one is this lower amount of risk due to high risk analysis and obviously it ensures rapid development of the product the quality of the product is really high because every time in every spiral at the third phase you get a feedback it offers strong documentation control a requirement changes can be easily accommodated at a later date because this is an incremental model just like AEL model requirement changes can be easily accommodated talking about disadvantages it can be costly to use when compared to other models it’s not suitable for small projects you have large number of intermediate stages because you have different multiple spirals right it requires a lot of technical expertise it’s highly dependent on risk analysis phase I think I just said that so that’s all about spiral model so the last Model that we’ll be discussing in this session is rad model or you can say rapid application development this rapid application development model is also a form of incremental model where components are developed in parallel so with r the focus is mainly on building a prototype that looks and acts like a final product in this approach a prototype is created by assembling the different components of the software product that have been developed in par so once you create the Prototype which is nothing but the components assembled it is used to gather feedback from the customer so this rad model spiral model and ajile model are different forms of incremental model and as you can see in rad model it’s divided into five phases or it includes five faces we have business modeling the first phase it identifies White information flow between various business channels then we have data modeling information gathered from previous phase is used to define data objects then you have process modeling data objects which you got in the data modeling step are then converted to get business objective in the third phase then you have application generation various automation tools are used in this tab to process the models to actual source code and lastly we have testing and turnover new components and all the connecting interfaces are tested and the object or the cycle or the product is released to Market so as you can see the entire process goes on for about 60 to 90 days this rad model is recommended when the product is required to be delivered within a short period of 2 to 3 months and there’s a high availability of skill resources talking about advantages it reduces development and testing cycle time it’s not that expensive and obviously since it’s an incremental model it enhances the customer feedback due to customer involvement throughout the cycle talking about disadvantages it requires highly skilled resources if you have highly skilled resources and if you have two to three months of time and you have a product to develop then Brad model is highly suitable and what are the other disadvantages well it requires a system that can be modularized as in divide and it’s hard to use with Legacy systems so this brings us to the end of software testing methodologies discussion each of these models employ a different testing methodology to test the quality and the security of software in different ways and different stages so choosing one among them can be quite complex and I hope that what you’ve learned today will help you choose a proper methodology according to your requirements so guys that’s all about software testing methodologies let’s get started with our next topic as you guys already know the main purpose of software testing is to deliver an Optimum quality product at faster pce to help tester achieve that there are multitude of software testing techniques each with its own strength and weakness but what exactly is a software technique what do I mean when I say a technique software testing technique refers to the procedure or a way to test the software under test by comparing the actual and the expected results a good software testing technique helps tester to design test case in such a way that minimal steps of test cases are involved so the two key points with software testing techniques is that you need to have minimal test cases but they should be able to capture maximum functionalities of the software so with testing techniques you can develop smarter test cases reduce the number of steps required in test cases so guys in this session we will be discussing some of the popular techniques and I’ve divided these techniques into different categories so basically when it comes to software testing techniques they’re divided into three main categories that would be white box testing blackbox testing and experience-based testing so we’re going to discuss each of these techniques which come on the different categories in brief let’s begin with blackbox testing so what is blackbox testing blackbox testing is also known as specification based testing here the testers analyze the functionality of the software or the application without knowing much about the internal structure or the design of the product so the main purpose of this method is to check the functionality of system as a whole to make sure that it works properly and it meets user demands well the key point that you have to remember is that the testers perform testing without knowing much about the product there are a lot of testing techniques that come under blackbox testing let’s discuss each of them in brief so guys first in the list we have equivalence partitioning in equivalence partitioning input values to the system or the application which is under test are divided into different partitions or groups or classes based on its similarity in their outcome so instead of using each and every input value you can use a value from each class or partition which covers all the possible scenario to execute the test cases so that way you can easily identify valid as well as invalid equivalence classes you don’t have to perform testing for each and every possible input value that would be really hectic so this equivalence partitioning makes tting lot easier and it saves a lot of time and effort on your part well let’s try to understand what equivalence testing is with a simple example let’s say I have a test scenario where I have to test input conditions accepting numbers from 1 to 10 and 20 to 30 so how do I write test cases how many test cases should I involve should I check every number from 0 to 10 and then 20 to 30 and then in between and all that that would be really hectic so what do I do I’ve divided the number of input values into five possible test cases I have taken values before one that’s from any number of values to zero that’s just before one which should obviously come under invalid class because we want to test the values which come under 1 to 10 and 20 to 30 and next up we have valid values that’s the values which come under 1 to 10 then obviously the values between 10 to 20 those are also invalid because we don’t want to test those values as in we don’t want those values after that we have values from 20 to 30 which come under valid class lastly the values from 30 want to Beyond instead of picking each and every input value from these five divided classes you pick up a value and perform a test case or execute the test case since rest of the values come in the same category whatever the result you get for the particular value which you take can be applied to that other values as well for example for a range between 11 to 19 I’m taking a value of 15 so I apply 15 I get a results now I don’t have to apply the same thing for 16 18 19 and all because I’m sure they all belong under the same category which is 11 to 19 so the result would be same as 15 that way we can reduce the number of input values that we have to test and save lot of time and effort I hope you have understood it right let’s move on to next type then that’s nothing with boundary value analysis well you can say boundary value analysis is next part of equivalence partitioning it’s a Well observed truth that greater number of Errors usually occur at the boundaries rather than in the center of the input domain for a test it seems logical right you can find more errors at the boundary rather than the values which are at the center so when I say boundary it means the value near the limit where the behavior of the system usually changes so in this boundary value analysis technique test cases are designed to include values at the boundaries if the input is within the boundary value it’s considered positive testing if the input is outside the boundary value it’s considered negative testing so it includes maximum minimum inside or outside edge typical values as in the values which come in the center and error values so here’s a simple example to understand let’s consider a testing scenario here you have to test input conditions accepting numbers from 1 to 10 so using boundary value analysis we can Define three classes of test cases here that would be input boundary values as an exact boundary values which is nothing but one and 10 we want to test all the conditions accepting numbers from 1 to 10 so what are boundaries exact out boundaries 1 and 10 then you have values just below the extreme edges of input domain that’s before one which is nothing but zero and before 10 which is nothing but 9 then you have values just above the extreme edge of input domain that’s the value after one which is nothing but two and the value after 10 that’s nothing but 11 so what are the boundary values that you can consider to test here 0 1 and 2 and 9 10 and 11 so instead of considering all the input values you can consider the boundary values because it’s at the boundaries where the behavior of the system usually changes and then perform testing so that’s nothing but boundary value analysis next up we have decision table based technique a decision table basically is a tabular representation of different possible conditions versus test actions you can think of conditions as inputs while actions can be considered as outputs so in this technique we deal with different combinations of input values this helps tester identify all the input values if he or she has overlooked any because of that very reason it’s also known as cause effect table technique as well so the first task here is to identify functionalities where the output depends on a combination of inputs if there are large input set of combinations then you can divide them into smaller subsets which are helpful for managing a decision table and for every function you need to create a table list down all type of combination of inputs and respective outputs let’s consider a simple example suppose a submit button should be enabled if the user has entered all the required Fields so the test scenario here is that a submit button must and should be enabled only if the user has entered all the required Fields And when I say required fields that it be name email and message as you can see I have eight rules here or eight possible combination of inputs the user has given name and email but he has not given message that would be a rule for then the output would definitely come under negative case right submit Buton will not be enabled suppose if the user is not given anything that’s name email message isn’t given anything so obviously the submit button can’t be enabled nothing happens when you click on the submit button but suppose let’s say user has given a valid name valid email and a valid message then when you click on the submit button something happens that’s nothing but action so that way we consider different possible combination of inputs we draw draw table and we point out what’s the possible output for that particular combination of input next up we have state transition diagram well in this approach the tester analyzes the behavior of an application on the test for different input conditions in a sequence so you can provide positive as well as negative values to check how the application responds here you can apply this technique when an application or the system gives a different output for same input depending on what has happened in the earlier state so the concept here is you can use this technique when your system is giving out different input but for the same input and why do you call such a system you call that system as a finite State system you can follow three simple steps to perform this testing first of all you go ahead and create a state transition diagram which as you can see is there on the screen then you build the state table to review the state transition diagram that can cause errors lastly you design test cases from the state table which you have created in the step step two and the state transition diagram which you have created in the step one if you guys are not familiar with what a state transition diagram is let’s go ahead and check out an example let’s say you have to book a room you have initiated a booking but right now if the room is available the room count will be decremented by one and the room is assigned to you user moves in but let’s say the room is not available your name will be added to the waiting list and from the waiting list when Once the rooms become empty you’ll be assigned a room if there’s a room which is available if not if you or a user givs up then he’ll be removed from the waiting list that’s it the process ends there when you request a room for the same input the input is what you requesting for a room we have two different outputs one the room is available you’re getting a room and the room count is decremented two room is not available and you’re put on the waiting list so for the same input we have multiple output that’s what we call a finite State system now once after confirming the room the customer want to cancel the room booking so what he does he cancels and after that the room count is incremented if there are anyone who is in the waiting list they’re assigned with this canceled room and suppose if the user has moved in and he’s done with it and he’s reached the agreement date and he vacates the room the room count will be incremented and it will be archived and into added to the available room list that’s how everything happens in a sequence so guys this state transition technique is really unique approach for testing highly complex applications which would increase test execution productivity without compromising on the test coverage the last type under blackbox technique is use case testing so first of all a use case is basically a tool for defining the required user interaction it depends on user actions and the response of the system to those user actions this technique is completely functional testing approach as in there’s no programming skill required here unlike other techniques you can follow simple three steps to perform use case testing first of all you need to identify all the possible scenarios from a use case for each scenario you define a test case and a condition for that test case to be executed and lastly for each scenario you need to determine the test data for the test for example you can see a ATM system here so that’s an use case diagram which is representing a typical ATM system functionality and use cases that you can consider the first thing is you have operator who is responsible for starting the system and shutting down the system on responsible time then you have a customer so when a customer comes to ATM and he starts with whatever he’s doing in the ATM that’s when a session begins he’s either withdrawing the money depositing the money transferring the money or inquiring about the balance and sometimes it’s quite possible that when he’s performing all that he might enter an invalid pen that is also an use case which you can add to your use case diagram and the transaction obviously has to happen from the bank so that is also a part of use case diagram as you can see there’s no programming here in wall you just imagine the scenario and you create a use case diagram so this use case diagram is also one of the most popular blackbox testing techniques next up we have white box testing techniques so white box testing is also known as structure based testing unlike blackbox testing this method requires a profound knowledge of code as it includes testing of some structural part of the application so the main purpose of this white box techniques is to enhance Security check the flow of input and output through the application to improve design and usability just like blackbox we have lot of techniques that come under white box testing let’s discuss each of them in detail so you have something called statement coverage or line coverage in this technique every statement in the source code is executed at least once so each line of the code is tested which helps in pointing faulty code in case of a flowchart every node is to be traversed and tested at least once so basically this entire statement coverage or line coverage is based on the assumption that the more the code covered the better is the testing of functionality however the problem here is that with these Technique we cannot actually find the false condition in the source code so for example you have a certain set of code where it takes the value A and B and they added in the value is put to see if the C is greater than 100 then print it’s done so in statement or line coverage what are you doing you’re checking exactly that you’re not going to check what happens if C is less than 100 so what do you do if you have a case where A and B are in such a way that when added the value is less than 100 so this is where the next type of testing technique comes in that’s nothing but decision coverage or Branch coverage in this technique test cases are designed so that each branch from all decision points are traversed at least once so if you consider the previous example which we did earlier if C is greater than 100 is the decision point if C is greater than 100 print it’s done that’s what we checked in the statement coverage or line coverage but we didn’t check what happens if C is less than 100 so at that particular decision point you have two ways that are being traversed so in decision coverage or Branch coverage you check both the possibilities if C is greater than 100 print it’s done else print it’s spending so basically this method is helpful to invalidate all the branches in the code to make sure that no Branch leads to any abnormal behavior and obviously decision coverage includes much more than line coverage so it’s highly powerful than statement coverage or you can say aign coverage and next up we have something called condition coverage or predicate coverage condition coverage is basically for Boolean Expressions it ensures whether all individual Boolean Expressions have been covered and evaluated it to both true and false so I have a simple code here which reads X and Y value comp comp pass them checks if the value is zero and if either one of them is zero it prints zero so basically we have two conditions here x is equal to 0 and Y is equal to0 now these test condition get true or false as their values so one possible test case or one possible example that we can consider here is it should have two test cases in test case one let’s consider x0 Y is some random value but not zero in that case it’ll print zero right the program because X is zero similarly in test case 2 you put some value to X but consider y as zero so again it prints zero so in first test condition X is evaluated to True Y is evaluated to false in the second condition X is evaluated to false and Y is evaluated to two so basically you’re checking every individual Boolean expression has covered and evaluated to both true or false now a little bit extension of condition coverage is that multiple condition coverage unlike condition coverage in multiple condition coverage every possible combination of true or false for the conditions related to a decision has to be tested if we consider the same example which we did for the condition coverage I will have four test cases here in first test case I have both X and Y is Zer in the second test case I have X is equal to 0 in the third test case I have y is equal to 0 and in the four test case I have both of them evaluating to false that both of them are not zero so these are the four possible test cases that I can write right so all possible test cases I’ll consider in multiple condition coverage hence four test cases required for two individual conditions similarly if there are end conditions then 2 to the^ nend test cases would be required just for your information so that’s all about white box techniques next up we have experience-based testing as the name indicates these techniques are logically drawn from experience in designing test cases and test conditions there based on the experience background and skills of a person in the field of testing so basically here the tester makes use of proper strategy and documentation plan along with the gained experience now let’s discuss some techniques that come under experience-based technique well there are about four to five but in this session we’ll discuss the most important ones which is nothing but exploratory testing and error guessing so first up we have exploratory testing this technique is all about Discovery investigation and learning here the tester constantly studies analyzes the product and accordingly applies a skills traits and experience to develop test strategy and test cases to perform necessary testing so the keywords that you remember here are he studies analyzes the product and according to skills traits and experience he perform the testing it’s a very suitable technique when testing team has inadequate number of specifications requirements and severely limited time error guessing well it’s a simple technique of guessing and and detecting potential defects bugs and errors that are most likely to occur in software product so in error guessing no specific rules are applied there no uh rules and conditions as to tester should do this or that it takes advantage of tester skills intuition traits and expertise to find defects that might not be identified when other blackbox techniques are used so this technique totally depends on testers experience again the more experienc the testers the more errors he can identify well another way to actually perform ER guessing is that to regularly create defect and failure list this list can be further used to design test cases and Counterattack the box so guys with error guessing we’ve come to the end of the session so that’s all about software testing techniques each one of them serves best for the specific type of problems in the software if we use one more than others our test coverage will suffer guys so remember to choose the most suitable technique for your projects not the most popular one to conclude in this session we have learned about different testing methodologies and techniques there disadvantages advantages well there’s no such thing as one suitable methodology for all project types the choice of testing methodology or a technique actually depends on the type of project that you’re working on customer requirements schedule and many other factors so the same goes for the techniques as well so Choose Wisely so let’s discuss more about the benefits of software testing tools so first of all tools offer higher test coverage using tools to perform testing offers testers achieve higher coverage with greater process consistency and relevant repetition you can automate the repeated task with these tools and write test cases that cover maximum scenarios so basically software testing tools increase the test coverage and obviously they save time and and resources used in manual testing you have to spend lot of time and effort and money the main objective of any company as I said in the beginning is to achieve best product with less effort time and money testing tools are very helpful in that manner they automate the repetitive task decrease the weight to newans increase the speed and efficiency of testing this way they save lot of time and other resources thirdly they offer support for multiple platforms testing often involves performing same kind of test on multiple applications on different platforms and believe me when I say there are multiple platforms and doing that without help of any tools is too much work and just waste of time software testing tools are made in such a way that using a single tool you can check the functionality of your software or application on multiple Platforms in reasonable amount of time so this support for multiple platforms and next up we have bug-free releases software testing tools relieve the stress that occur before every release release and they earn kudos for buck free releases and next you have easy finding and fixing defects tools help find defects in early stages of development and fix them very easily in the beginning itself not only the beginning stages even later tools speed up your testing process they make it easy for testers to find defects find and fix defects of engineering and before they found by end users that’s what these testing tools offer and lastly they help in Faster release of software patches and new applications with fewer end user issu so to tell in one sentence software testing tools make testing more interesting more fun and less stressful for the team of software testers moving on to next part let’s see what are the characteristics of a good testing tool or the features that a good testing tool must and should have first of all any software testing tool should be easy to use if tool makes a life complex then what is the point of using it right so it should be easy to use used and maintained secondly it should be compatible with multiple platforms and technology that you are using idly a tool should support all and most of the applications and platforms that you use in your organization for your project and just because customers aren’t running your product on Mac today doesn’t mean they won’t be in future so a tool that supports a variety of different operating system configurations is great asset so tools should have operating system compatibility and plat platform compatibility it should include features for implementing checkpoints to verify values databases or key functionality of your application a good tool should support record and Playback test creation as well as manual creation for your automation test well apart from that a good testing tool should have a good debugging facility additionally the tool should provide detailed failure logs so that any script error can be easily identified and fixed without lot of time it should offer robust object identification object and image testing abilities and object identification it should also support testing of a database and finally the most important thing the cost a tool should do everything you need it to do without being a slow drain on your testing budget a good testing tool should always be worthy of your pay so these are certain features that a good testing tool should always have so before you go ahead and select any software testing tool make sure all these features are checklist so now that you know the features the next question obviously would be how do you select a proper tool that suits your requirement don’t worry I’ve got it covered for you guys a testing tool helps a product to be Market ready and climb up in the charts in terms of meeting user expectations there are many criteria to consider while selecting the automation tool or software testing tool in general let’s take a look at simple yet efficient approach to select the right automation tool or software testing tool for a testing project so the first step is to understand your project requirements thoroughly next is to consider your existing tool or the current tool which you’re using as Benchmark then you evaluate the shortlisted tool based on certain key points and finally you use some sort of Matrix to filter out a proper tool among the shortlisted tools so now that we have listed down the steps let’s go through each step in deep so the first step is always to understand your project requirements thoroughly firstly you need to clearly understand whether your current software testing project needs manual or automated testing while neither of these options are technically better or worse when compared to each other the size the budget and the time allowance of a project will certainly be the factors that affect which method will work best for you so get a deep understanding of your project requirements such as project type well it’s based on web or desktop or mobile scope of the project and the existing team strength on code language before you actually start the testing process you should know what precisely does one need to automate and what amount of test cases need Automation and which does not so basically the first step is you should have a thorough knowledge of your project requirements next step is to consider your existing tool as Benchmark you will never know if the tool is best or not unless you have some other tool to compare it with right well you can go ahead and experiment with all the tools but it’s cly timec consuming so consider the current tool of the the one which you’re using right now as a benchmark to evaluate and determine the best automation tool that’s suitable for your project for example let’s say selenium test automation tool is my current tool I’ll consider it as a benchmark the advantages and drawbacks of this tool or selenium web driver framework need to be understood before you actually go ahead and take next step for example like say selenium is free open source tool which is available to test web applications and websites it provides record playback tool to produce and record playback test scripts as well it provides language support for lot of languages like cop Ruby Java Python and not GS but it lacks proper Customer Support Services or documentation browser compatibility is also another challenge with this tool this way you should know all about the current tool that you’re using Pros as well as cons so once you have compared all the tools with your current tool make a list of selected tools and then the tools in the shortlisted list need to be Valu ated on other criterias or you can say vital parameters like is the tool easy to use and maintain does it support multiple application types well there may be desktop web and mobile or web service based application to test so the tools should support all these application types moving on it should support multiple test environments and platforms it should offer better scalability and access to other resources as well the test automation tool should be extendable enough to meet the increasing or decreasing demands later on and for testers it should offer easy authoring of test I mean a testing tool must let you create test very quickly and efficiently it should support integration with other kind of tools like continuous integration tools it should also offer proper logging of results features a software testing tool should keep a log of all the test activity and provide a detailed report for each activity a testing tool should provide users the facility to export test results to share it among team members other features are like like it should offer support for other features and functionalities it should also provide mechanism for comparing the test results and many more so these are few scenarios or you can say criterias or the V parameters where you can evaluate tool on after using your current tool as Benchmark and shortlisting a list of tools you can further short list or remove other kind of tools based on these vital parameters so once you have a list of tools shortlisted using the three steps that we just talked about the next step is to leverage a matrix technique for analysis and choose the best tool among the shortlisted ones for example you have something called pug Matrix p is how you spell it it demonstrates the pros and cons of various tools using parameters which are vital for the project so Guys these are four simple steps that you can follow to select a suitable testing tool for your project let me quickly summarize what we’ve learned the first step is to properly understand the requirement of your testing project the next step is to use a current tool or the one which you’re using right now as the Benchmark to evaluate rest of the tools compare all the tools that you have with your current tool list out pros and cons as well after that from the list of shortlisted tools evaluate them more on other features like we discussed if the tool is easy to maintain or does it support different platforms does it offer logging facility and many other features and based on those vital parameters you short list your tools again and after these three steps from the remaining Tools in your list create a matrix and find out the best one which is suitable for your project well this is not a fixed procedure or anything it’s one sort of procedure there are others as well you can Google them and learn more about it so now that we know how to select a proper tool let’s take a look at different type of software tools which are available in market so guys there are many testing tools available that are useful in several places while testing software product these tools can be categorized as static testing tools and dynamic testing tools so static testing tools test the software without actually executing it rather they’re concerned with analyzing the code or documentation for syntax checking consistency Etc static testing can be manual or even automated with the use of static analysis tools static analysis tools they examine or the test the source code of program highlight the statements with wrong syntax undefined symbols or variables or if there are any uninitialized variables and so on they also check for Flaws in the logic flow of the program apart from that they do not interfere with the execution of program so basically the software testing tools test the software without actually executing it next up we have Dynamic testing tools so as a name indicates these tools interact with the software while execution and help the testers by providing useful information about the program at different levels this information may include number of times a particular statement is executed or if or not all the branches of decision Point have been exercised the minimum and maximum values of variables and so on so basically these tools interact with the software while execution well that’s one way of categorizing software testing tools we also can categorize them as open- Source tools vendor tools and in-house tools so what are these first of all open- Source tools these are free to ous Frameworks and applications engineers build the tools and have source code available for free on the internet for other people to refer to for example you have selenium jmeter and AP so basically open source tools are nothing but free tools which are available online that you can use and you can get source code as well and as for the advantages of these open source tools there’s no license cost obviously they’re free we can modify the source code if you want and most of the time all open source tools support all popular operating and browser environments and as for the disadvantages obviously there is no reliable technical support as in you don’t know who you can contact if there is any error or anything new features may not work properly and very less documentation for you to get started with the tool these are advantages and disadvantages of Open Source tools open source tools are nothing with free tools which are available along with the source code on internet for you to use and next up we have vendor tools vendor tools are basically developed by companies that come with license to use and often they cost money and a lot because they’re Dev by an outside Source technical support is often available for use for customers and the popular examples of vendor tools we have V Runner silk test qtp and rational robot and many other tools as for the advantages like I said earlier vendor provides technical support if you raise any issue or complaint new features will work properly because these tools are developed by some company so vendors update test tools frequently they provide sufficient documentation that’s help manual as for the disadvantages since these are licensed tools they’re costly and this tools support some popular operating systems and browser environments but that’s it they don’t usually support all platforms and lastly we have something called in-house tools and in-house tool is a tool that a company builds for their own use rather than purchasing vendor tools or using open- Source tools for example Microsoft develop so many test tool for their internal use then you have IBM which has developed so many test tool for their internal use and same goes with Oracle Corporation as well so basically in-house tools are something that companies develop for their own use rather than purchasing the vender tools or using the free open source tools available on internet so yeah this is one way of categorizing software testing tools open source vendor and in-house tools we can also categorize tools based on their purpose like we have agile testing tools automation testing Tools Mobile testing Tools load testing and test management tools you also have something called user testing tools but let’s just discuss these five types today so there are tons of software testing tools available these days under each of these categories it’s really hard to keep track of 100 plus software testing tools out there so if you want to know more about any of the tool you can actually refer to articles out there which actually list out the popular tools we have one by Dua as well which is named as software testing tools as for today’s session let’s discuss selection of popular and well-known software testing Tools in various C categories so the first type that we discussing is agile testing tools actually the introduction of agile tools has Revolution the realm of software testing the software testing tools not just simplify the process but they also increase the testing credibility companies are adopting agile software development methodology such as crom extreme programming or XP for their projects so agile has become popular these days but agile testing comes with many challenges it requires experimenting and and trying new ideas anyway few popular agile testing tools include jira I’m sure you’ve heard of it it’s a popular agile testing as well as project management tool which is developed by atashian a software company that develop products for project managers software developers Etc this tool can be used for tracking defects planning creating reports and managing all agile software development projects it’s supports an agile methodology like scrum Canan and many others and next is soap I it is an agile testing tool and is most advanced rest and service oriented architecture developed by smart beer soap UI is basically used for functional testing of web services which include web service development and invoking of web services and many other web service related functionalities it’s a free and open source tool we did discuss what open source tools are right so the source code is available for you to edit so using this tool you can create and execute functional test regression test and load test it allows you to create test cases using drag and drop interface as well so apart from these both you also have other tools like test Trail jmeter practi test and many others if you want to know more about them you can refer to the blog bya on list of software testing tools so next category is automation testing tools as I said earlier automation testing these days is must for most software project to ensure the functionality of key features it also helps team efficiently run a large number of tests in short period of time while on the screen you can see a few tools that help software teams build and execute automated test we have something called HP unified functional testing or ufd it’s formerly known as HP Quick Test professional or qtp is an automated functional graphical user interface testing tool which allows the automation of user actions on a client-based computer application it offers cool features like object recognition error handling mechanism and and automated documentation as well it also uses a scripting language to manipulate the object and controls of application which are under test and I’m sure you’ve heard of selenium right the moment you type software testing anywhere the first thing that pops out is selenium it’s a popular testing framework to perform web application testing across various browsers and platforms like Windows Mac and Linux with selenium you can come up with very powerful browser centered automation testing scripts and these scripts are most of the time a aailable across different environments it is also compatible with several programming languages like C python Ruby net and automation testing Frameworks as well you have another testing tool or automation testing tool spelled w a r and it is pronounced as water it’s an open- Source testing tool made up of Ruby libraries to automate web application testing it’s loaded with Ruby libraries it also supports applications scripted in other languages as well you can link it with databases export your XML files read files spreadsheets and synchronized code AS reusable libraries it is a very lightweight open source tool apart from these three you also have ranorex rational functional tester tosa and many others next up we have mobile testing tools mobile applications have become more and more important for businesses and I’m sure you agree with that so testing teams need to adapt and get ready to verify and evaluate mobile apps as part of their projects there are various tools and online resources to help testers build their test for mobile devices record and run automated user interface and unit test on these mobile applications some of the popular tools that you might have heard of include appm Studio APM C test eggplant test complete and kobiton so guys APM is the most popular mobile testing tool and we have a separate video for APM and APM studio in the Eda software testing playlist you can go ahead and refer to that video if you want to know more about these tools we also have load testing tools the use for websites web applications and application programming interface or apis has become more and more critical in recent times it’s important to design and build them efficiently so that they can handle a huge number of requests that are coming from users so to actually test and verify the performance of these Services under load developers can perform load and stress test using different kind of load testing tools for example you have jmeter VA or WAP load ninja web load smart meter song and many others and lastly we have test management tools software development teams can benefit by test case management tools they can use web page management tools to manage their projects testing resources recording test results and generate report to help optimize all their texting activities so basically everything regarding test like creating test cases and analyzing the results of the test cases creating some statistics based on the analyze results for all these purposes they can use managed or test management tools so there are various test management tools which are available for different needs and the most popular ones include Zer qry Q test test Lodge test Trail test link and many others out there the primary objective of any software project is to get a high quality product while reducing the cost and the time required for completing the project and to do that companies most of the time need to test their software before it actually goes out the door software testing over time has evolved as an important domain in computer science software testing basically is the process of executing the software or in any kind of application to find out if there are any bugs or errors in it before software actually goes public programmers spend hovers trying to iron out every little bug that in an application or software they check for any mistakes or problem in the design and the functionality of the software until then the product won’t be available for commercial use in the market finding out bugs can be a lot of fun and it’s not only for testers but it’s also for everyone who wants their application to be bug free today’s tester has a very high demand in it Market while according to recent reports companies contribute about 25% budget to software test and by 2025 it might be around 33% so you get the point right the demand for testers is really high well that’s out of way now let me ask you guys a question is documentation really necessary in software testing what do you think yes it is documentation plays a very important role in software testing either it can be manual testing or automation testing here’s an example to convince your people well a company let’s call it ABC had delivered a project and the project had unnown issue that delivered this project to one of its client let’s say a very angry client and they found out the issue at client side which became a very bad situation for the company and as usual all the blame was put on on quality analyst of the company the issue was something regarding the compatibility of one website well when this issue was taken to higher authorities they showed the client a written proof of not receiving any requirement asking to check the compatibility of the website so the issue was resolved very peacefully in a way documented requirements save the company from getting suit and that’s how documentation comes handy now if you are asked to write a test case would you know what to do or what that is what would a test script or a test scenario be the first step is learning what these terms are each of this term implies a different level of detail and documentation and is used for different purpose once a tester knows what each of these terms mean they can figure out how to use them to describe the testing that they’re doing on a daily basis so let’s get started then the story actually begins with most detailed way to document testing which is the test script it is a line by line description of all the actions and the data needed to perform a test a script typically has steps that try to fully describe how to use the program like which button to press or in which order to carry out a particular action in the program as such sometimes they also include specific results that are expected for each step for example an example step might be click the x button and for that step example result would be the window closes so that’s what test script is it’s detailed way of documenting what you’re actually doing during or after of before the testing the second most detailed way of documenting testing work is to use test cases test cases describe a specific idea that is to be tested without the detailed steps which are actually specified in test scripts for example a test case might say test that discount codes can be applied on top of a sale price this doesn’t mention how to apply the code or whether there are multiple ways to apply the code will the tester use a link to apply a discount or enter a code or have a customer service app that apply the discount it doesn’t matter test cases give flexibility to the tester to decide exactly how they want to complete the test and apart from test script and test cases we have least detailed type of documentation which is test scenario a test scenario is a description of an objective a user might face when using the program an example might be test that user can successfully log out by closing the program just based on that light description tester might choose to close the program through the menu option kill it through the task manager turn the computer off or see what happens when the program runs out of memory and crashes since test scenarios offer little information on how to complete the testing they offer the maximum amount of flexibility to the tester who is responsible for testing so guys while these are three ways of documenting what you’re actually during before or after testing apart from these there are other types of documentation but as for today’s session we are going to concentrate on test cases the primary goal of a test case is to ensure whether different features within an application are working as expected under the given conditions or not it helps validate a software is free of defects and if it is working as per the expectations of end users the activity of writing test cases help you to think through the details and ensures you’re approaching the test from as as many angles as you possibly can so basically test cases ensure good test coverage which is really a key functionality when it comes to testing it improves the quality of the software and decreases the maintenance and software support cost it allows the testers to Think Through different ways of validating features as in as a tester you’ll have the option to think from different angles and in test cases you can write test cases for negative test data as well which is often overlooked most of the time and these test cases are reusable for future anyone can reference them and execute the test and they also help you to verify that the software meets the end user requirements and the end user or a customer is really happy about your product or an application so Guys these are few reasons why test cases are extremely useful in software testing test cases are powerful artifacts that are beneficial to Future teammates as well as a good source of Truth for how a system and particular feature should work however before we deep dive into the lessons for writing topnotch test cases let us have a basic idea on the terminologies associated with them so the primary ingredients of a test case are an ID description bunch of inputs few actionable steps as well as expected and actual results let’s learn what each of these terms mean first you have test case name the first step for writing an effective test case is giving it a name or a title that is self-explanatory as a best practice it’s good to name the test case along the same lines as the modules that you’re actually testing for example suppose you’re testing a login page title can be something like login page if the tool you’re using doesn’t already do this it might make sense to include a unique identifier instead of a long title so what I’m saying is that instead of using a test case name you can actually use an ID for the test case as well and make sure the ID is unique for each test case but if you are using a title or a name it should be self-explanatory so one look at the title name any person who is looking at it should get to know what you’re

    actually testing on so moving on to next parameter it is test case description the description should tell the tester what they’re going to test sometimes this session might also include other information such as test environment test data preconditions as assumptions and all that a description should be easy to read and immediately communicate the high level goal of the test it should not be lengthy right so if it’s actually very lengthy nobody’s going to look at it it should be in such a way that it should be very small and one look at it the reader will know what it is actually about so crisp that’s the word I’m looking for so the next parameter is preconditions you should include any assumptions that apply to the test or any kind of preconditions that must met prior to the test being executed well this information can include which page the user should start the test on dependencies on the test environment and any special setup requirements that must be done before you actually start the test this information also helps testers keep the test steps short and concise for instance in our logout example the assumptions and prerequisite can be the user is logged in and already has a valid yahoo.com email address along with the password and as for the Assumption it could be the user is trying to access yahoo.com on a supported web browser so anything that you want to actually mention before you actually start testing you can do it in this preconditions the next one is actually the test case steps the test steps should include the necessary data and information on how to execute the test this is perhaps the most important part of a test case it is important to keep the steps clear and brief without giving any essential details in case the step is difficult to navigate having relevant artifacts like screenshots or some sort of commments can be very helpful and next comes test data testing for every data permutation and combination is really challenging and literally impossible hence it becomes important to select a data set that gives you sufficient coverage so select a data set that specified not just the positive scenarios but negative as well so this way you cover all around possibilities then you have expected result the expected result tells the tester what they should experience as a result of test steps it helps the tester determine if the test case passed or failed then comes the actual result actual result column in the test case specifies how the application actually behaved while test cases were being executed if the actual and expected results are the same it means that your test case was successful and to show if your test case was successful or not you can actually add one more parameter like status of the test case well I haven’t shown it here but you can go ahead and add it and finally you have something called commands any useful information such as screenshots that tester can provide to developers or some sort of instructions can be included in this comment part so guys this is the typical format the testers follow when the wrer test case along with these elements testers can include additional parameters like test case priority type of test case like is it a positive test case or a negative test case or or if you have lot of bugs you can actually assign an ID separate for each bug so we have another parameter like bug ID and all so this is not a fixed format it depends on the tester but basically every test case usually includes these parameters plus additional sum so now that you know about the basic format or how to represent a test case let’s go ahead and look at different techniques that you can use to write the test cases a good test case design technique is really crucial to improving the quality of the software testing process it helps to improve the overall quality and effectiveness of the release software or an application the test case design techniques are broadly classified into three major categories which are specification based or blackbox test then you have structure based and finally you have something called experience-based so let’s look at each of them in more detail specification based or blackbox test case design techniques are usually used to design test cases in a systematic manner they use external description of the software such as technical specifications design details client’s requirement and more to derive the test cases with the assistance of these test case design techniques testers are able to develop test cases that save time and allow full test coverage and under specification based or blackbox techniques you have five more types let’s look at them later moving on to our next major category it’s structure based or white box techniques the structure based designs test cases based on internal structure of the software program and code here developers going to minute details of the developed code and test them one by one it’s further divided into five categories again and finally the last major category is experienced based techniques these techniques are highly dependent on testers experience to understand the most important areas of software they’re usually based on the skills knowledge and the expertise of people involved in the testing phase so these are the three major categories moving further let’s look at different techniques which come under the categories that we just discussed first under specification based or blackbox test we have five types like I said earlier the first one is something called bound value analysis or abbreviation is bva this technique catches any input errors that might interrupt with the proper functionality of the program then you have equivalence partitioning or EP in this technique the test input data is partition into number of classes having an equal in number of data so the data is distributed equally the test cases are then designed for each class or partition that are made this actually helps you to reduce the number of test cases es and then you have decision table testing here test cases are designed on the basis of decision tables that are formulated during different combination of inputs and then you have state transition diagram as the name actually indicates testers use State transition diagram to write and filter out the test cases finally you have something called use case testing in this technique the test cases are designed to execute different business scenarios and end user functionalities moving on to our next major type white box or specification based here again we have five types the first one is statement coverage this technique involves execution of all the executable statements in the source code at least once then there is decision coverage well this is also known as Branch coverage it is a testing method in which each one of the possible branches from each decision point is executed at least once to ensure all reach code is executed then you have condition coverage condition testing is also known as predictive coverage testing each Boolean expression is predicted as true or false here all the testing outcomes are at least tested once this type of testing involves 100% coverage of the code and then you have multiple condition testing the purpose of multiple condition testing is basically to test the different combination of conditions to get 100% coverage which I mentioned in the previous step which is condition coverage and finally we have something called path coverage in this technique the source code of a program is used to find every executable path this helps to find out all the faults within a particular code moving on to our next major type it’s experience-based we have something called error guessing in this technique the testers anticipate the errors based on their experience availability of data and their skill and knowledge of product failure so that’s why it’s called error guessing and then we have something called exploratory testing this technique is used to test the application without any formal documentation in this the test design and the test execution are performed concurrently so Guys these are some major popular techniques that you can use to write a test case so the successful application of any of these test case design techniques will render test cases that ensure the success of software testing so guys test cases are very important for any project because they are the first step in any testing cycle and if anything actually goes wrong at this step it might impact As you move forward in your software testing life cycle knowing how to write good test cases is extremely important it doesn’t take too much of your effort and time to write effective test scripts As Long as You Follow certain guidelines let’s take a look at few guidelines of best practices that you need to follow while writing test cases first of all you need to consider test cases based on risk and priority prioritize which test cases to write based on the project timeline and the risk factors of your application for example a highrisk feature that is scheduled for delivery in 6 week might be of higher priority than a feature or a lowrisk feature which is due to be released the next week well there’s no given formula on how to decide on the priority here you will get to know with experience moving on make sure you don’t forget about the 8020 rule the 20% of your test should cover 80% of your application even writing a short scenario can uncover a significant part of your box so this is basically the principle which is used behind sanity and smoke test actually then start with the good enough test cases what I mean by that is writing test is never done in one swoop many times it’s better to write test cases that are good enough at the present but be sure to revise them in future if needed in the most most important thing is your test cases should be crisp test suits should be defined so that they take between 45 and 90 minutes to run while still covering a significant area of system in one swoop so when choosing what test to write focus on how they can be outsourced make sure your test cases can be completed by others if necessary next classify test cases based on business scenario and functionality this will allow you to look at the system from different angles the logic here is that you need to know what test to write and when to actually write it differentiating will also help organize your test in the test Library so you and your team can actually choose what test cases need to be run based on the need of your testing and another important thing put yourself in the shoes of customer it is often a common scenario like we discussed one in the beginning of the session that an angry customer would knock up at customer support explaining that software is not delivering an intended feature up according to his expectations so while writing test scenarios keep end users requirement in the back of your mind because ultimately the product or the software designed is actually for the customer right so that’s important put yourself in the shoes of customer think like a customer and actively use a test case management tool test case management tools are deemed necessary for managing a stable release cycle they help to develop a level of transparency where everyone knows about who is working on what they can also be used for tracking deadlines related to Buck fix and a lot more in order to write effective test cases it is important that you learn the Practical use of your respective test case management tool guys there are a lot of test case management tools in the market you can choose the one according to your requirements and actually be sure what you’re actually using the tool for and finally monitor all the test cases so when working as a remote software tester or if there are too many software testers who are working on a similar project then it’s common for two software testers to bump on two similar test case therefore monitor all the test cases which are written by you and make sure to note them if they are unique or if they’re common also remember to remove the irrelevant and the duplicate test cases well I can keep going on but there are way too many guidelines that I can actually cover in this session the ones that we learned just now should be good enough for you guys to actually get started in writing test cases so do check out for more as you progress now let’s see if your common problems that you come across in test case writing process the first thing is composite step so what is a composite step here’s an example let’s say you’re giving directions from point A to point B when you say something like go to XYZ place and then to ABC it doesn’t make much sense right that’s a composite step instead of that you can say turn left from here and go one mile and then turn right on the road number 11 to arrive at Place XY Z that makes more sense here’s an actual testing example so as you can see that’s the wrong way of writing your test case I have five steps here the first step is to log into website then actually to go to realtime test session select the configurations and the step four is hit start button to run the test and perform testing of your website on respective configuration and step five is to terminate the test session now which do you think of these steps is a composite step if your answer is four you’re absolutely right you’ll get to know why let me show you the right way of writing it instead of just saying hit start button to run the test and perform testing of your website based on the respective configuration you can just elaborate it for example let’s say let’s start from the step four hit start button to run the test scroll from the top to bottom of the web page check all the icons and paddings are supported or not check resolution display and then turn need the session well in the wrong way of writing we’ve actually skipped all these important steps so what I’m trying to say here is that test cases should always be self-explanatory it is important to write the test cases as granular as possible so guys be granula while writing down the steps for execution so break them down instead of making it complex and representing them in the single sentence another frequent mistake that you might make is including multiple conditions in one test case once again let’s learn from example on the screen you can actually see set of steps which are included in a single test for a login function let’s check them out so the first step is to enter valid details and click submit leave username field empt and click submit leave password field mty and click submit choose an already logged in username or password and click submit so basically I have included all the four step in one step now you might be thinking what’s WR with that it’s saving a lot of documentation and what I can do in four step is actually I’m doing in one step isn’t that great well not quite here are the reasons as to why so what if one of the condition fails we have to mark the entire test is failed right if you mark the entire case failed it means all the four conditions are not working which really isn’t the case it’s because just the first case is not working but you’re marking failed for all the four conditions that doesn’t make sense tests need to have a flow here which you cannot actually see so the solution is to write modular test so Guys these are the common mistake that you might make when you’re actually started writing test cases so please do keep this in mind when writing test cases so that you can avoid them so guys that’s all with the theory part let’s go ahead and write a test case now but before that here are the simple steps to get you started with first thing is to prepare to write a test case first of all consider if your test case already exists before writing a new test case for your module find out if there are any already existing test cases that test the same component if you do find anything as such consider updating the test case rather than writing a new one next know the characteristics of a good test case being aware of what constitutes a good test case will help you write a better and a strong test case while you might ask what characteristics here are a few first of all you have something called accuracy the test clearly articulates the the purpose then you have something called tracing the test is capable of being traced to requirements then you have repetition test can be used to test as many times as necessary reusability the test can be reused if necessary and then you have Independence every test case you write should be able to be performed in any order without depending on any other test case these are few characteristics that a good test case should have so make sure your test case Falls somewhat under these categories and the next step is to consider the different scenarios before you actually start writing concentrate on what could happen with the product when being used by customer think from the shoes of customer think about this carefully and design your test accordingly and finally give yourself sufficient writing time because scenarios and cases form the base for your future test cases and testing you need to give yourself enough time to write a quality test as well as time to have procedure thoroughly reviewed so don’t write the test es in hurry like I said the best guideline when you’re actually writing a test case is to write a good enough test case start with small and make it perfect as you progress so these are just prep before you actually start writing a test and now that You’ have started writing a test what you actually need to do is select a tool for the writing a test case there are a lot of tools out there Excel spreadsheets are highly recommended for writing basic test cases and for manual testing as well apart from that you have other tools such as test link web test test ofia and many others so according to your requirements choose the tool whichever you feel comfortable with and make sure you know the functionality of the tool and next step is to write a test case with a choosen tool well we did discuss the template of the test case earlier right so include all those parameters and write a well- defined test case so once you’ve written a test case the next step is to write a basic test case statement for example you have few parameters like verify what is being actually tested using what tool you’re using the tag name dialogue then you have withd what are the conditions under which you’re actually testing for and then two what is being actually fed as an input to the test what is being written and what is the expected result and all that so once you finished testing it’s like a final note on what you actually have written your test case or a basic test statement for your test case and finally review the written test case your job isn’t quite over once you’ve actually written the test case you still need to review everything that has been written and evaluate that all steps are clear and comprehensible and that the expected results match with those steps so I hope the steps were clear enough right and I guess now you’re good to go you can actually start along with me or you can actually see what I’m doing right now and after that you can go ahead and write a test case of your own so let’s go ahead and write a test case for banking website so guys as for this session in this demo I will be using Excel sheets to write my test case you can actually go ahead and use any other kind of test case management tool for your purpose so before you actually get started with the test case there are some basic details that you should mention it’s not a compulsory thing but it’s good to have a basic description about what you’re actually going to do so let’s say the project name project name then module name as in the module which I’m going to test the T case is written by written date executed or reviewed by and similarly executed date date and so the project name would be Bank website testing then you have module name which can be login because we’re checking the login functionality first it’s written by let’s give my name date some date some month and some year executed by some XY Z person and then again some date some month and some Year we’re good to go now let’s just mention the parameters which should be test case title or it can be ID if you want next should be test case description then test steps prec conditions if I have any test data expected result so I’m just going to add these for now if according to your requirement you can go ahead and add all things as well actual result and let’s add something called status to see if the test case was successful or not and finally comment here we go we are checking on login functionality so I’m giving the name as login functionality which is verify functionality with valid username and password let me align it okay and as for the test steps which should be navigate to login page enter username enter password click login prec conditions nothing for navigation here I’m saying it should be valid username similarly valid password now the test data let’s give username as some random data and as for the password again so what should be the expected result for navigate to login page you should be able to see the login dialogue box credentials can be entered or you can say same thing credentials can be entered if or not actually trying to enter when you’re trying to enter if the data is actually getting inserted or not then here for the click login you can say user logged logged in since we are using valid username and password let’s just write the actual result for each of these steps let’s say we have successfully navigator to login page so let’s just write as expected it means we are able to navigate to the login page then credentials can be entered again as expected what I’m trying to represent here by writing as expected is that it’s as expected to my expected results and user loged in since you are entering Valley details it’s successful login or let’s say user successfully now the status is pass which is from all my four steps so I’m going to do this pass I do not have any comments that’s it guys we’ve successfully written a test casage let’s write another one for the invalid details so again the name is same let me just copy this and paste it that’s better with invalid username and password the rest of the steps are same in valid username I have removed the U if you can see here then the password is going to be valid so I’m going to put that here same as for this you should be able to see the login page that should be successful credentials can be entered as in you’re able to enter the details and use a logged in this three should be same as expected because you’re able to navigate you’re able to enter in the details but as for here user login unsuccessful so that will be pass which is going to be same for rest of the three steps but this step is a fail so guys as for login these are two cases that I’ve written here we can go ahead and write for multiple possibilities like invalid username invalid password valid username invalid password or if your navigation to the login page is not happening like that for different combination you can actually test cases suppose let’s say you have logged in successfully let’s write a test case to upload photo in your profile so the name should be upload photo functionality here we go what should be the description upload a phototo as logged in user sounds good when I say logged in user I meant valid user now I want to add another extra field here let’s say preconditions or pre- steps actually I need to insert a column yep here we go and I’m going to make it as preep what is a preep the pre-step here is login with correct data login with valid data that’s the action I actually want to perform that’s why I’ve written in the step as for the preconditions I can say login details should be valid now the test steps I have three first one is Click the upload let’s say click the upload photo link or photo button link is more better then upload a photo as an add the photo and then you have click on the upload button so precondition I’ve already added that’s login details it should be valid I do not have any test data or anything let’s go for the expected result what I’m expecting to happen here is upload a photo page should open that’s what I’m expecting to happen and as for here when I upload a photo image should be selected image to add should be selected image to be uploaded should be selected now the next thing is click on upload button photo should be successfully uploaded so photo uploaded correctly properly or correctly anything now what are the actual results I’m expecting it’s the test case here is upload photo as a logged in user as in successful user so as expected if the navigation Works proper if I click on that photo upload link if it goes proper then as expected similarly and here’s the same as well so this will be passed because my test has passed successfully then Pass and Pass well this was for a logged in user if you do the same for the logged for the invalid user credential you wouldn’t have anything in the pre-step here so upload photo as a invalid user for all these actions upload a photo page if it navigates properly that should be a pass upload a photo if you actually have any photo that you’re uploading that would be a pass but when you click on the upload button it does work properly but before actually this happens you are logging in or you’re using this as a invalid user so here your test tape actually fails here itself before itself because you’re not a valid user so this way you can actually write the test cases according to your requirements so guys based on the things that we have learned today go ahead and write a sample test case according to your requirement there are a lot of sample templates on Google that you can search for and verify to actually Master writing test cases so what is a test plan the overall software testing process also has many other formal procedures fees but the plan is actually where we begin or where a testing company actually begins like any project when you have a plan in place chances are it will go very smoother so a test plan and software testing is the document that outlines the what then how who and more of a testing project well in general it includes the objective and the scope of test that are to be run it contains guidelines for testing process such as approach testing task environment needs needs tools requirements schedule constraint and many other things so test planning is the first thing that should happen in the software testing life cycle it’s very important because it summarizes the testing process the plan is basically broken down into manageable pieces so that we know how to deal with each aspect of that process and it’s a record of our objectives as in the tester’s objective so the tester can look back and see how he actually did the testing and where he has to change did he follow according to the plan and all that so a test plan essentially contains the details of what the scope of testing is what the test items are what the test items test or pass criteria will do and what is the need to set up the entire test environment and many other things well now that I’ve talked so much about what a test plan is like I said it contains all the details before you actually start testing you might be probably wondering why is it necessary to invest all this time and effort to create a test plan how about just jumping off to testing and getting the work started while hold on you might need to rethink testing is an important process in software development like cycle which controls and determins the quality of your deliverables so if you want to deliver a bug free product at its plan timeline you need a good test plan to make it happen well here are some reasons to convince you why test plan is really beneficial before you actually start testing so first of all it serves as a framework and a guide to ensure your testing project is successful and it will help you control risk as well the very Act of writing helps us think through things in a way we might actually not consider normally not just in software testing it’s the case even when you plan anything in your life right so yeah the test plan contains details of testing scope which prevents testing team from putting any efforts in testing out of scope functionalities with test plan you can have rough estimate of time and effort which is needed to complete the software project it clearly defines roles and responsibilities of every team member so every individual in the testing team knows what he is required to do and what is expected to do also it provides schedule for testing activities hence it provides you a baseline schedule to control and track your team’s testing process but one thing guys as changes to the test plan are made the test plan document should be updated to reflect the the new decisions that you have actually made so test plan is not some a fixed document or something it keeps changing according to the requirements and the test process that you follow it also outlines the resource requirements and equipment needed which are essential to carry out the basic testing process so it guidelines the testers thinking it acts as a source of proof If you need to refer to anything in future just like the example which we discussed in the beginning of the company ABC like the CL had an issue but then the client didn’t specify the requirement when he was listing out his requirements the company had proof so somehow they were saved from getting sued so basically it’s a proof which you might refer to or which you can refer to in future so apart from that it encourages better communication the test planning and the plan itself it serves as a vehicle for communication with the other project team members such as testers peers managers and other stakeholders it also helps people outside the test scene such as developers business managers customers understand the details of testing so that’s how important a test plan is in this way it serves as a guide book for entire testing process even though we are aware of the benefits of having a test plan we also know that testers may choose not to write one arguing for reasons like it takes a lot of time so even though we are aware of the benefits of having a test plan we also know that some testers may choose not to write one for multiple reasons like it takes a lot of time and effort to prepare a very lengthy and detailed test plan changing Management in the test plan can be challenging for dynamic projects and that plan often has written information and many of reasons so what happens when one doesn’t have a test plan let’s check out first of all it creates a misunderstanding about roles and responsibilities when there are no clearly defined roles and responsibilities it could lead to important task of testing being left undone or to an un NE effort for example when two testers work on the same task so basically both of the testers are think that they have to test the product but they’re testing the same feature of the product and it’s just waste of time so there’s a misunderstanding about roles and responsibilities secondly the test team does not have clear test objectives for example the test team is unaware of the different types of testing that should be done on a system as well as the reasons for doing the different types of test without clear objective for running tests there’s an increase likelihood that critical and essential system characteristics will not be adequately or properly tested well again it’s a huge loss for the company and testers without a test plan doesn’t know when the process actually ends because the exit criteria has not been specified the testing team does not know when the software testing process actually ends this is essential as in the test team should know when the process ends because it helps to finish the task within the stipulated deadline without compromising the quality functional ity and efficiency of the software so basically without a proper test plan the test team or any tester doesn’t know when the software testing process actually ends and what are the proper timeline schedule and all that and lastly testing scope is not defined this is important since the client have false expectations regarding the amount of testing work that has to be done and the test items that are out of scope which should not be tested so due to these reasons you need to understand that writing a test plan or developing one is really important task before you actually begin with testing as you can clearly see writing a test plan is more advantages than disadvantages well there are different types of test plans let’s check what they are so basically first you have a Master Test plan it’s a single highle test plan for entire product or the software project that you’re working on and you unifies or it’s a combination of all the test plans as you can see the word Master right in the name so basically it’s a combination of the my new test plan which you create along the process of testing then you have something called level specific test plan I might have discussed in previous session that the software testing has different levels especially four important levels like unit testing integration testing acceptance testing and system testing well not in the same order but anyway so you can write a separate test plan for each of these levels and when you do that that’s what we call a level specific test plan and then comes type specific test plan as you already know there are multiple types of software testing basically having a single test plan for different type makes it complex I mean it doesn’t put out the benefits of test plan actually so to make the entire process easier you create separate plan for different types of testing that you’re employing while you’re testing the product so that we call a type specific test plan this type specific and level specific combined we call all of them together as Master Test plan so I hope you understand the distinction between different test plans right moving on you already know that making a test plan is really important task of test management process so how do you go ahead and write a test plan is that a procedure or a standard procedure at that let’s check it out so basically to write a proper test plan there are six simple steps that you can follow first step is to analyze the test product so can you test a product without any information about it well no right so you must learn a product thly and you need to understand the product more deeply before even testing it so the first step towards creating a test plan is to analyze the products its features functionalities so that you gain deeper understanding of the product further explore the business requirements and what the client wants to achieve from the end product understand the users use cases to develop the availability of testing the product from users’s point of view so basically at the end it’s user who you’re are trying to impress or satisfy the requirement so you need to have proper understanding of the product the user requirements and expectations of the product so how can you actually analyze a product in a systematic way the first thing is you can go ahead and interview your client designer developers of the software product because it’s who they start preparing the product from the scratch so they’ll know more about the product than you do so go ahead and ask them about each and every minute detail review the product and the entire project once you get them don’t avoid the important details go through all the details secondly you perform a product walkth through that’s nothing but just use the product as if you are the user and see if it’s as end user if it satisfies your requirements or not so that’s how you analyze the product moving on the second step is to develop a test strategy once you have analyzed the product you’re ready to develop the test strategy for different test levels so your test strategy can be composed of several testing techniques keeping in mind test cases and business requirements you can decide on which type of technique that you want to use for example if you’re building a website which has thousands of online users you will include load testing in your test plan similarly if you’re working in an e-commerce website which includes online transactions you will emphasize more on security and penetration testing so depending on your requirement or actually the user requirements you decide on the different technique or the strategy that you want to use when you’re testing well under this step we do have multiple steps which is to define the scope identify the testing type document the risk and the issues that you might come across and how to face the risk and all that and lastly create the the test Logistics let’s not make it more Theory based I hope you’ve understood the Second Step let’s move on to next step which is to Define objectives so basically a good test plan clearly defines the testing scope and its boundaries so as you guys know the objective of testing is to find as many software defects or bugs as possible ensure that software and test is bug free before you release it to Market so you need to define a test objective to do that you can just follow two steps which is to list all the software features it can be anything functional performance graphical user interface security many other things which you might have to test secondly after listing all the requirement features Define the Target or the goal of the test based on the features that you have listed down make a list of features which has to be tested which need not be tested this will make your test plan specific and more useful so like I said one of the benefits of test plan is you can avoid your time spending or testing the features which needs to be tested and avoid out of scope functionalities and along with that you might also have to specify the list of deliver BS as output of your testing process you might need to explicitly Define if any testing techniques such as security testing for example is out of scope for your product or if you need it or if you don’t need it all such things come under defining test objectives moving on to next step we have something called resource planning obviously when you’re testing you need a lot of resources tools people and all that so resource plan is a detailed summary of all types of resources required to complete a project task it could be human like I said all your equipment materials needed to complete testing project it’s an important factor of test planning because it helps in determining the number of resources it could be employment equipment anything to be used for the project therefore the test manager can make the current schedule and estimation for that particular project while I’m not going to list down all the roles and responsibilities or the people involved in all that but uh to understand the step it’s nothing it’s just planning about the resources which you might require when you’re actually testing the next step is schedule and estimation so with the knowledge of testing strategy and scope in hand you’re able to develop schedule for testing so divide the work into testing activities and estimate the required effort you can also estimate the required resources for each task so make a table it’s simple right in one column you can have the list of testing activities in second column you can have the members who are responsible for performing those activities and then you might actually include the schedule as well as in when this task has to be completed by when is the deadline and all that you can also include another column which says what resources are required to complete the task so that way you can control the progress or of your testing process so to create the project schedule the test manager needs several types of inputs like we discussed about deadline estimation risk and many other details so a good test plan clearly list Downs to roles and responsibility of testing team as well as the team manager as well so basically the table which you’ve created which you should create will tell everyone what to do when to do and what are the risk that might they might come across and all that and last step is to determine test deliverables so test deliverables is basically a list of all the documents tools and other components that has to be developed and maintained in support of the testing effort there are different test deliverables at each phase of software development like cycle so basically you can divide entire software testing into three parts before testing during testing and after testing testing and during this three phases of testing you do have different test deliverables for example before testing you might need something regarding test plan document test case document test design specifications this all before you actually even begin testing then during testing you need something like test scripts test cases simulators test data Matrix error logs execution lcks and many other things similarly after testing you might need to create reports defect reports release notes issues regarding the risk that you have faced and how did you overcome and all that so these are nothing but test deliverables well these are the six simple steps that you should follow but lastly your test plan is incomplete without anticipated risk mitigation techniques and risk responses well there are several types of risk in software testing such as schedule budget expertise knowledge so you need to list down the risk for your project along with the risk responses and the mitigation techniques to lessen their intensity so that’s how we write a test plan guys it’s easy right you analyze the product after that you develop a test strategy decide on the type of testing that you want to do then Define your objective as in why do you actually want to test then estimate the amount of resources that you might have to require or that you might require by performing testing then do think about shedule and estimation write that as a point in your test plan and lastly determine the test deliverables well it sounds easy but what do you actually include in a plan different people may come up with different section to be included in testing plan but who will decide what is the right format well you can go for a toly standard test plan template to assure that your test plan meets all the necessary requirements while anybody just can’t go and write test plan according to their requirements right it messes up so there’s a standard format which is created by it that you can write or you can use to write your test plan now if you’re wondering what an it is it’s an international institute that defines standards and template documents which are globally recognized so you can use the standard template to write your test plan it has defined i e 829 standard for system and software documentation 829 it specifies the format of set of documents that are required in each stage of software testing so let’s briefly discuss what are the things that you should include in your template I won’t make it much Theory based I’m just going to mention the parameter and what does it actually have to include so let’s start so the first parameter is test plan identifier so as a name actually suggest it’s it uniquely identifies the test plan it identifies a project and it may include version information as well it also contains information of test plan type the types that we discussed earlier Master Test plan test level specific test plan and testing type specific test plan so that’s all basically a one look at test plan identifier you need to know what testing is done what are you going to test and all that then an introduction it contains the summary of entire test plan it sets the objective scope goals and many other things of test plan it also contains resources budget constraints it will also specify any constraints and limitations of a particular test plan coming up next is test items it’s a software item that is application which is under test this parameter lists the test items such as software products and their versions and all that and next you have features to be listed in this section all the features and functionalities which need to be tested are listed in very detail it should also contain references to requirement specification documents that contains details of features which need to be tested so basically it contains all the features and the links to the features which need to be tested obviously since we have features to be tested we also have a parameter which says features not to be tested it basically lists the characteristics or the products or the features of the product that need not be tested or you can say out of scope it also contains the reasons as to why these featur should not be tested and then you have something called approach in this section approach for testing will be defined it contains details of how testing will be performed it contains information of of the sources of test data inputs outputs testing techniques and priorities it will Define the guideline for requirement analysis develop scenarios derive acceptance criteria construct and execute test tases and many other things and then you have something called item pass or fail as you can see in straightforward it describes a success criteria for evaluating your test results basically it documents whether a software item has passed or failed the test and based on what you should decide if it has passed or failed the test then you have something called suspension criteria it will describe any criteria that may result in suspending the testing activities and subsequently the requirements to resume the testing process then you have test deliverables we did discuss the different things that you might require during three stages of testing that’s before testing during testing and after testing and all that then you have testing task in the session testing tasks are defined it also describes the dependencies between any task resources required and and estimated completion time for these task testing task may actually include creating test scenarios or creating test cases creating test scripts executing these test cases and scripts reporting bugs creating issue logs and many other things basically the tasks that you want to perform while testing are all come under this testing task then you have environmental needs so this section describes the requirements for test environment it includes Hardware software or any other environment requirement for testing So the plan should identify which testing equipment is already present what needs to be newly brought and all that moving on we have something called roles and responsibilities obviously when you’re performing testing you have a lot of people in your team so you need to define the roles and responsibility of each person involved that’s what you do in this parameter then you have staffing needs it basically describes the training needs of the staff for carrying out the plan testing activities successfully well if they need they can be further trained on before moving on or before putting them onto next level of testing then you have something called schedule so you provide a summary of the schedule specify key test Milestones or you provide a link to the detailed schedule and all that the schedule is created by assigning dates to the testing activities you can prepare a detailed table like we discussed earlier and then obviously the risk risk play a very important role you have different risk regarding security bugs and many other fields so you list out risk and how to mitigate them and what how does that risk actually affect your testing and all the details here and finally you have approval this section basically contains the signature of approval from your stakeholders that your test plan is perfect and you can proceed to testing so I hope it wasn’t very difficult to understand right it’s straight forward you can actually understand by just looking at the names of the parameters really straightforward so please do go through it again if you found that the theory part was more the slide should help you out here so that’s it guys with this we have reached the end of the session we discussed the details of the test plan and what to include in a test plan basically a test plan is a guide book for testing process and it’s vital to keep testing process on right track so basically you can use a test plan as a mechanism to seek answers to drive information exchange and consensus and to prepare yourself for further runs of testing make it valuable for you and your stakeholders make your test plan work for you and not against you so the main aim of the test plan is to make testing much more easy easier for you so what is functional testing now this particular testing is defined as a type of testing which verifies that each function of the software application operates in conformance with the requirement specification now this testing mainly involves the blackbox testing and it is not concerned about the source code of the application now each and every functional of the system is tested by providing appropriate input verifying the output and comparing the actual results with the expected results now let’s have a look at some of the advantages of functional testing that makes it more preferable so this testing reproduces or is a replica of what the actual system is that is it is basically a replica of what the product is in the live environment now testing is focused on the specifications as per the customer usage that is system specifications operating system browsers Etc also it does not work on any if and buts or any assumptions about the structure of the system so basically there are no assumptions for this testing next up this testing also ensures to deliver a highquality product which meets the customer requirement and makes sure that the customer is satisfied with the end results it also ensures to deliver a bug-free product which has all the functionalities working as per the customer requirement finally the risk-based testing is also done to decrease the chances of any kind of risk in the product so now that we have seen all the advantages of functional testing let’s move ahead and have a look at the different steps involved in this functional testing now the very first step involved is to determine the functionality of the product that needs to be tested and it includes test the main functionalities error condition and messages usability testing that is whether the product is user friendly or not now the next step is to create the input data for the functionality to be tested as per the requirement specification later from the requirement specification the output is determined for the functionality under test this is the step three here now in the step four the prepared test cases are executed and finally the actual output that is the output after executing the test case and expected output are compared to find whether the functionality is working as expected or not now functional testing has many categories and these can be used based on the scenario so let’s have a look at some of the most prominent types of functional testing first up we have the unit testing now unit testing is usually performed by a developer who writes different code units that could be related or unrelated to achieve a particular functionality this usually entails writing unit tests which would call the methods in each unit and validate those when the required parameters are passed and its return value is as expected now code coverage is an important part of unit testing where the test cases need to exist to cover the line coverage code path coverage and the method coverage next up we have the sanity testing now testing that is done to ensure that all the major and vital functionalities of the application or system are working correctly now this is generally done after a smoke test so what is smoke testing now the testing that is done after each build is released to test in order to ensure build stability is known as the smoke testing it is also called as build verification testing then we have the regression tests now testing performed to ensure that adding new code enhancements fixing of bugs is not breaking the the existing functionality or causing any instability and still works according to the specifications is known as the regression test now regression tests may not be as extensive as the actual functional tests but it should ensure just the amount of coverage to certify that the functionality is stable next up is the integration tests now when the system relies on multiple functional modules that might individually work perfectly but have to work coherently when clubbed together to achieve an endtoend scenario validation of such scenarios is called integration testing and the final one is the usability testing now the product is exposed to the actual customer in a production like an environment and they test the product the users’s comfort is derived from this and the feedback is taken this is similar to that of user acceptance testing so these were some of the important types of functional testing now moving on let’s have a look at the different functional testing techniques so basically we have two main techniques that are known as the positive testing and negative testing now in positive testing we have the end user based or the system tests now the system under test may have many components which when coupled together achieve the user scenario then we have the decision based tests now the decision based tests are centered around the ideology of the possible outcomes of the system when a particular condition is met and the alternate flow tests are basically run to validate all the possible ways that exist other than the main flow to accomplish a function now in negative testing we have the equivalence test now in equivalence partitioning the test data are segregated into various partitions called the equivalence data classes now data in each partition must behave in the same way therefore only one condition needs to be tested then we have the boundary value tests now the boundary tests imply data limits to the application and validate how it behaves therefore if the inputs are supplied beyond the boundary values then it is considered to be a negative testing so a minimum of six characters for the user sets the boundary limit then we have the ad hoc tests now when most of the bugs are uncovered through the above techniques ad hoc tests are a great way to uncover any discrepancies that are not observed earlier now these are performed with the mindset of breaking the system and see if it responds gracefully so these were the different techniques involved in functional testing now let’s move on and have a look at the various tools that are used for this particular testing now you can explore the best tool based on your project requirements almost every highlevel company is working on Automation in today’s world so just being a manual tester will affect one’s career for sure so you need to know something called automation to boost your skill and get shortlisted for some good companies so now is the right time to know more about the need for functional testing tools but which tools we should opt is really a confusing one so let’s have a look at some of the top most functional testing tools so first we have the ranor studio now this one is a commercial Windows GUI test automation tool that supports functional UI testing on desktop web and mobile applications it is used by over 4,000 companies worldwide now ranar studio is easy for beginners with a codeless click and go interface and helpful wizards but powerful for automation experts with a full IDE next up we have selenium now selenium is an open source functional testing tool and one can download and use it without any cost it is supported by the Apache 2.0 license it is a web application testing product and it accepts many languages to write its test scripts and the languages can be C Java Pearl PHP python Etc it can be deployed on Windows Mac OS and Linux now this one is also one of the most preferable tools for functional testing now moving on next up we have the test IO now for this make sure that your web apps websites and mobile apps work Everywhere by running functional tests on real devices real browsers and under real world conditions now running functional tests with test IO lets you call upon on the skill and insight of thousands of testing professionals to improve the quality of your websites and mobile apps over 200 customer obsessed organizations rely on the power and flexibility of test IO to ship highquality software faster next up is the teler now this is one of the most simple and userfriendly testing tools in the market it provides functional exploratory performance as well as load testing Solutions though it’s not not free its subscription to download the complete tool along with its license is available at a reasonable amount now it comes with Visual Studio plug-in hence in order to bring the best out of this tool one must know the visual script finally we have the cui test now cui test is a Microsoft tool to use this tool the user shall need visual studio 2013 virtual machine which is also a Microsoft product Now by using the cui test tool one can complete completely automate tests for validating the functionality and the behavior of the application now before considering this tool one must check for the latest cost of the cui test tool and vsts licenses cost with Microsoft now out of all these tools selenium is one of the most preferred tools when it comes to functional testing so let’s have a look what makes it the most preferable one so let’s talk about some of the advantages of selenium so SEL ium is basically an open-source tool which is used for automating the test cases carried out on web browsers or the web applications that are being tested using any web browser so it’s an open- Source tool which supports cross browsing and automates web applications so now let’s see why do we need selenium IDE for automation testing now selenium is basically an open source and also there is no licensing cost involved which is a major advantage over other testing tools now the other major reasons behind selenium’s ever growing popularity are about their test cases OS platform and browser support so the test scripts can be written in any of these programming languages such as Java python C PHP Ruby PE and net and the tests can be carried out in any of these OS such as the windows Mac or Linux also the tests can be carried out using any browser that is the Modzilla Firefox Internet Explorer Google Chrome Safari or Opera so now that you know what is functional testing and also you have learned about the best tool that is used for performing functional testing let’s have a look at a small example that will help you understand how we are performing this functional testing with the help of selenium so now let’s have a look at the example so here we will be performing functional testing with the help of selenium so let’s take the example of our edira block page so now if I want to click this particular element let’s see how I can do this with the help of selenium so now this can be done with the help of locators so first let’s see what are locators in selenium now the locator can be termed as an address that identifies a web element uniquely within the web page now locators are basically the HTML properties of a web element which tells selenium about the web element it needs to perform the action on selenium uses locators to interact with the web elements on the web page now there is a diverse range of web elements like the text box ID radio button Etc and identifying these elements has always been a very tricky subject and thus it requires an accurate and effective approach thereby we can say that more effective the locator is more stable will be the automation script essentially every selenium command requires locators to find the web elements thus to identify these web elements accurately and precisely we have different types of locators namely the ID name link text CSS selector partial link text and xath so now in this particular case I’m using the link text to connect to the particular link so here we will be clicking on the interview questions and select on inspect now here we will get to see a link text named as the interview questions so here I’ll copy this and use the link text locator to locate the element now before that let me first tell you what is link text now all the hyperlinks on a web page can be identified using link text now the Links on a web page can be determined with the help of anchor tag now the anchor tag is used to create the hyperlinks on a web page and the text between the opening and closing of anchor Texs constitutes the link text so let’s switch back and see how we are going to do it now this is the example that we are going to use for our test so first of all I have created a class named example and after that I have set the property where I have used the Chrome driver and next up I have used the system. set property in order to launch my Chrome driver here so now this is the path where I have saved my Chrome driver now Chrome driver is very important when you are using Google Chrome next here I have added another object for Chrome driver and next up I have used driver. manage. window. maximize in order to maximize the window and next up there is delete all cookies where I have deleted all the previous cookies that existed and next up I have specified an implicitly wait time as 30 seconds where the page would wait for 30 seconds until it is loaded and next up I have used the driver doget in order to navigate to our edura block page now using the driver doind element by link text locator I’m trying to click on to the interview questions link now let’s run this code and check the output so now here you can see that the Chrome driver launched the Google Chrome and navigated to our edira page as soon as it entered the Eda blog page it went to the interview questions link and here you can see the output so basically whatever we would have done manually has been done with the help of the automated tools it navigated through our Blog Page and also went inside the interview questions link all by itself so this is how functional testing takes place with the help of selenium let’s understand the parameters based on which we’ll compare these two types of

    testing so we’ll compare them based on these particular parameters starting from their objective we’ll discuss on how these two testing types differ based on their objective and then we’ll move on to their area of focus or where exactly the testing is done and once we’re done with this we’ll talk about their ease of use stating how easy is it to run a case in functional and non-functional testing after that we’ll talk about their functionality where we’ll understand their main features and finally we’ll compare them based on their execution process process so let’s start comparing them based on their objectives first functional testing is carried out to verify or validate the software actions like the login functions and so on whereas the non-functional testing helps in verifying or validating the performance of the software that is how the system performs under a given situation or condition so these are the objectives of functional and non-functional testing now let’s move on to understand that area of focus functional testing mainly concentrates on the user requirements that is what are the functionalities that takes place in the process and so on whereas the non-functional testing mainly concentrates on the user expectations that is how the system interacts with the user how the system is built and how you can customize your functionalities so the functional testing basically provides the answers to the what functions here whereas the nonfunction testing provides answers to how functions here okay so this is about their area of focus now let’s understand their ease of use functional testing finds it easy to execute the blackbox testing by blackbox testing I mean the internal structure or the implementation process is not known to the user so the functional testing supports this kind of execution whereas the non-functional testing finds it easy to execute the white box test cases in whitebox testing the internal structure or the implementation process is known to the user that is the user can actually see the process that takes place in the system okay so this is about their ease of testing so now let’s move on to understand the functionalities functional testing helps in describing what the system should do whereas the non-functional testing describes how the system should work okay so I think you’ve already understood what this means like I’ve mentioned earlier functional testing provides answer to all what functions in the system whereas the non-functional testing provides answer to all the how functions in the system so this is about their functionality now let’s move on to understand their execution process functional testing is executed before the non-functional testing I think you guys have figured out how the execution process takes place right functional testing helps in defining the test case okay so this is the reason why the execution of the functional testing happens before the execution of the non-functional testing whereas the non-functional testing execution takes place only after functional testing that is only if the test cases are defined you can proceed further and test them according to your wish so now that you’ve got an idea of how functional testing and non-functional testing work let’s take a look at their types software testing is brought Broly classified into two major types that is functional testing and nonfunctional testing let’s start the discussion by understanding the different types of functional testing functional testing comprises of the unit test unit test is basically the first phase of testing that is you can prepare the test cases review them rework on them if there are any errors and create a baseline for the test cases this particular type helps in testing the units of the test case so this is about unit testing say if you don’t want to test the system unitwise and you want to integrate the entire process and then test how would you do that we will use integration testing where the integration testing is the level of software testing where the individual units are combined and tested as a group so this is about integration testing now if you want to test the entire system on a whole and not integrate the process and then test How would you do that we will use system testing system testing is actually a series of different tests whose sole purpose is to exercise the computer-based system okay so this helps in testing the system on a whole now say if you want to run the test scripts on another system how would you do that we will use interface testing interface testing verifies whether the communication between two different software systems are done correctly okay so this is about interface testing now say if you want to change a particular piece of code or if you want to add a few more commands to the test cases how would you do that we will use regression testing regression testing is a test to confirm that the recent program or code change has not adversely affected the existing features that’s what you want right you need to have a test scripts which doesn’t change even if there are modifications okay okay so this is about regression testing so now let’s try to understand the last phase of functional testing that is user acceptance testing user acceptance testing helps in handling the real world scenarios according to the specifications so this is about the different types of functional testing now let’s move on to understand the different types of non-functional testing let’s start by understanding the first type that is the documentation testing documentation testing helps in estimating the testing effort required the test coverage and how to track the requirement so these are the particular features of documentation testing now once the documentation process is done say if you want to install any particular software to your system and what if there is a bug in it how would you test it we are going to use a type of non-functional testing called installation testing installation testing checks if the software application is successful fully installed and it is working as expected after installation so this helps in simplifying the test cases during installation now say if you want to check the performance of a system how would you do that we will use performance testing performance testing is basically considered as the heart of testing let’s understand what is performance testing performance testing is used to ensure that the software application will perform well under under any expected workload that is the main objective of testing right to check if the system performs well under any workload like I mentioned performance testing is the heart of software testing so now let’s try to understand the different types of performance testing we’ll start with understanding the first type load testing load testing is used to monitor the response time and staying power of any application when the system is performing well under heavy load okay so this is about load testing now let’s understand what is stress testing stress testing is used to determine or validate an application’s behavior when it is pushed beyond the normal or Peak load conditions so stress testing is used under these conditions now what is endurance testing endurance testing involves testing a system with the expected amount of load over a long period of time to find the behavior of the system now what is Spike testing spike testing is carried out to validate the performance characteristics when the system under test is subjected to workload models and load volumes so this is about the different types of performance testing now let’s move on to understand another type of non-functional testing that is reliability testing reliability testing checks whether the software can perform a failure-free op operation for a specific period of time it also assures that the product is fault-free and is reliable for its intended purpose so this is about reliability testing now let’s try to understand the last phase of non-functional testing that is security testing security testing helps in determining that its data and resources are protected from possible Intruders that’s the whole point of testing right security is the key to Software testing so this is about the different types of functional and non-functional testing now let’s try to take a look at their use case let’s understand the use case of functional testing functional testing helps in checking the login functionalities say for example if you want to log into a particular web page and you want to sign into an account you’ll be asked to fill a few details like your name your mail ID create a new password and so on so these particular Fields can be checked using functional testing so this is one of the use case of functional testing now let’s understand the use case of non-functional testing non-functional testing helps in customizing the test cases according to the user requirements say for example after logging into a web page you want the particular page to load for a few seconds and then pop up so this kind of customization can be done using non-functional testing and say if you want to add a wait command and want to wait for a few seconds in the dashboard you can do that using non-functional testing so what is the first thought that comes to your mind when you hear the word sanity testing if you make a guess by its name then as the name implies sanity testing aims at checking whether the developer has put some same thoughts while building the software product or not that’s quite clear close to actual meaning of Sanity testing sanity testing is a software testing technique which does a quick evaluation of quality of the software relis to determine whether it is eligible for further rounds of testing or not so sanity testing is usually performed after receiving a fairly stable software build and sometimes the software build might have minor changes in code or functionality and it is sent for sanity testing to check if the books have been properly fixed so what exactly is the intention of Performing sanity test let’s discuss the objectives first thing is to verify and validate the veracity of newly added functionalities and features secondly to evaluate the accuracy of new features and changes if they are added and thirdly to ensure that introduced changes doesn’t affect other existing functionalities of the product lastly test rational thinking and logical implementation of the developers that’s the core and basic purpose of Sanity testing so basically sanity testing is surface level testing which helps in deciding if the software built is good enough to pass it to next level of testing or not well that’s clear right so here’s a basic representation of Sanity testing as you guys can see I have three builds here and I want to send these table builds for sanity testing and once they are sent to sanity testing sanity testing is performed on there to see if any new features or changes are made if yes then if they have affected the existing features in any way and if there are any bugs were they fixed and all that are checked or performed under sanity test and the bills if they pass the sanity test then they’re sent for further rounds of testing else they’re rejected or you can say they’re added to the rejected build list it’s simple right that’s all the isas about sanity testing well it’s very simple and basic form of testing that’s performed before any product is sent for further rounds of testing so to make it more presentable and simple here’s an example let’s say the build which are just subjected to sanity test is a new feature which is added by Gmail that’s nothing but Auto acknowledgement feature what does this Auto acknowledgement feature do it sends a written email that the email which you tried to send is delivered successfully now this is a new feature and it’s fairly developed so we already have a built that’s stable sanity testing is performed to see if this new new feature that’s Auto acknowledgement feature is working properly or not and because of this feature if any other features are affected if not it means that it has successfully passed the sanity testing and the auto acknowledgement feature is sent for further L of testing it’s as simple as that so to summarize sanity testing is performed when a new product or functionality or change is implemented to see whether the software product is working correctly or not it determines if thorough testing of software product shall be carried out or not so if sanity testing fails rigorous testing is not necessary to be conducted well that’s well and good but how do you perform sanity testing is there a specific procedure that you need to follow well unlike other types of software testing sanity testing does not come with handful of techniques you do not need to script the test cases for sanity testing because you want to perform very quick and Speedy testing so what I want to say here is is that sanity testing is a very speedy and quick process of testing the application as it does not involve the scripting of test cases so guys the thing that you need to remember here is the main purpose of Performing sanity testing like I have been saying from the beginning of the session is to verify if the newly added changes and functionalities have affected the existing functionalities are they working properly or there any software bucks so that’s the main purpose now how how do you perform sanity testing it’s quite simple well just three steps the first step is to identify the newly added functionalities and features along with the modification or changes introduced in the code when you’re fixing bucks or you can say bug fixation process so the first step is to identify all the bugs new features or any changes made to the code second step is to evaluate these identified features and changes to ensure that they’re working as intended and they’re properly working and that’s what we call evaluation and the last step is testing that is we consider and test all the related parameters Associated functionalities and elements of the above evaluated features and changes to ensure that the related features are working properly as well what I mean to say is that the new changes or the functionalities or the bugs which were introduced did not affect the existing features that’s what you do in testing so very simple right just the three steps first you identify if there are any new changes to the features and functionalities then you evaluate them and then you test if they are affecting the existing features in any other way if all these three steps goes well then the build can be subjected to more thorough and stous texting so if all these three steps go well then the build has successfully passed the sanity testing and it can be sent for further rounds of regress testing so that’s how you perform a sanity testing imagine ing the following scenario you have several modules in your application you have a user registration form in module X that allows user to enter data and submit it the client has now requested to add preview my profile button in the user registration form which enables the user to preview his profile before he actually submits the details you got my point right you have an application multiple modules and you have a module called X now the client is requested for additional feature called preview my profile before he actually submits his profile or the details so now the development team has implemented the request according to the client’s requirement the release in your hands and the build is sent to you so the release is in your hands that is testing team and you want to perform sanity testing so first you will ask the development team or the manager what’s the new feature that’s been added to the release then you’ll get to know that preview my profile is the feature that’s been added and according to that the code has been modified so then you go through the code you test that particular feature which has been added and check if it’s working properly or not that’s what we call evaluating so once you check that the preview my profile feature is working or not then you come to testing feature there you see if on adding that if it has affected the submit button in any way if it has it means that the software build has not passed sanity test else it means that the software product or the software change which is being made to the build has worked properly and it can pass to further rounds of testing simple right so by now you might have figured out certain key points of Sanity testing if not don’t worry I’ve got them covered first of all sanity testing is carried out on relatively stable builds secondly it doesn’t require any documentation like I have been saying and obviously it’s performed without any scripts unlike smoke test in which is performed from end to end sanity testing is just performed on limited functionalities which we will discuss about later while discussing the differences between smoke testing and Sanity testing and usually it’s performed by the testers not the developers so the developers are not involved here well if I have to Define sanity testing in simple terms it’s a narrow and deep type of regression testing and yet it’s performed in limited functionalities not from end to end lastly it acts as a gatekeeper as an it helps the testers to decide if the software build is worthy enough or stable enough to be sent for the further rounds of testing so these are some important features if have to summarize it doesn’t require documentation less scripting carried out on relatively stable builds limited functionalities are covered in this testing usually performed by testers it’s a very narrow and deep type of regression testing and it helps decide if the software build is to be passed for next level of testing or not so these are some basic features of Sanity testing so what would you consider would happen if sanity testing is not performed so when a new release comes in the tester would put entire effort in preparing test cases and executing them and all that the testing team would thoroughly test each test case each functionality of the application and its user friendliness as well well do you see any problem in here no right but there is a problem the scenario sounds good only as long as new and old functionalities are working well and fine what if the changes and the newer code have messed up your previous functionalities what if the newer release is crashing down at every other action do you still consider it’s wise to undergo such aist through the full testing cycle no right this is where sanity testing comes in it’s really important phase of testing so what are the advantages of Sanity testing first of all it offers you Speedy valuation it offers speed sanity testing has a very narrow Focus for functionalities or areas to be tested like I said it’s not end to endend testing it’s performed on limited functionalities so you don’t need to script the test cases before carrying out sanity testing rather you can say it’s very unplanned or intuitive approach to perform sanity testing next it saves a lot of time and effort on testers part sanity testing it determines whether the application should be further tested or not like I said it acts as a gatekeeper this saves testers time if the release is in a very poor condition to meet the rigorous rounds of testing also testers do not need to report the issues or lock down them anywhere this saves a lot of reporting time as well secondly sanity test identifies deployment and compilation issues as well suppose a tester May phas inaccurate user interface if the developers do not check all the resource files in the compilation sanity testing also identifies deployment and compilation issues a tester May face inaccurate user interface if if the developer did not use all the resource file in the compilation also developers may not specify some important features to make them visible for testers a sanity check detects any such problem and it offers a quick solution for well functioning release and obviously like we discussed earlier it does not involve any documentation while you can say very less documentation so that’s one more Merit and the other one is sanity testing gives you a quick state of product which can help you plan your next Next Step accordingly so if sanity test fails you might plan your development team or you can tell your development team to postpone the next task and fix the found out issue on other hand if sanity test is passed you might ask your team to go ahead with the next release and spend less time on fixing bucks so that’s how it is lastly compared to other types of testing sanity testing is usually coste effective well guys now you know how important sanity testing is right with this we have almost reach the end of the session last topic of today’s session is how smoke testing and Sanity testing differ from each other smoke testing and Sanity testing are two very different practices but people still get confused because the distinction between them is somewhat subtle so let’s discuss few key differences between them so the first difference is the software build here we already discussed what software build is well if you’re not sure the term build is the process by by which source code is converted to a standalone form that can run on any system the smoke tests are executed on initial build of software product whereas sanity tests are performed over the builds which have passed the smoke test and gone through rigorous testing cycle or you can say regression testing cycle what I mean to say here is smoke testing is usually performed on very initial builds whereas sanity testing is executed on slightly stable builds than they are and smoke tesed moving on to motive of testing smoke testing makes sure that the core functionalities of your program are working absolutely fine so the motive of smoke testing is to measure the stability of newly created build so that you can move on to the next round of rigorous testing whereas sanity testing is to check if the new functionalities or the Bucks have been fixed properly without going any deeper so the objective here or in the sanity testing is to verify the rationality and the originality of code functionalities to proceed with further rounds of testing talking about competent tested throughout the session I’ve been telling that smoke testing is performed from end to end whereas sanity testing is a narrow testing which is performed only on limited functionalities or you can say certain components of software where it’s required next St is documentation usually smoke testing is documented and well scripted compared to sanity testing whereas sanity testing is not that documented and it’s usually not scripted at all test coverage smoke testing is shallow and wide approach to include all the major functionalities without getting into detail well it may be seen as a general type of testing covering all basic functionalities but sanity testing is a narrow and deep approach involving detailed testing of functionalities and features it’s more focused on certain features rather than from end to end and lastly performed by smoke testing is usually performed by developers as well as testers because it’s usually performed on initial bills and initial bills are passed on from developers to testers and it’s quite possible that sometimes developers themselves perform the smoke testing before sending it to testers but when it comes to sanity testing it’s usually done in between the development of software product as not on initial bills so it’s usually executed by the testers well that’s it guys with this we have come to the end of the session so let’s wrap up the discussion and quickly take a recap of what we have discussed so far while we did discuss what sanity testing is it is a tool to tell whether your software release meets the Merit to go to further rounds of testing or it’s too flawed to be tested it’s performed when a new functionality change request or buff fix is implemented in the code its scope is narrow and it’s focused on only functionalities that have been implemented or impacted by the change and lastly many people confused between sanity testing and smoke testing so we did discuss the key differences between them so before jumping straight into smoke testing let’s just first understand what a software build actually is when you are developing a simple software program that consists of a few lines of source code it’s easy to compile and execute the code but this is not the real situation in companies a typical software program or application usually has hundreds or even thousands of source code lines create an executable program for huge code is quite complicated and timec consuming process as you guys know so in such cases you need a build to generate the executable program the term build is the process by which source code is converted to a standalone form that can be run anywhere on any system well it’s not just the matter of compiling the individual components of an application but the linking them together as well so you will need to tell the individual components which you have compiled where to find the things they require or depend on to run properly and this complete process is what we call software build and software engineering so in simple terms you can consider build as a particular model of an application or a software that’s still in testing phase this build is further put on the test environment and it’s handed over to QA team for testing purpose each time a developer fixes anything in the code or if he writes a new code for different functionality it goes through same process again so there are number of development builds planned in any given project but it is always a risk that bill does not work properly on the environment because of number of issues like configuration issues code issues regression issues and environmental issues so a initial build after it’s developed by the development team is subjected to basic testing before it’s sent to other levels of testing this basic testing is what we call Smoke testing so smoke testing is a highlevel test performed on initial software build to make sure that the critical functionalities of the software or the application that you’re testing on is working properly it is executed before any detailed functional or regression test are executed on that particular software build so the process of smoke testing targets all key features and it’s often considered a cost effective approach because you’re just checking the basic functionalities and you do not have to spend much effort time and cost on that so if key features aren working or major bugs haven’t been fixed there’s no reason to waste time on further rounds of testing right so smoke test should be scripted this ensures that you’re touching all the major components of the software and no key features or the core functionalities are missed by you and most of the time all the high quality smoke tests share common characteristics and area of coverage like it involves clicking or navigating through many or sometimes all screens of an application testing the key functionality such as signup forms adding to the shopping cards exporting files moving data and rest of other things verifying correct layout of the graphical user interface and visual correctness so all these are the basic features which we check during any smoke test but it’s optional that even after checking these features you can add on other features to check on according to your requirements but the question here is how important are these smoke tests let’s consider a simple example to understand smoke test test suppose if you’re given a Gmail application to test what are the important functions there log into Gmail compose mail and sent correct yeah so for instance if there’s an error in sending an email does it make sense for you to test sent mail drafts folders and other features no right which means you are rejecting the build without further testing or without testing other functionalities that’s because your basic functionality or the core functionality of your application is not working properly that’s what smoke testing is all about of course thoroughly testing your application is really important for uring the good quality but performing a suit of smoke test is even more important since it’s sensible to get answer to preliminary questions like can the application that you’re testing will be successful without any error does the login process function correctly what happens when you click on the primary buttons or the menus so A major benefit of running a smoke test is that it provides quick feedback back within a matter of few minutes and as a tester you do not have to wait for house to get the results as you can see I have like about three Builds on the screen and I want to check the functionality of my last build so I have subjected it to smoke test if all the functionalities are working well as in if it passes the smoke test it’ll be passed on to next rounds of testing if it doesn’t the build is either rejected or it’s subjected for further development to remove the errors or the bugs that we have found so that’s why what smoke testing is all about guys have you ever wondered why the name smoke testing since smoke testing came into existence there are lot of theories and studies associated with the nomenclature however out of all this only two of them seem appropriate one theory is that according to Wikipedia the term smoke testing likely originated in the plumbing industry plumbers would use smoke to test for leaks and cracks in the pipe systems sometime later the term was applied to testing of electronic things as well another theory states that the term smoke testing is originated from Hardware testing where a device when first switched on is tested for the smoke or the fire from its components like power up a device and if you see a smoke then well that’s bad right so these are like the two most popular theories about a smoke testing but today the concept of smoke testing is widely used in software development while actual smoke may not be involved the same principles are applied in Smoke testing software as well but to get a better insight into this process it’s important for us to understand various features of smoke testing so let’s go ahead and check them out first of all smoke testing is often referred to as build verification testing so next time you hear someone telling build verification testing it’s nothing but smoke testing it’s known as build verification testing or build acceptance testing where the build is verified by testing the important features of the application and declaring it as good good for further detailed testing it delivers quick and decisive answers on the viability of the particular build that you’re testing on smoke testing is an integral part of the software development life cycle which ensures that the critical functionality of an application are working well and fine this you already know because that’s the main definition or the concept or the objective of smoke testing as smoke testing decides the path of the build for further testing process it’s often referred to as intake test so with the help of automation test developers can check build immediately whenever there’s a new build ready for deployment smoke testing can be done manually or it can be automated usually it’s the testing team begins manually and then later on they automate the entire process it also works as a gatekeeper to accept or reject the bill based on its stability to undergo through further rigorous and in-depth testing activities so you can say it’s called build verification test or build acceptance testing it en Jaws critical functionalities are working fine it can be referred to as intake test because it decides on the next level of testing it often refers to as gatekeeper as well smoke testing as you guys know a subset of regression testing but it’s not a substitute for regression testing and it’s applicable to different levels of software testing like integration testing system testing and acceptance testing as well finally it’s a nonexhaustive testing with very limited number of test cases you don’t do testing here very deeply you you just check the basic functionalities and usually smoke testing is performed with positive scenarios and with valid data and the entire process is usually documented for referring later on so these are the basic features well in conclusion you can think of smoke testing as a normal health check on the build of an application so guys now that we aware of what smoke testing is and its key features let’s go ahead and answer some important questions about smoke testing well the first question is when is the right time to perform smoke testing or when do we do smoke testing first of all smoke testing is done whenever the new functionalities of the software are developed and integrated with existing build that’s developed in qat it ensures that all critical functionalities are working correctly or not it is done in a development environment on the code to ensure the correctness of the application or the build before releasing it to qat after the build is relate to QA environment smoke test is performed by QA Engineers or QA lead so whenever there’s a new build QA team determines the major functionality in the application to perform smoke testing this actually answers our second question as well which is who performs smoke testing like I said it’s done by development team before build is released to QA team it’s done by QA team before subjecting the build to further rigorous testing so smoke testing basically is performed either by developers or testers or both sometimes moving moving on to our next question why to do smoke testing what are the benefits or advantages of Performing smoke testing smoke testing offers various advantages to team of testers and allows them to effectively evaluate various aspects of the software so let’s check out what those benefits are first of all it helps you in finding the bugs and defects in the early stages of testing itself you can uncover and fix as many as 80% of the bugs that discovers simply by configuring or executing a simple smoke test so with smoke test you might be covering only 20% or less than that of your test cases and yet you can catch up to 80% or more of the buck secondly it minimizes the integration risk and help in finding the shoes that get introduced whenever you integrate the components of the unit testing smoke testing can be carried out in small time it can be executed within few minutes for every particular build smoke testing also improves SA effectiveness of the QA team instead of spending and wasting test Cycles by attempting to run a large test suit when there are issues QA team can simply opt for smoke testing smoke testing also reduces the manual intervention because you can easily automate the entire process and the test cases are not many here it helps in verifying the issues fixed in the previous build are not affecting the major functionality of the application currently this way it improves the quality of the system that you’re testing on as well and lastly very limited number of test cases are needed to perform smoke testing and it also offers the advantage of getting faster feedbacks as it’s frequently run very quickly so these are the advantages let’s list out first of all you can find defects and bug in the early stage of testing integration risks are reduced when the components are combined there’s no need for manual intervention you can opt for automation it improves the effectiveness of your QA team it saves a lot of time and effort on testers part it improves the quality of the system as a whole and the most important thing is very limited number of test cases are needed to perform smoke testing of entire application so smoke test take your code build it run it and verify a thing or two they will not verify that your software is 100% functional or not in a production app they will act as a quick bailout if the smoke test fails then the whole build is failed and the entire process is so quick that you do not have to waste a lot of amount of time here so my point is that for a simple applic ation smoke test is often all you need next question is how do you actually perform smoke testing well it’s quite simple and it’s very similar to other testing process so the common first step for companies who want to build a suit of smoke test is that they start with manual testing builds are deployed by the development team and are then sent to QA team or testing team for further rounds of testing or you can say smoke testing now once the qat team receives the build according to the requirement they’ll start designing the test cases to expose all errors before this build is released to Market so once you have the test case you read and create a test suit a smoke test suit combines a number of smoke tests into small suits of test so that when application is ready to deliver to pre-production environments developers will know in matter of minutes whether the latest build is worth sending it to next level of testing or not so to be efficient and purpose-built a smoke test suit should contain easily manageable number of test cases well the recommended number of test cases is generally 20 on the low side and around 50 on the high side any less than this and you’re probably not covering enough amount of test cases and any more than this you’re probably trying to cover too much ground at a single point of time so you should always concentrate on sizing your smoke test suit that’s very important step once you have suit of smoke test defined you’re going to want to think about automation right automation can improve the quality and it can be efficient and it reduces lot of effort and time on tester part the many reasons for automating your smoke testing like I said just now but the best reason is that your test will run faster more consistently and the written results automatically there are number of automation Frameworks available in Market that you can prefer to to perform smoke testing so once you have your suit created and an automation framework selected you will want to think about a couple of key areas in order to keep your test running and healthy and what are those you need to keep track of test creation and maintenance you need to execute smoke testing on daily basis you need to access a penality on any developer whose contribution fails to pass you should consider continuous integration made possible with such as Jenkins and circle CI lastly execute the test cases and clean up the entire setup cleanup might include stopping a server deleting files or emptying the database tables this can also be done before the initial setup because so when you start testing the entire environment is clean and it’s like a clean slate where you can begin testing so these are General steps that you can follow to perform smoke testing well these are the general steps that you need to follow but let’s consider a simple example to understand how is smoke testing performed in real world so assume that you’re working on an e-commerce site when a new build is released for testing as a software QA tester you have to make sure whether the core functionalities are working or not so you try to access the Ecom site and add an item into your car to place an order that’s a major flow in most of the e-commerce sites you agree with me right what’s the major flow you log in you add the item to your card you purchase it and sign out if this flow works you can say that the build is PASS testing you can move on to next level of testing like functional testing and regression testing so here’s an example you have a build which is being released by the development team it’s being sent to you or the QA team so you create a set of test cases and and combine them and place them in a test suit you execute the smoke test what are the smoke tests that you’re going to execute on first if you are able to access the homepage or not after that you access the menu links are you able to access the menu links or not you check that part after that you add the item to the card and check if the functionality is working the main functionality is after adding the items to the card you need to purchase them so that’s what we checking basically in Smoke testing so you’re checking the checkout and the place order functionality if this functionality is pass the test you move on to next level of testing otherwise the build is rejected and it sent back to development team to make changes so it’s as simple as that moving on there’s another term that you should know about like sanity testing it’s often misunderstood with smoke testing the sanity testing is done on a software build after it is gone through smoke testing and other levels of testing sanity testing is done to enjoy that the bugs are fixed and there are no persisting problems with the application so that’s the major difference motive of smoke testing is to measure the stability of newly created builds so that you can move on to next round of regress testing whereas sanity testing is done to check either new functionality or the bugs that have been fixed properly without going any deeper so the objective of Sanity testing is to verify the rationality and the originality of core functionalities it might sound complicated the simple thing is that whenever you start on in initial bills you go with smoke testing after your initial builds are smoke tested and after they’ve gone through other levels of testing you perform sanity testing that’s the most basic difference so in smoke test you verify the critical functionality or the core functionality in sanity test you verify new functionality and check out if there are any errors so guys with this we have almost covered all important Concepts which are related to smoke testing now let’s check out the best practices that you should follow when you’re performing smoke testing first of all conduct smoke test during the early stage of project record all your smoke test it’s a very good practice and it’ll provide you reliable data later on smoke test cases should be short and very precise like less than 6 Minute at most the intention with smoke testing is to catch those bugs that block the development progress during the initial stage of a project your goal should be to get the developer to resume the development as quickly as possible without having to wait for the complex and drawn out test phases so at Max you can go up to 60 minut well it’s not a fixed time limit but that’s what is suggested to be effective automate whenever possible tests will run faster more consistently and they’ll written results automatically maintain a test case repository chances are 90% of your team are working on projects that bring new features or transform an established project or the making changes constantly so it’s always suggested to maintain a test case repository to keep track of all the test cases don’t just stop with smoke testing it’s just a first level of test testing move forward with other rigorous testing if the build has passed the smoke test and once again remember that you just have to use smoke test to test the basic functionalities so don’t go testing very deep now talking about tools many tools are available in the market to perform smoke testing in an automated way actually top tools include selenium and Phantom JS but the question here is which tool is best out of these two well both of them have their pros and cons let’s take a look coming to selenium I’m sure you might have heard of it it’s an open source automation tool and the JavaScript run automated testing Frameworks that enables you to run tests across different platforms so the most commonly used browsers with selenium are Chrome Firefox Safari and Internet Explorer selenium it does have a downside when compared to Phantom GS it needs a userfriendly graphical desktop for running the test making the entire process of testing literally slow however you can leverage the full potential of selenium when you set up virtual machines for various operating system and connect them all together what developers love about selenium is that its capability to use Bindings that allow them to run test on common programming languages like Java which is a native language of selenium JavaScript python Ruby and C so basically all these languages are supported and you can use any of them to perform tests on selenium coming to phantomjs it’s an incredibly powerful tool for testing as it supports several web standards and this makes it suitable option for automation and integration with CI tools Phantom JS gives you the advantage of capturing screenshots being a headless version of webkit it works as a windowless command line browser so it’s without graphical user interface portion and it’s mainly because of this fact that the entire process of testing is very much easier and faster on phantomjs phantomjs works as a single version of webkit so that’s the main disadvantage of phantom GS so I hope this has cleared the differ between both these tools and again when it comes to choosing out of them it’s up to your requirements so go ahead and think properly and choose one that suits your requirements that brings us to the end of the theory part now let’s check out how to write smoke test in the demo part we won’t be performing any kind of smoke test here we’ll be learning how to write smoke test cases so that you can send your application or part of your software to next level of testing while I’m using Excel sheet to write down test cases here so guys here we are in this demo we’ll learn how to write simple smoke test cases and for that purpose I’ll be using Excel you can use any other tools to write test cases so uh let’s give a proper name to this sheet let’s say smoke test cases before we begin the most important thing to remember is that speed is better than thoroughness when it comes to smoke testing so don’t worry about trying to get everything 100% right the first time you can always improve later on just think about the things you would normally do in your application and make a list where each line is a separate test for example let’s say if you’re browsing through an e-commerce site you found an item that you like and you’ve added the item to the card and after that you’ve logged out now let’s try to write a smoke test for this particular scenario before we actually get started with the test cases let’s go ahead like I said earlier and create a test plan where each line should indicate a separate test so let me give a project name and the name would be smoke test application or e-commerce site okay so if you want to test on e-commerce site what are the basic functionalities that you want to check according to the scenario which I said earlier the first thing would be the login functionality right and the next thing would be the cart functionality as in are you able to add the item to the cart or not I’m just skipping the purchase option here because the test cases get very complicated and I’m sure you guys know how to write test cases if you do not there’s another video in the dura software testing playlist you can go ahead and refer to that the video is out to write test cases in software testing it’s explained with an example in a very proper way so if you want to know how to write test cases you can refer to that coming back to today’s demo what are the functionalities we were discussing the login functionality card functionality and obviously the last thing is sign out so these are the three things that we want to check and now we’re going to write the test cases for these three functionalities so every test case has few components and you can add on more components according to your requirements but as for today’s let me add few components here let’s say about six of them the very basic so the first thing is test ID then the test scenario then the description part the test steps expected results actual results and the status so let me explain you each of these properties give me a second okay so the test ID because you have lot of test cases you need to assign an ID to keep track of them the scenario is very simple explain in very detailed way what you’re going to test on description is a oneline description it should be very brief and up to point one look at it any tester anyone who’s looking at it should understand what you’re testing on then these are the test steps as in what you’re testing on the steps that you follow these are the expected results that the results that you’re expecting actual it is nothing with the actual result which you’re getting after performing test and status is if or not expected and actual results meet or not based on that the status will be either pass or fail so let’s start with the first test case what we want to check here the first case is login and description would be test the login functionality of the application as simple as that it should be very short and up to point in this case application is nothing but the e-commerce site which we’re testing on and what would be the test steps the first step would be to launch the application or e-commerce site and the Second Step would be to navigate to the login page before we proceed guys I need to remind you these are just sample test cases for a particular scenario you can write any number of of test cases according to your imagination and what you can think is relevant for example when we go for login functionality I can go ahead and write a test case for registration as well because to become a user first you need to register right but I’m skipping that part here just so we won’t take a lot of time for you to understand the concept but you can go ahead and add the test case as well so what would you do the next thing after you navigate to the login page obviously enter the username then enter the password and the last step would be to click on login button so what would be the results that you’re expecting login successful and let’s say the actual results that you’ve got after performing the test case is as expected so the status definitely be pass because the expected results and the actual results are nothing but same moving on to Second functionality which is cart functionality we want to see if we can add the item to the card successfully that’s what we’re going to check so what are the steps involved the first step that you would do is select the item right The Next Step would be to add the item to the card or you can say click on add to card option or button and what would be the expected result item added successfully to the cart and suppose item is not getting added so you have tested the functionality but the item is not getting added to the card so what would be the status definitely fail this particular component has failed so the third component would be to check the sign out check out the sign out functionality it’s very simple right first thing is you navigate to settings well again it depends on the application sometimes you have log out option directly on the screen but sometimes you need to go to settings and check for the S out option and what is the result that you’re expecting that should happen when you actually do that the user should be able to log out and let’s say user is able to log out and based on that what would be the status it’s pass so that’s it guys we have written test cases for a simple scenario of an e-commerce site as you can actually see these are very simple set of test cases that you can easily pass to a manual team and you do not have to give them a lengthy explanation on what to test as well because it’s very clear that all they have to test is login functionality and if the item is being added to card properly or not and after adding the item if the user is able to log out properly or not so your test cases should be in such way that they shouldn’t be complicated and whenever a QA team takes a look at that they should understand what they’re actually going to check but again these are the basic functionalities you can use include any number of test cases for the functionalities but the main purpose of smoke testing is to check the core functionalities so when you pass these test cases to manual team they should be able to easily understand even if you are going to automate or take the trouble of writing selenium code you should handle these steps very easily now after you’ve got a solid fast automated smoke test suit in a place a good Evolution would be to integrate your full suit of test into CI tool or a continuous integration tool this continuous integration tool or CI tool can automatically initiate your test suit it will communicate you with the alerts and it finalizes the reports concerning the results of all the tests now if all these three critical components after being tested or smoke tested by the QA Team B fine it means that the build is stable enough to proceed with detailed testing so that’s all about smoke testing guys very simple right well there are mainly four stages of testing that need to be completed before a program or an application can be cleared for use namely we have unit testing integration testing system testing and acceptance testing the first level of testing unit testing is the micro level of testing it involves testing individual modules or units to make sure the working properly a unit here can be anything it can be a functionality a program a particular procedure of a function within an application it can be anything unit testing helps verify internal design internal logic internal paths as well as error handling after unit testing we have integration testing integration testing is done after unit testing this level tests how the units work together individual modules are combined and tested as a group it’s one thing if units work well on their own but how do they perform together when combined integration testing helps you determine that and ensures your application runs efficiently it identifies interface issues between modules well there are different techniques that can be used for implementing integration testing we will discuss more about them later since the topic of today’s discussion is integration testing the next level of testing is system testing as the name implies all the components of the software are tested as a whole in order to ensure that overall product meets the requirements which are specified so basically system testing is particularly important because it verifies the technical functional and business requirements of a software or an application well there are dozens of types of software testing like you have usability testing regression testing functional testing and many more if you guys want to know more about these testings you can refer to Eda software testing YouTube playlist We do have videos on different type of software testing there and do subscribe the DEA Channel if you like them getting on with our today’s topic the system testing is usually done by testing team and it includes a combination of automation testing as well as manual testing techniques as well and the final level of testing is acceptance testing or basically we call it uat which is user acceptance testing it determines whether or not the software product is ready to be released to Market well let’s face it guys requirements keep changing throughout the development process right so it’s important that the Tester verifies the business needs are met before the software is released into production so are the functionality or the functional requirements met or the performance requirements met or not well these are the questions that you ask in this level of testing so uat is the final say as to whether the application is ready for the use in real life or not so basically each level of testings that is unit testing or it could be integration testing system testing acceptance testing each have their purpose and they provide value to software development life cycle cycle so the most basic type of testing is unit testing or component testing the main goal of unit testing is to segregate it isolates the smallest piece of the testable software from the remainder of the code and determines if or not it behaves exactly as you expect generally we refer to those small pieces of software as unit but the problem is although each software module or unit is tested defects still exist for various reasons let’s check few of them out for example a module in general is usually designed by an individual software developer whose understanding and programming logic May differ from other programmers and sometimes programmers are highly skilled and very creative they won’t read all the design specs or approach coding features the same way like others do while this can lead to disconnects and glitches when their modules must talk to each other so there’s a clash between different modules developed by different developers secondly unit test work with internal module communication s using software STS that simulate the rest of the systems well these stbs are make do walkarounds and when the systems module have to communicate features like data formatting error trapping Hardware interfaces and thirdparty service interfaces tend to have unforeseen issues that were not observable at the unit level testing that’s another problem while at the time of module development there are wide chances of change in requirements by clients right because user requirements keep changing these new requ requirements may not be unit tested and hence we have to perform integration testing similarly you might have external hardware interface issues as well inadequate exceptional handling could also be a problem so even after performing unit testing even after testing each module specifically you do come across these problems so as a solution to this we perform integration testing so keep in mind no matter how efficient each unit is running if these units aren properly integrated it will affect the functionality of the total software program to avoid all these issues integration testing is introduced as a level of software testing integration testing is done to test the modules or components when integrated to verify that they work as you expected that is to test the modules which are working fine individually does not have any issues when integrated so the meaning of integration testing is quite straightforward integrate or combine the unit test in module 1 by one and then test the behavior as a combin mind unit that’s what integration test means so we normally do integration testing after unit testing as you guys already know it once all the individual units are created and tested we start combining those unit tested modules and start doing the integration testing so once again the main function or goal of integration testing is to test the interfaces between these modules not the modules but the connection or the communication or the interface between these modules that’s the aim of integration testing let’s learn more about integration testing integration testing basically makes sure that integrated modules and components work properly integration testing can be started once the modules to be tested are ready well it does not require the other modules to be completed for testing to be done and how is it possible we’ll check that out later and integration testing also helps detect the errors which are related to interface between the modules like I said earlier it is also helpful when there are frequent requirement changes it’s very common for a developer to deploy changes without unit testing sometimes so integration testing can help when the modules need to interact with apis or some sort of third party tools you can test the modules to find out if the third party tool accepts the modules data or not integration testing typically covers large volume of your system than a single test so it’s more efficient and lastly writing both unit and integration test increases the test coverage at fastest speed and it improves the reliability of your software well these are the advantages of using integration testing here I have a simple diagram for you to understand what integration testing is as you can see I have four levels of testing We Begin from down we have unit test integration test n to end is nothing but system testing then UI test that’s nothing but acceptance testing as you can see in the diagram we have the red coded part which is a small unit or a module it’s tested then it’s combined with other unit and these both are encoded as you can see in the green part so that’s integration testing you’re combining two modules and you’re checking out the interface or the communication or the interaction between these modules that’s integration testing as Next Level obviously you have system tests that you combine multiple modules and check them as a whole and lastly you have acceptance test before the product or application is released to Market so it’s as simple as that so before we proceed any further here’s one more question who performs integration testing well software Engineers or developers usually perform integration testing however there are instances when the company employs indep dependent testers to do it for them so guys there are different approaches to perform integration testing but before that you should note that integration testing does not happen at the end of the cycle rather it’s conducted simultaneously with the development so in most of the times all the modules are not actually available to test so the challenging thing here is how do you test something which does not exist for that we have concept called stops and drivers so sometimes we might face a situation where some of the functionalities are still under development so the functionalities which are under development will be replaced with some dummy programs these dummy programs are named as stops and drivers let’s check what they are so here I’m considering a single application and this application has two components component one which is login page let’s say module a and we have module B which is admin page as you can see login page is dependent on admin page now suppose if you have to test login page developers have developed the login page and they have sent it to the testing team to test the problem here is that admin page is not yet developed so what do you do instead of the actual admin page you create an dummy admin page which has same functionality of the original one but not all the core

    functionalities and then since login page is dependent on dummy page you check the functionality of the login page in linking with admin page so without waiting for another module to be developed you finish the test it here the dummy admin page is what we call stop or a called program next coming to drivers it’s just reverse of stops let’s say you have to test the admin page it’s ready it’s developed it’s been sent to testing team for testing but the problem is login page is not yet developed what you do just like you created D admin page here you create a dummy login page which is dependent on admin page so this dummy login page is what we call a driver it’s called a calling program so now you know the difference between stops and drivers right stops is a call program and drivers is a calling program so now that you’re aware of these Concepts which is tops and drivers let’s get started with different approaches to integration testing so basically there are three types to begin with we have top down approach the top- down approach starts by testing the topmost modules and gradually moving down to the lowest set of modules one by one and then we have bottomup approach which is exactly opposite of that of top down so in bottom up approach starts with testing the lowest units of application and Gra gradually moving up one by one and then we have something called Big Bang testing this big bang testing involves testing the entire set of integrated modules or components together simultaneously since everything is integrated together and being tested at once this approach makes it difficult to identify the root cause of problems we will discuss more about advantages and disadvantages later on let’s explore each of these techniques in detail so let’s begin with topown approach first so like I said earlier top down approach testing takes place from top to down following the control flow of software system or architecture so high level modules are tested first and then low-level modules and finally integrating the lowlevel modules to a high level to ensure the system is working as it’s intended to but it’s quite possible that like we discussed earlier when we are testing the higher level modules lower level modules might have not been developed yet so what do you do in such cases you deploy stops like we discussed stops are dummy modules that simulate the functionality of a module by accepting the parameters received by the module and giving an acceptable results basically it acts as a dummy missing module generally stops have hardcoded input and output that helps in testing the other modules integrated with it so for you guys to understand top down approach in a better way I have an example here I have seven modules module M1 is dependent on M2 M3 and M4 similarly M3 depends on M5 and M4 depends on m6 and M s now while performing top- down approach we begin with a granular module the first one which is module M so you want to test module M as you perform unit testing it’s working well and fine before you even start with integration testing all these modules undergo unit testing so they’re well and fine now that we start integration testing the module M1 depends on M2 M3 and M4 we want to check module M1 but M2 M3 and M4 are not get ready what you do you employ or deploy stops instead of these origal module since they’re not developed yet these TBS simulate the activity of M2 M3 and M4 similarly when you’re testing M3 it depends on M5 and if M5 is not ready yet you again use a stub here same goes for the next level of testing which is M4 which depends on m6 and M7 easy to understand right with the help of an example so that what stops are these are called programs and one more thing simple applications may require stops which would simply written the count control to their Superior modules or higher level modules more complex situation demands that sub stimulate a full range of responses like parameter passing and many other features these stops may be individually created by tester or they can be provided by software testing harness which is a sort of software specifically designed to provide a testing environment so in top- down approach if the dependent modules are not ready yet we use a concept called stops well just like any approach this approach has advantages and disadvantages as well the tested product here is extremely consistent because integration testing is performed in an environment which is mostly similar to real world environment secondly the stops in top- down approach can be written in lesser time compared to drivers because these stops are simpler to author here fall localization is also very much easy in top- down approach the critical modules are tested in priority which further helps tester in finding major design flaws early in the stage of testing detect major flaws is done very early in the process coming to disadvantages as you can see if the modules are not developed or ready yet they requires several stops modules at lower level of software are tested inadequately when compared to other modules in the most popular disadvantage that you have to remember is that the basic functionality of the software and top- down approach is tested at the end of the cycle that can be a problem sometimes that’s all with top- down approach let’s go with next approach which is bottom up approach while it’s complete opposite of top down here the bottom level units are tested first and upper level units are tested then step by step after that so here testing takes place from the bottom of the control flow to upwards again it’s possible that the higher level modules might not have been developed by the time lower level modules are tested just like we use tops in top down approach we use something called drivers here these drivers are calling programs they simulate the functionality of higher level modules in in order to test lower level modules let’s consider the similar example which we did earlier as you can see I have seven modules M1 M2 M3 M4 M5 and m6 and M7 M1 dependent on M2 M3 and M4 and M3 on M5 M4 and m6 and M7 now each of these modules are unit tested so that’s well and fine so we begin here from the lower level so we start with M5 m6 and M7 but as you can see M3 and M4 are not developed yet so what you do you replace this M3 and M4 by drivers and and then you test M5 m6 and M7 same goes for M3 and M4 if m1 is not ready yet and same goes for M2 because M1 is dependent on M2 and if m1 is not ready we create a driver which simulates the functionality of module M1 here just like stops the driver can have different functionalities the driver would be responsible for invoking the module under test it could be responsible for passing the test data or it might be responsible for receiving the output data and similarly just like stops the driving function here can be provided through a testing harness or may be created by tester as a program so that’s the choice that the tester have to make here coming to advantages in this approach development and testing can be done together so the product of the application here will be efficient and it will be according to customer specifications the time requirement here is comparatively less and tester conditions are much easier to create here coming to disadvantages just like top- down approach the bottom up approach also provides poor support for early release of limited functionality and the need for drivers because we use drivers right if the modules are not developed it complicates the test management sometimes high level logic and data flow are tested late during the test process and even the key interface defects are found later on than earlier stage so these are the disadvantages and then after that we have another approach called Big Bang approach once all the modules are ready after testing individually this approach of integration testing combines them at once and perform testing that’s what Big Bang testing is so instead of just starting from top or down it just combines all the units or modules once they are ready and performs testing at once though Big Bang approach seems to be advantageous when we construct independent modules concurrently this approach is quite challenging and risky because when you combine all the modules and test them at once and if there are any errors it’s difficult to find out what is the reason for errors since all the modules are combined and tested at once I’m going to take similar example here there’s nothing to explain it’s pretty straightforward all the modules are unit tested then you wait until all the modules are developed you don’t use any stabs or drivers here once all the modules are developed you combine them and test them as a unit as a combined unit as a whole so that’s what Big Bang testing is and we have advantages and disadvantages talking about advantages you can see all the components are tested at once so it saves a lot of time because we don’t use any stops and drivers and all so it saves a lot of time and this process is convenient for smaller systems because there’ll be less number of modules to combine or act on coming to disadvantages you’ll have to wait for each of this module to be developed right before you start testing so a lot of time is wasted or delay there’s a lot of delay before you actually start Big Bang approach and since there are a lot of modules which are combined and tested at once it’s difficult to trace the cause of failures if there are any and sometimes it’s quite possible that when there are so many modules few interface links between some modules might be missing and you will not even notice that and as you can see no module is prioritized which sometimes might be problematic critical modules need to be prioritized sometimes so these are the disadvantages so to overcome the limitations and exploit the advantages of each of these top- down bottom up and big bang approach we have something called sandwich integration approach or it’s also known as hybrid testing approach well as the name suggest it is a mixture of two approaches like top- down approach as well as bottom up approach in this approach the system is viewed as three layers consisting of the main target layer in the middle another layer above the target layer and the last layer below the target layer so three layers as you can see M2 M3 M4 are the middle layer the target layer M5 M6 M7 are the layer below that and M1 a layer above Target layer so the top down approach is used in the topmost layer that’s layer one and bottom up approach is used in the lower most layer which is layer three it might sound a little complicated but sandwich approach is very useful for for large Enterprises and huge projects that further have several sub projects and sometimes when development teams follow a spiral model the module itself is as large a system then you can use sandwich testing the resources that are required here are immense and big team perform both top down as well as bottom up method at once or sometimes one after the other so basically here you use the advantages of both top down as well as bottom up well obviously this process as it looks complicated it has a lot of disadvantage ages since both top down and bottom up are executed at the same time or one after the other the cost of testing is literally High it cannot be used for smallest systems because the interdependency between the modules is quite complicated it also makes sense that when individual system is as good as complicated system then sandwich integration is best and obviously you’re using different approaches here so the development team or the testing team should have different skills to ensure that the testing is done in a proper way so these are the disadvantages moving on to next topic let’s see how you actually perform integration testing well it’s highly similar to any of the testing process just like unit testing or any other testing so the first thing you do is choose the module or the component which you have to test and you also select the strategy that you want to employ out of the strategies which we just discussed and before you actually proceed you have to make sure that each of these module which you have selected is unit tested already then you deploy the choosen modules of the components together and you make the initial fixes that are required to get started with with integration testing then you perform functional testing and test all use cases for the components choosen similarly you perform structural testing and test the component choosen after you’ve done all the testing you record the results of the above testing activities you repeat the above step until the complete system is fully tested as in you combine two module test them and again everything is proper you combine with with third module and do the same thing again and again so to summarize very simple first you should prepare a test plan then you design test case test scenarios test scripts according to your plan execute the test cases followed by reporting of defects now track and retest defects as soon as they arise and then you follow the entire process again and again until your entire system is tested so that’s how you perform integration testing simple right moving on to the next part of the session I’m sure you guys have understood what integration testing is by now but anyway let’s go ahead and try to understand it in much better way with help of an example so as you can see I have three more modes here a login page a mailbox and a delete email page so like I said earlier integration testing majorly focuses on interfaces and the flow of information between these software modules so priority here is given to the integrated links in of the unit functions that are tested in advance so you do not have to focus on testing the login page as it’s done already in the unit testing you should focus on its interface link with the mail box page similarly check the interface link of mail mail box with the delete email module so let’s go ahead and take a look at the test cases so the first test case objective here is to test the interface link between the login page module and the mailbox page module so the description you enter the login details and you click on the login Button as soon as you do that you should be taken to the mail page if that’s happened it means that the interface link between your login page as well as mail page is working properly similarly we have second test case to check the interface link between mailbox and delete email module so what do you do you go to mailbox check the email that you want to delete and click on delete option as soon as you do that it’s quite straightforward that email should be deleted that’s not what we’re checking what we’re checking here is that the deleted email should appear in the trash folder so that’s the interface between the mailbox and the delete interface page so integration testing like I said earlier is all about the interfaces between modules not about the functionality of individual mod mod so guys like any other testing integration testing also has challenges that you might come across for example integration testing means two or more systems are integrated to ensure that system is working properly so not only the integration links are to be tested but exhaustive testing related to environment should also be performed it ensures that all the integrated system components are working properly there are different paths and permutations to apply for testing the Integrated Systems so basically test data management becomes difficult because you have multiple test cases and different paths and permutations that you have to follow to perform integration testing it’s tough managing integration testing sometimes because you have various factors that you should consider like database platforms environments Etc similarly whenever a new system is integrated with the Legacy system it needs a lot of testing efforts and changes same goes when you’re combining one Legacy system with other Legacy systems in such cases you have to develop test cases which test the entire unit functionality or combined unit functionality so developing test conditions and test cases also becomes quite challenging and lastly when you’re integrating two systems developed by two different companies it’s a big challenge for programmers no one is sure how one system will affect the working of another system so to minimize this impact several considerations should be kept in mind to make integration more successful while we cannot avoid all this but you can follow certain practices to at least make the effect of these challenges a little lesser on your testing first of all you need to check if the testing strategy that you’ve applied is suitable one for your requirement that is for your application requirement or software requirement or not and based on the test strategy that you’ve chosen and if you’re sure it’s right you prepare the test data and test plan accordingly after that you need to focus on the architecture design of an application and identify the critical modules these critical modules should be tested on priority and then you get the interface designed for the application from the architecture team and generate test plans to verify interfaces in detail so the main concept or goal of integration testing is to check the interface link between modules right so you need to have the basic understanding of the interface architecture each of these interfaces like database external hardware or any other software application should be tested and should be understood in detail test data plays a critical role in any integration testing so you have to take into consideration that as well so keep mock data handy before the execution of test cases so do not decide on the test data while executing test cas cases itself because as you know the user requirements keep changing and according to that you might have to change the data that you want to test on apart from these I have few things which I put up on the screen as you can see you need to identify each module check how data is communicated understand the user requirements create multiple test conditions according to those requirements and focus of one condition at a time so these are certain things that you can follow to make integration testing much more simpler and less complex so guys that’s all about it integration testing its types examples strategies practice challenges we have discussed everything have tried to explain what integration testing is with an example for better understanding of the concept so integration testing is an important part of testing cycle that makes it easy to find defects when two or more units are integrated so that’s all about integration testing API have been around since 1960s so if there aren’t a New Concept why are there such a Hot Topic lately why why do you think so because without apis the digital experiences that we expect everyday as consumers wouldn’t be possible apis are doing everything from driving information Rich marketing campaigns to connecting mobile apps to streamlining internal operations well here’s a brief introduction to what apis are and what they can do to understand apis better let’s consider a simple example imagine you’re sitting at a table in restaurant with a menu of choices to order from the kitchen here is part of the system that will prepare your order what is missing here is that the critical link to communicate your order to the kitchen and deliver your food back to your table that’s where the waiter or an API comes in the waiter is the messenger or an API that takes your request or order to the kitchen or the system and tells them what to do then the waiter delivers the response back to you well in this case it is the food while put it in that way it’s easy to understand API just like a waiter is a messenger between you and your application with that being said let’s take a look at real world example of an API let’s see how we are using apis in our daily life let’s say you are searching for a hotel room from an online travel booking site using the site’s online form you select the city you want to stay in fill in the checkin and check out dates number of guests number of rooms and other information then you click the search button so what’s going on between you entering your information and the application displaying you the choices apis that’s what so as you know the traveling site Aggregates information from many different hotels so when you click search option the site then interact with each hotel’s API which delivers the result for variable rooms that are available according to your choice this can all happen within seconds because an API which acts like a messenger and runs back and forth between your application database and devices now you understand what I meant when I was comparing API with a waiter so it’s basically a messenger API is an acroni for application programming interface which is a software intermediatory that allows two applications to talk to each other without any glitches so every time you use an app like Facebook to send an instant message or to chat with your friend whenever you check weather on your phone you’re using an API so why use an API what are the main reasons first of all it offers effortless integration it allows customers to access data server or any other application in very stable and secure way secondly mobile phones and devices embedded with sensors fit perfectly with the service based structure of API so as you know cloud computing is already in Rise apis are mainly needed for both the initial migration and integration with other systems in the cloud and next API offer flexibility they allows you to quickly leverage and use your desired services on mobile and web and the IT Market is rising so everyone wants their product to be best which depends on how intuitive and usable their API is and lastly the youth success of apis if any company has employed or deployed API and has been successful using that then other companies also want to do as well so because of these reasons API is very popular these days as you know software is exactly not perfect every time so guys now you know why is this so much hype about apis API are what gives value to your application it’s what makes makes our phone smart and it’s what streamlines business processes so if API doesn’t work efficiently and effectively it will never be adopted regardless if it is free or not also if an API breaks because errors weren’t detected there’s a threat of not only breaking a single application but an entire chine of business processes hinged with it so the solution to test apis before they’re put to use here are the most common reasons as to why you should test your apis before putting them to use First of all you want to be sure that they’re doing what they’re supposed to do you want to make sure the apis are handling the maximum load or the amount of load that’s being assigned to them and you want to find all the way users can mess things up when they’re using the applications that are linked with API you also want to make sure your API work across different devices browsers and operating systems and lastly if you don’t test your API it can be costly for you later on so these are the simple reasons as to why you should test your apis before putting them to use so basically the entire process of testing these apis is what you call Api testing it’s a type of software testing that involves testing your application programming interface or apis as a part of integration testing to see if to meet expectations for functionality reliability performance and security so as you can see I’m stressing on four words here so basically in API testing you check if apis meet expectations for functionality reliability performance and security most basic level API testing is intended to reveal bucks inconsistency or derivations or deviations from the expected behavior of an API and obviously the next question that follows after knowing what API testing is where do you perform API testing since apis lack a graphical user interface API testing is usually performed at the message layer and can validate application logic very quickly and effectively there instead of putting it that way let me make it more simple to you guys commonly applications have three separate layers or tires you can say first comes is presentation layer or user interface then you have business layer application user interface or you can say for business logic processing and then you have database layer for modeling and manipulating your data so application programming interface testing is performed at the most critical layer which is the business layer where business logic processing is carried out and all the transactions between user interface and the database happen so basically in API testing our main focus will be on business logic layer of the software architecture and I have to tell you guys API testing like graphical user interface testing won’t concentrate on the look and feel of the applications so it’s entirely different from graphical user interface testing and API testing also requires less maintenance and effort when compared to GUI testing which makes it perfect choice for agile and devop teams so making sure that API offers complete functionality allows for the easy future expansion of the application if you want to do so later on in the future so that’s what API testing is all about so now that you know what API testing is and where you perform API testing how do you actually go ahead and proceed or perform API testing well it’s a five-step process first step is documenting the API testing requirements like what is the purpose of API what is the workflow of your application what are the Integrations supported by the API here or in your application what are the features and functions of the API that you have included in your application documenting all these API testing requirements is the first thing you need to do this will help you in planning API test throughout the testing process so the first step is just preparing a plan next step is setting up test environment according to your plan so You’ set up testing environment with the required set of parameters on the API this involves configuring the database and the server for the application’s requirements so so once the setup is done it’s good to make an API call right away to make sure nothing is broken before we move forward with any kind of testing so the next step is to combine your application data with your API test to ensure that API is functioning as it is expected to under different or basic conditions or you can say different input configurations and then you need to organize yourself around the API test for that you need to start asking questions like who is the target audience here who is your API customer what aspects are you testing what problems are we testing for what are your priorities to test what could potentially happen in such circumstances now after performing the test when you should consider a test as a pass or a fail what other apis could this API interact with and so on like that many different questions so after you have created these testing boundaries and requirements you need to decide what you want to test on your API for while we will look into what kind of API we can perform in the next part of the session so I leave that step blank for a while which is our fourth step deciding on what to test API for and finally once you have decided the next step obviously is to create test cases around that requirements and execute them a basic guideline is to identify the most common parameters and conditions that an end developer will use when calling the apis and based on that you should create your test cases and execute the test and I’m sure the last step is the common step you document your test results and give it for review so let’s just summarize what are the steps the first step is preparing a documentation or a plan on what you’re doing or you’re trying to do then according to the plan you set up your test environment then you combine your application data with your API test to make sure that your API is working perfectly under different input configurations and then decide on what kind of API test you want to perform and lastly create the test cases based on your requirements and execute the test and create the test result report so it’s the that easy so one of the most important step while performing API test is to decide on what kind of test you want to perform for that you should be aware of different types of API testing as you can see there are multiple types of API testing first you have functionality testing the basic testing so you perform functional test to check if the API works and does exactly what it is supposed to do functional testing includes testing of a particular functions in the code base so that’s what functional testing is it’s all in the name then you have reliability testing basically here you’re checking if API can be consistently connected to whenever you want and lead to consistent results always and then you have load testing well load testing you can say is a test which is obsessed with reality here you ask yourself you test your API on different scenarios like does this code of my API work in theory will this code work with 1K request 10K request and 100K request so basically you’re trying to check if API can handle the load load testing is basically performed to ensure that the performance under both normal and at Peak conditions is normal for an API you have different scenarios on the that for example you have Baseline scenario it test the API against textbook values regular traffic that API expects in an ordinary usage then you have theoretical maximum traffic that is to make sure during the full load periods the solutions respond to the request properly then you have overload test to test the maximum capacity according to the theory maybe then add 10 to % more to the peak traffic so this way you have different kind of load testing and then you have end to end testing or UI and ux testing it involves testing user interface for the API and other integral Parts interface here naturally can be graphical user interface or GUI or it can rely on the command line end points as well and then you have interoperability testing and compliance testing this type of testing applies to soap apis it ensures that the predefined standards of your your API is met and then comes security testing security testing penetration testing and first testing are the three separate elements of security auditing process they are used to ensure that the API implementation is secure from external threats that’s the common point for all security penetration and first testing so besides enclosing with penetration and first testing security testing also includes additional steps like validation of encryption methodologies and of design of the access control for the API and then comes penetration testing it’s considered the second step in the security auditing process in this testing type users with limited API knowledge will try to attack to access the Threat Vector from outside perspective well it’s all about functions resources processes or sometimes it can be an entire API from the outside perspective and then comes first testing is another step in the whole audit process in this testing type of vast amount of random data which you usually refer to as noise of first will be input in into the system with the aim that they want to forcefully crash the system and see what happens this way when there’s an actual threat from the outside they can react back to it very quickly that’s what first testing is all about so basically first testing will help the API in terms of limit to prepare for the worst case scenarios with that said these are the most frequently performed API tests so by performing this test what are you trying to test for and what will you find so basically by performing all this tests you’re checking for duplicate or missing functionality or improper messaging multi-threaded issues or performance issues or it could be about incompatible heror handling or it could be about reliability issues so basically by performing all this different kind of API tests you are trying to find these kind of bucks since API testing is gaining popularity we have many tools available for performing the same here are some of the top API testing tools that you can use for rest and soap web service testing for example you have Postman you have Caton Studio well we’ll be using one of these which is Caton Studio to see how to create API test then you have soap UI then you have tosa parasoft assertable well these are very few basically I just listed the most popular ones apart from these there are many other tools outside while you can choose any one of them according to your requirements and comfort now let’s discuss benefits and challenges that you might face while performing API testing so as we discussed API testing is an important activity that testing team should focus on it offers a number of advantages over other kinds of testing for example first of all it’s language independent data here is exchanged via an XML or Json format so any language can be used for automation independent from the languages used to develop the application XML and Json are typically structured data so the verification is literally very fast and stable in these XML and Json also have built-in libraries to support comparing dat data in different data formats so the first reason is it’s language independent then it’s graphical user interface independent or GUI independent we can perform API testing within the application prior to GUI testing and this early testing will help you get feedback sooner and so that you can improve the team’s productivity core functionality can be tested to expose small errors and to valuate team strength or your application built strength then it offers improved test coverage most API services have specifications allowing us to create automated test with High coverage including functional testing and non-functional testing as well and nowadays there are multiple techniques which are available using which you can find API test cases that could not be automated so this way you can improve the test coverage by using either manual API testing or automated API testing and another most important benefit of API testing is it reduces testing cost API testing helps us to reduce the testing cost with API testing we can find find minor bucks like I said before graphical user testing these minor bugs will become bigger during graphical user interface testing so finding this buck in the early stage itself is a very good process and will be beneficial and lastly API testing is a step for faster release it’s common that executing a UI regression test takes about 8 to 10 hours while the same scenario with API testing takes only 1 to 2 hours you see the difference there right the flakiness of API testing is also lower than that of UI testing all these allows to release are built faster with API testing so these are certain benefits that you get out of Performing API testing before putting your API to use it’s language independent so basically you can use any language irrespective of the language the application is developed on it’s graphically user independent you can find out the books in early stage because of that the testing costs are also released I mean reduced and obviously it offers improved test coverage and faster release as well well that’s about the benefits but again like any other testing process there are certain things that you will come across or you will feel difficult when you’re performing just in API testing as well the point of not having graphical user interface can be a benefit as well as a challenge we discussed why is a benefit now let’s see why it’s a challenge API are primar intended for computer to computer communication like I said they’re like a messenger between two applications computer doesn’t need an a user interface this is a challenge if you’re a tester who is used to testing applications designed for end users with a graphical interface where you can click drag and in general manipulate an application or data visuality so basically if you are familiar with all those graphical user interface features it might be difficult to jump into API testing and then you have synchronous and synchronous dependencies so often apis rely on other apis or other backend systems to function properly so if any of these steps of systems are out of place all the assertions connected to it will fail so this way when your API is connected to other apis or any back inance like synchronous and asynchronous dependencies are there then it might pose a problem and during API testing it’s difficult to test data management so basically API testing verifies the business logic of an application layer which often has millions of permutation and use cases so it can be difficult to propagate scenarios that sufficiently test your API boundaries and then there is a problem of request and response response as stated before apis work on a request and response relationship soap and rest apis have different standards for the request and response calls that you will have to be familiar with before you actually start performing API testing and that task can be a difficult soap based API use XML as a communication protocol that means as a tester you must be able to read understand create and update XML documents with rest Based Services the request can be much simpler for the most part it only involves sending in url to the service thing here is you need to have certain technical knowledge before you actually jump into API testing that’s very necessary and lastly there’s no documentation and there are a lot of time constraints in API testing the API developed will hardly have any documentation without the proper documentation it is difficult for the test designer to understand the purpose of these calls parameter types the possible valid and invalid values the written values the calls it makes to other functions and usage scenarios to avoid that like a certain earlier the first step of your API testing should be documentation thorough testing of API is almost timec consuming it requires a learning overhead and resources to develop tools and design tests that will suit your requirement so these are certain challenges that you might come across while performing API testing so guys that’s all with the theory part I hope at this point of time you’re aware of what API is and why do you need to test your apis before you put them to use and how to perform API testing like I said there are different tools which you can use to perform API tests like you have Postman Caton studio parasoft assertable and many others now that we aware of the theory part let’s go ahead and use a tool called Caton Studio to see how to create API test cases and how to perform test on API so guys in today’s session or demo we’ll be using a tool called catlon studio so basically catlon studio is a robust and comprehensive automation tool for testing apis web and mobile testing I already have it downloaded and installed on my PC all you have to do is search for catalon studio and you can just go for the first link that you find so this Caton Studio provides easy deployment by including all Frameworks Alm Integrations and plugins in one package it has a unique feature which is combining UI and API web services for multiple environments and another thing is that it’s a free tool and apart from that catalon studio also offers pay support services for small teams businesses and Enterprises as you can see the most benefits of using catalon Studio are listed here simple deployment it’s easy to use interface and like I said it has a full feature package and it has active community of about people from different 160 countries across YouTube channels GitHub repositories uty courses so if you face any problems or if you have anything to contribute you can go ahead and discuss your queries there so the things that we might are interested today or we would be interested today about Caton Studios that it supports both soap and rest requests soap and rest are two different kind of apis it also supports data driven approach and it supports cicd integration apart from this it has many other cool features that you can go ahead and research on so I like I said earlier I already have it installed if you do not you please go ahead and click on this download button a zip file will be installed on your computer or downloaded on your computer you can unzip it and install the application well guys I am using this tool for no particular reason there are many other tools which might suit your requirement and you’re free to go ahead and use any of these so let’s proceed with the demo part now so guys if you have installed catalon Studio perfectly then this is the homepage where you will land on so as you can see this page is basically what is known as catalon help or you can say the documentation part here you have tutorials on how to use different features of this application then you have different FAQs and different plugins that you can add like I said earlier you can use catalon to perform test on web us interface API mobile testing and scripting as well but as for today’s demo we are interested only with API so you have getting started as in the tutorials here you have the sample projects that you can go ahead and start with if you’re not familiar with the tool then you have the folder that shows the recent project that you might have done so as you can see I’ve done a sample demo so it’s showing a sample demo here but if you have missed the page all you have to do is go for help here and you have catalon help here you can click on that and you’ll land on this page again so let me close the tab so if you have gone for API the page we land on is this page you can see the test cases object repository you have test suit data files checkpoints different keywords and you have test listeners reports and other features or other plugins we won’t be using all these today for few so the first thing you need to do is go ahead and create a project you can see the plus symbol or the new symbol click on that and go ahead and create a folder let’s say testing API and okay so the first thing here is we need to have an API to perform test on right for that you can go ahead and search for sample apis that are available on the net before that we’ll create a folder in object repository where you actually store your apis so go for new create a folder let’s say API testing and okay under this you can go ahead and create web service request user details it’s a restful API for now since we don’t have URL let’s just leave it blank and click okay so as you can see it’s ready here but the only thing that we need here is an API a sample API to perform tests on for that we have a Google all you have to do is I’m going to search for sample apis so like I said guys there are different apis rest API op API but for today we’ll be checking out how to perform test on rest API so I’m basically going for the first link that’s here you can go ahead and use any of these fake online rest apis or the sample rest API available online so as you can see I have different kinds of apis here I have get I have post put then I have delete patch post and all that so let’s go ahead and take one list users and all you have to do is copy this link in and paste it in a new folder and copy the request contrl C so as you can see here is our API but it’s in a different format all you have to do is copy this URL go back to catalon studio and place it here and click on this test request button and it’s asking if I want to save the changes and okay so request has been sent and we’re waiting for the output let’s see so here it is so as you can see the status of this response is 200 okay it has taken so and so time and the size is about 1 KB you have different formats of representing your API request here for now it is in Json format you can opt for XML or HTML or JavaScript and all that so let me get back to Jason and you have something called pretty format as you can see it’s better to understand and easy to figure out you have something called raw format which we saw when we just copied the URL right this is the raw format going back you have preview and that’s how it’s supposed to look in the preview and all that so any of these you can choose according your comfort so right now we have created a folder under object repository called API testing and we have a get API or the get command this is the URL we have pasted it here so now that our API is ready for testing the next thing is to go ahead and create test cases so guys I’ve directly started doing all that stuff here but you have an option to go and start with the sample project where the sample test cases and the sample API will be provided to you in the Caton Studio go ahead and explore the Caton Studio application you’ll find it so now that we are done with our object repository as in we have our API let’s go ahead and create few test cases so the good practice to follow is always a create a folder and create test cases under that so that your test Cas is not jumbled or placed here and there so let’s create a folder let’s give it a user detail verification details verification and okay now under that new and and create a test case verification let’s say a details verification tags are really important because right now I have only one test case so it’s very easy to search but when you’re doing an actual project of performing an API testing you’ll have multiple thousands of test cases like I said earlier when we were discussing the challenges that you come across when you’re performing API testing so you’ll have multiple test cases for multiple scenarios so it’s better to add TX so that whenever you want to search a particular test case case and if you just type the tag related to it you’ll be easily able to find where the test case is details and okay so here we go as soon as you create a test case you land on this page where you can add your service for there’s a option where it says add web service keyword then you have just add option this is for the web service keyboard because we are doing a simple project or a sample project on web service testing here or API testing but you can go ahead and do it for mobile testing cucumber keywords or cust keyword if you create one you can add different kind of decision- making statements and all that that’s way too complicated for this video so let’s go ahead with our demo so anytime you’re performing an API test on web services the first thing you need to do is send a request you have that here as well so click on this add web request the first thing that pops out is send request and the object repository or the API which we’re performing test on or for the API request to get all you have to do is copy drag and drop it here or you just double click on the folder and will take your a page where you have list of apis and you can choose on the one you want and you need to assign a name to the output which you get for the object so let’s just say response let’s say result one so yeah we have added our first command and let me save it so what I want to check for here let’s go back to the view I want to check if the status code is 200 or not in while testing so what I’ll do is I’ll add the web ser service command there but before that you have different status values here you can just click on this and it’ll take you to a page where you’ll be shown with what each respond code means for as for now we have something called 200 okay similarly you have different things like 100 one not1 2001 and all that what does it say for now it’s 200 and then you have 2 not2 which says the request is accepted then you have 2 not6 for the partial content then you have 3 not3 for C other then you have to use proxy 35 like that multiple every request has an status associated with it right so if you want no more you can just double click on that you’ll be taken to that page so where was I getting back to what to test Let’s test if the status code is 200 or not let’s go back to our test case and I’m going to add a new web service you have a drop- down command here you can just click on that and what I want to check I want to check verify response status code click on that so input to test you need to give the input right so you can double click on that and it’s the response object which a variable what did we give it’s result so type that here and obviously the value which you want to test it for let’s say 200 and okay that’s done let’s add one more command let’s say for now I know that this request supposed to be 200 status but what if I don’t know the status I just know the range of it then I want to check if the status of my request lies within the range you have that option as well you can go on ADD web service again and you have something says verified response status code in range again you can just go ahead and add the input here so again guys if you are new to web service keywords or this API testing and if you have no idea what keywords choose what do you want to test for and all that you have an option which says keywords browser and there you have different kind of options to browse or you can say documentation you can actually go for official documentation in the Caton Studio website but you also can do that here you have buil commands for web UI keywords you have mobile keywords you have cucumber keywords you have web service keyboard so the thing which is related to the demo which you’re doing right now is web service keywords so you have different options for element number request test and your lead let’s say for request you have we just use the send request so when you click on that dialog box pops up which says what exactly does that keyword do it sends an HTTP request to web server that’s what the send request does and what if an error pops out it throws an exception so what are the parameters that you need to mention for that keyword and all that there’s something called send request and verify as well it sends an HTTP request to web server and verifies the response it does the both we’ll check that out later and then we have something for number basically or equal to greater than less than and all that you can go ahead and check that then you have element features which you want to check we’ll do that right now in the demo part you have an option to check verify element property value let’s see what that is so if I scroll SC down it says verify that there’s an element with expected property value appear in the return data from a web service call basically you’re checking if the particular value which you have given in the input is there or not for that particular element using this element keyword you have text verify element text verify element count then you have verify element Response Code which we just did and verify Response Code range that we using so if you’re not familiar with the keywords you can go ahead and use these I mean refer to that or in the documentation getting back to our Command we have three options here the first one is basically the object variable which you’ve assigned so it’s a variable and what is that it’s result it’s a number I want to check if it’s between 100 and let’s say 150 and 2011 and okay so let’s get back to our request format and see what else we can do as you can see under this data I have three elements I have one which is related to id4 and one id5 and id6 so basically I have three elements for this data so I want to check if for the id4 the first name is Eve or not so what do I do go for the detail verification and click on ADD web service keyword here verify element property value and as you can see we have three inputs that we are supposed to provide obviously the first one is the variable name which you’ve given it’s result next is locator locator is something which is basically telling the application or the Caton Studio application that please go there to that particular location and that’s the element value that I want to check on it’s like a path so what do you do for that let’s just click for okay for that you can find something called Json Pathfinder you have a chrome plug-in as well that you can add to your plugins or you can just use an online Json Pathfinder I’m just using the first one I found so what you have to do is here enter your Json and the editor select the item to view its path and replace x with the number or the name of your variable so that’s what I’m going to do user details this is my Json input so I’m going to copy the entire thing and paste it over here so as you can see the details are shown in the third page I mean the next part of the screen so as you can see under data I have three elements what I want to check is if the first name is z or not so click on that you can see a locator here in the path variable so copy that go back to the Caton Studio in the string I’m going to paste it here and next is obviously again the string that I want to check for right now I’m giving the right value which is e right so again the string if and click on okay so guess this is enough for now let’s go ahead and check the test is running all you have to do is Click On The Run button here so guys this is what you say the manual format as in you’re manually entering using different drag and drop options and all that you have something called Script format as well you can go for that as you can see this is a script format let me just minimize this so these are the commands that we just added first of all we sent a request for the web server then we added a command to check if the response code is 200 or not then we had did the same thing to find out the range of it as an if it lies within the range and to check the property value now so guys what I’m trying to tell here is that you can either use the manual format of it or the script format of it if you are most familiar with the script go ahead and use that so again let’s go back to manual and now I want to check if the test is performing well or not all you to do is click on this run button and to view the output you can just go for this log viewer as you can see on the screen the test is being performed the output for every step or the every keyword that we’ve added will be shown here it says the first step is a success as in the request is being sent a status code is 200 and status code range is 200 which lies between 150 and do not1 but then there’s a failure with the last one which says enable to verify element property value root cause null pointer exception cannot get property data in the null object give me a minute guys I’ll figure out the error so guys so what do you think the error is let me check the user details again okay the first name is a but it’s in capital so as you can see that is why the test has failed now let me edit the string value here and see if it works capital E and click on okay let’s save it and try to run the test now I’m going to go for the log viewer for the full thing so again the test conducted again it’s wrong so it’s not the problem so sorry about that guys the error was that here in the Json path I had another variable which is x. data the copy thing I mean there was an extra letter in the Json path which I pasted here so I did paste the currect part right now it says the zero or the first element of data and the first name that I want to check is Eve or not so after doing that I did and then if I click on run button so here we go the log viewer so as you can see all the four steps are correct by mistake I’ve shown you the the result of giving the wrom input as well so that way you can make sure your API testing is working well by giving different options for different web service keywords here while we have checked few let’s go ahead and add one more so as you can see in the user details I have three elements under the data elements as you can see the one with ID one with ID 5 and one with id6 so I want to go ahead and add one more command add keyword uh I want to check the elements count here it checks the number of elements present well again the variable is result so I’m going to enter that and again I need adjacent path and let’s say I want to check if it’s two it should basically give me eror because there are three elements so let’s go ahead with the negative case and okay so data and I’m going to copy this so as you can see the error which I did earlier was I copy the X as well I don’t need to do that I just copy data from data whatever it is so when and I say first name I just have to copy from this data to the first name right now I just want the path of this so that’s just data we can just type it here so data and enter well it should show us an error but how about we give positive case anyway we’re testing so going to save it so what do we do before that I’m going to show you another thing let’s make it negative case let’s say if and okay now after saving if I run the test so it’s basically checking for the every step the request is being sent the next step is to check for the response code that’s done Response Code range that’s also done but since the fourth keyword which is to check the element property value since we have a negative case the program stop executing there I didn’t it didn’t go beyond that but after that we do have another keyword for which it has to check to so for that we have different properties to go ahead and change how this keyword has to behave okay right click on that you have something called change failure handling here so you have different option which says you have to stop on failure or continue on failure let’s say we have given continue of failure so it will stop I mean it will execute the step even if it’s there error it shows an error and go to the next part of it let me save it and if you click on run again let’s go for the log viewer here we go guys it didn’t stop there it went for the next step as well and since that was also a negative case it shown that there’s an an error it says it’s not equal with the actual property value Eve and there’s one more error right and you click on that particular step it says expected limit count two which is not equal to the actual count three so that’s the error that’s how you perform tests on API apart from this if I click on the objective or the API request here which is get request basically you have different options here as well to check out you have something called authorization if you are actually providing some email ID and all that you have a resen your testing for the login page and all you have authorization right now we do not have any authorization you have multiple authorization options as well basic or one not 0 to0 and all that then you have something called HTTP header right now we do not have an HTTP header if you do you can add it here same goes for the htb body but the important thing here is something called verification so as you can see there are already some Snippets here or the test skips which are already written for this for which response is received you have get a variable response body contains string then you have convert to Json is equal to a string or not status code so if I click on that you can see a command being added let me hide this and let me expand this for you as you can see when I clicked on that this was added assert that the entire thing to verify if the status code is 200 or not and to assert that it’s equal to 200 similarly let’s check out on the snippet I clicked on Json value check let’s see what does that have to add so it says the verify element property value is so and so but right now the actual data is not put here it says the random data let’s say I want to check if the ID is six all you have to do is place the cursor on the option that you want to check on and press control K you can see command or the verification command being added to it you can see a fly command property value so it says verify element property value data two as in the for second element if the ID is six or not so that’s another way of adding verification Snippets once you’ve added all you have to do is click on this test request and do you want to save changes okay so the request has been sent again now you can go for something called verification log here so guys as you can see when I plac the cursor on id6 and pressed control K the command has been added to my script which is verify element property value if the ID is six or not for the second element now that I’ve added it I want to check if the verification is passing what have to do is test click not just click on the Run button click on that and say test request and verify if you do that again a request will be sent and you have something called verification log here as you can see when you see that it says the result has been passed so that’s another way of doing it now let’s go back to details verification and after send request let me add one more command I want to send request and verify for the same thing Result One and click then let me make all this right I want to give the right data Eve and I’m going to make it three so now if I run everything should be green because we have given the right data right so I’ve clicked on the log viewer let maximize the screen so as you can see the first is to supposed to send the request it’s walk and verify the status code is 200 yes there is one send request and verify so it’ll verify the verifications which you just added that also work then you have status code range 200 lies between 150 and 200 m one so it worked then the property value for Eve and result data is three so as you can see everything is passed properly so guys that’s as easy it is to perform testing using Caton Studio well what I’ve done is really basic because since we’re learning the basics here so we have just performed testing only for the get request so like I showed you guys earlier here we have different kind of request here we have post request patch request but when you go for the Post you have two things you have response and request here so you have an HTTP body as well that you will have to add well obviously this is your Json format API request but this is the body where you have to add I did show you here in the user details you have something called HTTP body so when you are trying to test

    for post or p and all that you’ll have two things you’ll have to paste this thing in the body part and then proceed with your testing then same goes for the get for the get we do not have any body so that’s it so guys that’s all about it and one more thing this is for the rest API you also have something called soap API for that as well you have an option to go ahead and perform test so guys that’s about it we did see how to use catlon Studio to perform API test like I said it’s a very basic testing which we did earlier you can go ahead and use the catalon Studio for Performing soap test and add your test cases to test studio so that you can view your reports and all that so what is this agile testing now agile testing is basically a software testing process that follows the principles of agile software development now agile is basically an iterative development methodology where requirements evolv through collaboration between the customer and self-organizing teams and agile aligns development with the customer need it is not sequential but a continuous process now this methodology is also called release or delivery driven approach since it gives a better prediction on the workable products in short duration of time so let’s move on and have a look at the different principles of agile testing now the first one is that testing is continuous now the agile team tests continuously because it is the only way to ensure continuous progress of the product then we have the continuous feedback as well so agile testing provides feedback on an ongoing basis and this is how your product meets the business needs and also satisfies the customer requirements then we have the tests performed by the whole team now in a traditional software development life cycle only the test team is responsible for testing but in agile testing the developers and the business analysts also test the application next up is the decreased time of feedback response now the business team is basically involved in each iteration in agile testing and continuous feedback shortens the time of feedback response then we have the simplified and clean code so all the defects which are raised by the agile team are fixed within the same iteration and it also helps in keeping the code clean and simplified next is less documentation now agile teams use a reusable checklist the team focuses on the test instead of the incidental details and finally we have the test driven now in agile methods testing is performed at the time of implementation whereas in the traditional process the testing is performed after implementation so these were some of the principles that are followed while performing agile testing on any software now let’s move on and have a look at the different advantages of of agile testing so the first benefit is that it saves time and money now with the help of agile testing you get to know about the problems in your software in the earlier stages and this saves a lot of time and money as well next up is the documentation so agile testing basically reduces a lot of documentation involved in the process then we have the flexibility and adaptability so agile testing is basically flexible and highly adapted able to changes so you would not face any trouble if there are any changes that are to be made in the software during the process it also provides a way for receiving regular feedback from the end user so the more amount of feedback that you receive the easier it becomes to solve the problems and also meet the requirements of the user easily and finally there’s better determination of issues through daily meetings so there are daily meetings happening for the agile testing that lets you know about the whole process and also the Improvement that is happening so these were some of the advantages now let’s have a look at the different testing methods for agile testing now there are various agile testing methods so first we have the behavior driven development then the acceptance test driven development and finally there’s the exploratory testing so the first one is the behavior driven development now the behavior driven development improves communication amongst project stakeholders so that all members correctly understand each feature before the development process starts now there is continuous example based communication between the developers testers and business analysts now these examples are called scenarios which are written in a special format the scenarios hold information on how a given feature should behave in different situations with different input parameters these are called executable specifications as it comprises of both specification and inputs to the automated tests next up we have the acceptance test driven development that is the atdd now the atdd focuses on involving team members with different perspectives such as the customer developer and tester so the Three Amigos meetings are held to formulate acceptance tests incorporating perspectives of the customer development and testing so the customer is focused on the problem that is to be solved the develop ment is focused on how the problem will be solved whereas the testing is focused on what could go wrong the acceptance tests are a representation of the user’s point of view and it describes how the system will function it also helps to verify that the system functions as it is supposed to in some instances acceptance tests are automated now moving on the final one is the exploratory testing now in this type of testing the test design and test execution phase go hand inand so the exploratory testing emphasizes working software over comprehensive documentation the individuals and interactions are more important than the process and tools so the customer collaboration holds greater value than contract negotiation exploit testing is more adaptable to changes as well now in this testers identify the functionality of an application by exploring the application so the testers try to learn the application and design and execute the test plans according to their findings so the process goes like this first you learn then you design a test and then execute that particular test and then finally you analyze the test results so these were some of the agile testing methods that you need to know about now moving on next up let’s have a look at the life cycle of agile testing so the life cycle of agile testing consists of five different phases so first we have the impact assessment then Agility Test planning then daily scrums then agility review meeting and finally release the Readiness so in the first phase we gathered the input from the stakeholders and users and this will act as feedback for the next deployment cycle the next phase is the test plan Meetup now here all the stakeholders come together to plan the schedule of testing process meeting frequency and deliverables the third phase is the daily standup meetings now this includes the the everyday standup morning meeting to catch up on the status of testing and set the goals for whole day next up is the agility review meeting so weekly review meetings with stakeholders meet to review and assess the progress against milestones and finally the last stage is the approval meetings for deployment so at this stage you review the features that have been developed or implemented and are ready to go live or not so this is the life cycle that is followed in the process of agile testing in case of any particular software so now that you know what is agile testing and also the different advantages and how it actually works let’s have a look at the test plan for agile testing and also the quadrants so first let’s talk about the agile test plan now in agile testing the test plan is written as well as updated for every release so the test plan in agile includes the scope of the testing then the consolidating new functionalities that are to be tested then we have types of testing or various levels of testing and next up we have performance and load testing that needs to be performed on your software next we have the consideration of infrastructure and then we have mitigation or the risk plans where you have to know about the risks that might occur during the testing then we have the different planning of resources and finally deliverables and Milestones because you need to deliver your product as soon as possible in in order to meet the requirements of your customer so this is the plan that you must follow while performing agile testing on your software and also in order to deliver an error-free software now talking about the agile testing quadrants these basically separate the whole process in four quadrants and help to understand how agile testing is actually performed now for the first quadrant that is the agile Quadrant One the internal code quality is the main focus in this quadrant it consists of test cases which are technologically driven and are implemented to support them so it basically includes the unit tests and the component tests so here we have the various unit tests and component tests and also this is the automated quadrant now the agile quadrant 2 contains test cases that are business-driven and are implemented to support the team now this quadrant focuses on the requirements the kind of test performed in this phase is the testing of examples of possible scenarios and workflows testing of user experience such as the prototypes and also pair testing this can be automated and manual as well now the agile quadrant 3 provides feedback to quadrants one and two the test cases can be used as the basis to perform automation testing now in this quadrant many rounds of iteration reviews are carried out which builds confidence in the product so the kind of testing done in this quadrant is basically the usability testing exploratory testing pair testing with customers collaborative and also user acceptance testing now moving on to the final quadrant the fourth quadrant basically concentrates on the nonfunctional requirements such as the performance security stability Etc now with the help of this quadrant the application is made to deliver the non-functional qualities and the expected value now in this quadrant the kind of testing done is the non-functional test such as the stress and performance testing then we have the security testing with respect to authentication hacking and also infrastructure data migration scalability and load testing so now that you know why we need to perform agile testing in our everyday life let’s move on and have a look at the big companies that actually use agile testing for their software so let’s have a look at some of the big names so there are Cisco Sky Phillips Vista Print JP Morgan Chase IBM and many more such companies that use agile testing as one of their methodologies now sky might be a household name famous for its satellite TV broadband and telephone services but the media provider is almost making a name for itself in software development so the company which has launched products to combat the likes of Apple’s TV box has been placing aile methodologies and open source at the center of the software development approach not just that Phillips has also adopted the agile principles now after numerous changes to management structure The Firm introduced several agile coaches that went to deploy scrum principles such as scrum boards and breaking down teams into smaller ones as a result of changes like this teams could react to situations quicker bureaucracy was removed and it was ultimately easier for these smaller teams to take responsibility for their respective products not just that Vista Print is also the goto marketing company for small businesses now the company performed some analysis of their existing waterfall methodology and found that teams were taking more than 60 days to move from the ideation phase to product delivery now the 60-day cycle only amounted to 40 hours of actual work the company looked further into why this was the case it transpired that unclear decisions and long creativ times were to blame all of which resulted in feedback loops that’s when they moved to the agile testing this is also the case for JB Morgan Chase now a few years ago the baking giant overhauled their business processes to help improve product development and simultaneously slashed the cost of training as part of a high-profile it initiative now agile methodologies were a key part of that particular initiative so the most basic type of testing is unit or component testing the goal of unit testing is basically to segregate each part of the program and test those part individually to check if they’re working properly or not so it isolates the smallest piece of testable software from the remainder of the code and determines if it behaves exactly as you expected and according to your requirements or not generally those small pieces of software that have been telling before are usually referred to as unit so this unit can be almost anything you want it to be it can be a line of code it can be a method or a class or some sort of program or a part of application program anything but smaller the unit test it’s always better smaller test give you much more granular view of how your code is performing at basic level there is also the Practical aspect that when you test very small units your test can run very fast like a thousand test and second fast that fast while here’s simple example to help you understand what a unit can be or how unit testing is so consider the simple code well I have a simple function or method here the function as you can see the main function it’s performing division operation it’s accepting two parameters A and B and it’s wring the value that you get after dividing a by B and next comes the testing function as you can see the testing function is written in Ruby well the language doesn’t matter the language whichever you’re comfortable with you can use that anyway as you can see I have two variables A and B and I’m assigning values 6 and two and in the assert equal function I’m calling the divider function and I also have the first parameter which is the value which I’m expecting that the division function should give it to me so the value which I’m expecting is three and I’m passing the function and parameters to that function so after dividing a by B which is 6 by 2 I get the answer three and assert equal functions tells me that three and three the expected answer and the actual answer I got are the same so my function is working prop properly while this is a positive case you can also do that with the negative case as in you can just change the three expected value to four and see if the assert equal function returns to you the actual answer it says that your test fails it means that the expected answer and the obtained answer not the same so that’s how you perform a testing on small unit which is a part of your entire program so here the small unit is division function so like I said a unit can be almost anything you want it to be it can be a line of code or it can be a method or it can be a class so this is very basic example but I’m sure it gives you an idea of unit testing right so guys unit testing is usually performed at the earlier stages of development process like I said earlier and many cases it is executed by the developers themselves before handing the software over to testing te one of the biggest benefits of this testing is that it can run every time a piece of code is changed so that way you can resolve if there are any errors very quickly and since you’re dividing your code into modules here you can reuse your code and testing becomes much easier and efficient and your product is well wors in the market now to understand unit testing better let’s go ahead and see a simple algorithm so you start writing your test so you add your test to the test suit then you run the unit test if the test passes then you add one more test or add it to the next level of testing in case your test fails what you do you make the necessary changes and you run unit test again and after you run your test again if it fails then you make changes again and you repeat the cycle until the code which you’ve written is perfectly working and it’s wring the value that you’re expecting or the results that meets your requirement and suppose after making changes if your test passes then you can add it to the test Swit and move it on to the next level of testing so once you sure that all your tests are working properly it means your test suit is perfect and your product is working properly you can stop unit testing and perform next level of testing very simple right this type of basic testing offers lot of advantages guys unit testing provides numerous benefits including finding software bugs facilitating change simplifying integration providing a source of documentation and many others so let’s take a look at them right now in more detail so here are the benefits of using unit testing in software development cycle so first of all it makes coding process process more agile when you add more and more features to software you sometimes need to change old design and code I’m sure you agree with that however changing already tested code is both risky and extremely costly if we have unit test in place then we can proceed for refracting very confidently because we know that each part of a code is working properly so code completeness is very important in software testing especially agile process so running unit test can demonstrate code complete Nets so unit testing makes Code Practice more agile and very simple secondly unit testing improves the quality of your code it identifies every defect that may have come up before the code is sent further for further testing so writing test before actually coding makes you think harder about the problem it exposes the edge cases and makes you write better code also the code that you’ve written is since divided into modules it becomes reusable this means that codes are easier to reuse when you perform unit testing unit testing also helps find software bugs early since unit testing is usually carried out by developers who test individual code before integration issues can be found very early and can be resolved easily without impacting other pieces of code so that advantage of detecting any errors in software early in the day is that by doing so the team minimizes software risk and avoid spending too much money in time unit testing also facilitates changes and it simplifies integration it allows program programmers to refactor code and upgrade system libraries at later date and make sure that the module still is working properly unit testing helps with maintaining and changing the code it reduces the defects in your newly development or the newly developed module of your code it reduces box when changing the existing functionality as well unit testing actually verifies the accuracy of each unit afterward the units are integrated into an application by testing parts of the application via unit testing so basically it makes integration much more better it provides documentation to developers so code documentation is basically drag and it shows mostly how little code documentation gets written unit testing can make the documentation burden a little easier by encouraging better coding practices and also leaving behind the piece of code that describe what your program is actually going to achieve unit testing also makes debugging easier and quicker it helps simplify the debugging process if a test fails then only the latest changes made in the code need to be deared it’s easy right it helps create better software designs writing the test first forces you to Think Through Your Design and what it must accomplish before you actually write the code this not only keeps you focused it also makes you create better designs so that way you’re sure that the code you write will perform the right thing at the right time and lastly it reduces testing costs since the Bucks are found early unit testing helps reduce the cost of buck fixes so just imagine the cost of buck found during the later stages of development you will have to modify the entire code of your project that sounds really tiring and waste of money so performing unit test saves you a lot of money and effort on your part so Guys these are few benefits of regression testing I’m sure there are others as well make sure you research on it and learn more about them so there we go guys I hope you convinced as to why you should use unit testing so we have covered the basics of unit testing if you have any queries regarding what we have discussed till now please do post them in the comment section and we’ll get back to you as soon as possible so moving on let’s do a simple demo on how to write unit test but before diving into the main part of this tutorial and writing unit test let’s quickly discuss the properties of a good unit test unit testing principles demand a good test is easy to write it’s easily reliable it’s readable and fast earned efficient so easy to write developers typically write lot of unit test to cover different cases and aspects of application Behavior so it should be easy to code all those test routines without much effort it should be readable the intent of unit test should be clear a good unit test tells a story about some behavioral aspect of your application so it should be easy to understand which scenario is being tested and if the test fails it should be easy to detect the bug without actually going through the entire program that’s how easily readable your unit test should be so with a good unit test we can fix a bug without actually debugging the code then it should be reliable your unit test should fail only if there’s a bug in the system under the test well the thing is programmers often run into an issue when the tests fail even when no books are introduced so good unit test should be reproducible and independent from external factors lastly you write your unit test so that you can repeatedly run them and check that no books have been introduced if your unit test is slow it will affect the final product one slow test won’t make a significant difference but add 1,000 more and we surely stuck waiting for a while slow unit test may also indicate that either the system under the test or the test itself interacts with external system making it environment dependent which is not a good thing in unit testing so that’s it guys there are no secrets to writing unit test so let’s go ahead and write one so guys before we actually start with the simple demo there’s certain things which you should know first of all to perform this demo you need IDE it could be your eclipse or intellig anything that you’re comfortable with and you need a unit testing platform or you can say framework in here in this demo I’m using a framework a popular framework for Java called test ngng there’s another one called junit you also have different Frameworks for different languages that you can use we’ll discuss about the unit testing Frameworks later but as for in this demo as you should know I’m using Eclipse ID and I’m using test NG for my unit testing framework so that’s all you should know and regarding how you should install test NG there are different ways you can install it using Maven the easiest way in Eclipse is you can actually install it using Eclipse Marketplace while you you have help command here you can see the menu you can go for Eclipse Marketplace here and click for test ngy and just click on install after you’ve done that to make sure it’s installed properly all you have to do is go for Show view here and click on other and on the Java make sure that you have test ngy installed here if it’s showing test NG here it means that installation has been done properly so that’s all guys I’ve already written program but it’s a very easy program as you can see I have a math function first of all and it has one method which adds two numbers so it’s returning in value and I have first parameter and the second parameter and I’m adding and I’m returning the value to my testing function so this is my basic function and I have a test function which is conducting the test here so as you can see I’m using annotations here and importing this pick is to perform test since I’m using test ngy I need to import these details so I’m using annotations which is at test this is called what we call annotations and I’m using a method called assert equals so I’m importing that as well so again this class contains a single method which is adding two numbers I have two variables here one is expected and actual expected is the one which you want the method to return to and the actual is the one which actually the method returns to you so as you can see the expected value I’m giving it as let’s say four and as for the actual value I’m using a math add function which I’ve created here as you can see I have ADD function here and I’m sending two parameters which is two and two so if I go back to function since I’m calling this function the parameters here will be first is also 2 second is also two so 2 + 2 it should written four and here I have a method assert equals this is the actual value which I’m getting from the math function and this is the expected value which I’ve given it four and since both are four the test should result success let’s go ahead and check it it’s as easy as that guys so this is one unit of your entire program you can keep adding units in this way so first we’re checking if this unit is working properly for that let me run the test as you can see it says this test has passed and the test run one failure zero skip zero it works right let’s go ahead and check another F values let’s say Let me give it as -4 and -2 + 2 that should be let me just give it as -3 so -2 + – 3 should be Min -5 now if I call S equals function the expected value is min -4 and and the actual value is minus 5 so the test should written failure let’s go ahead and check it so here as you can see it’s giving a long message it says this test is failed because expected value is minus 4 but the actual Valu is found to be minus 5 and as you can see in the default test one test was run you have one failure and zero skips that’s it guys and now let’s make it a little more bigger as and let’s add one more function in the math function I I have a multiply function here so let me go ahead and add it so I’m not negating or I’m not commenting that function let it be there it’s going to give us result for both the functions here so this multiplier function again it’s taking two parameters one is multiplican and one is multiplier it’s multiplying them and returning the answer to us let’s go to math Java test here I don’t have a test annotation for that right so let’s go ahead and write one so public void multiply two numbers return some any name of your function could be according to your wish and here I go so final int expected let’s give it four let’s keep it simple for a while and then we’ll make it complicated Final End actual so multiplic and let’s give it as two and the multiplier Also let’s give it as two assert equals actual and expected okay let me save it so obviously the add function it should result a failure and multiply it should WR the correct value so let’s go ahead and test it so as you can see two tester performed one failure so let’s go ahead and see it says multiply two numbers has successfully passed but add has failed because expected value is minus 4 but it was was found to be Min – 5 so that’s how you write unit test let’s make it Min -4 and check if it’s working for the negative numbers as well as you can see it’s showing two failures here both are multiply function and add functions have failed so guys it’s as easy as that first I wrote a unit test for add function so that’s add function is a unit you can call it a unit a part of your program and I’ve checked and tested since the method is working properly I’m going one step ahead and added one more unit which is a multiply function even it’s working properly then you go ahead and add one more part of or one more unit to your function or the program of your application so guys that’s how you write simple unit test as you can see the tests were very simple and these are very basic level tests you can go ahead and make explore and make them complicated so I’m not going to do the divide function the purpose of this demo was for you to understand how simple it can be and how your unit test should be not very complicated there should be very easy to understand one look at it the person who is looking at your cach should understand and what your code is actually performing so there you go guys that’s how you write your unit test let’s get back to the theory part so I hope you have understood what we did in the demo let’s move forward and check out the most popular or the best unit testing Frameworks to automate unit tests so the unit testing framework for cop is nunit nunit is a unit testing framework that belongs to xunit family and it’s written entirely in cop now as for Java you have many the most popular ones are junit and test ngng junit is basically a open open source unit testing framework for a test driven development environment we call it tdd it supports the core concept of first testing then coding this framework is specifically designed for Java programming language in this data is first tested and then it is inserted in the piece of code so it provides the simplest approach for writing code very swiftly and easily it also offers annotation for test method identification as withed in the demo part we use test ngy and I’ve showed you how to use annotations and an assert equal functions moving on a unit testing framework for C and C++ is munit it’s an open- Source unit testing framework which is designed for software application which is written in C or C++ well it’s used by both developers and testers for software applications which are written again in C and C++ so next we have unit testing Frameworks for JavaScript as you guys know JavaScript is the language of web which is the reason there are large number of test automation Frameworks that support jav JavaScript so here’s one of the most popular unit test in framework for JavaScript which called HTML units it is an open-source unit testing framework that supports JavaScript and it provides graphical user interface features like forms links tables Etc it offers an open- Source Java Library which contains graphical user interface less browser for Java programs it also supports cookie submit methods like get post and proxy server it is used for testing applications that are used within Frameworks like junit and test ngy so Guys these are not the only ones which are there in the market there are many other popular Frameworks but these are the top unit testing Frameworks which support different languages as we discuss for cop it’s n unit for Java you have junit and test ngng for C and C++ you have munit for JavaScript you have HTML unit junit test engine and many of others so if you want to know more about them you can go ahead and research on them so what is regression testing a regression test is a syst systemwide test that’s intended to ensure that a small change in one part of the system does not break existing functionality elsewhere in the system it’s important because without regression testing it’s quite possible to introduce intended fixes into a system that could create more problems than the solve so let me give you a simple real world example you take your car to a mechanic to get the air conditioning fixed and when you get it back the air conditioning is working properly but the gas tank sensor is no longer working if regression test is an unintended change then regression testing is the process of unting for those changes put simply regression testing is all about making sure old bugs don’t come back to haunt you let’s take a look at technical example that illustrates what can happen when regression testing is not used so one day the manager of accounts receivable department at vain Industries uncovered a bug in company’s Financial system it turns out that the module responsible for reporting overdue invoices was not listing all the overdue invoices the bug was assigned to a developer to make the fix the developer followed company policy and unit tested the new code the unit test proof beyond a shadow of doubt that fix worked as intended developer did a good job the fix was released into production so far so good a week passes then a strange Behavior occurs when the accounting department tries to run the company month and profit and loss statement whenever the system tries to issue an aging report the system times out so what is aging report now a aging report separates and sums invoice amounts according to age like 30 days pass due 60 days pass due 90 days pass due Etc so what happened was when they were trying to issue an aging report the system timed out without its month and profit and late statement the company doesn’t know if it’s making money or losing money the the accounting department is really upset about it the accounting manager contacts the software development manager to report the issue and seek remedy as soon as possible so tech leads and quality analyst manager brought in to find out the issue turns out that the new code which was encapsulated in the function was only tested for small database when the same was applied for production data which is usually very large the code didn’t work as expected so what you have to notice here is that if the fix had been incorporated into into systemwide regression test that used a copy of data running in production the chances are very good that issued have been resolved before the released to production or discovered actually that’s how important regression testing is well that was a little technical right here’s a simple one this is just the testing of a simple e-commerce website and here we’re checking the functionality of payment options so first of all there was only one payment option let’s say credit card so item has been added into card you use the one payment option which is available then make the payment and everything is working properly when tested now the company wants to add one more payment option let’s say PayPal so now the company checks if the option of using PayPal is working properly or not so again the item is added to card the payment is made through the new option which is added and everything is working again now what company does is it goes ahead and test for the previous payment option again then they find out that the previous payment option is is not working properly so what happened here the new payment option which is Paypal has affected the old one which is credit card so what they do they perform regression testing so what they have done here is they’ve checking if the new payment option has affected the old one in any way if so the Bucks are identified and resolved that’s what regression testing is all about so basically this regression testing is not just done at the beginning it’s done throughout the testing phase and that we call regression testing cycle let me show it to you guys here it is so as you can see the one on the left side is the regression cycle so you incorporate your Cod into the Bild and schedule the testes you find a bug resolve it and write your regression test again based on those bugs and the fixed issues and run those regression test and the cycle goes on until you get a perfect product and then you release your product into the market so that’s what we call a regression cycle and on the right side you have a graph which represents what regression testing is basically let’s say you have version one of your any software product and this is the feature one which you have enabled during the version one and that was released after 20 days of its development and then you have version two or release 2 you have added new feature F2 it’s working properly so you go ahead and check if F2 has affected F1 in any way that’s what regression testing is all about and your second release is released after 40 days similarly it goes on next version you add new feature you check out if the other features or the previous features are dependent on it if there are any errors because of the new feature if no then you release your product so that’s what regression testing is so I hope after so much explanation you guys are clear with what regression testing is right yes let’s carry on there well the basic aim behind conducting regression testing is to identify bucks that might have got developed due to changes introduced conducting this test benefits a member phase such as regression testing increases our chances of detecting bugs caused by changes to any software or application these changes can be anything it could be just updates or patch fixes or defect fixes or anything during unit and integration testing regression testing can help catch defects early and thus they reduce the cost to resolve them so basically it’s cost effective it also helps in researching unwanted side effects that might have been occurred due to new operating environment it enjoys better performance software and why is that because using regression testing we can identify bugs and errors in the early stage itself because of that the performance your product is literally High it makes sure that the issues which are already fixed do not occur again that’s one of the best thing about regression testing most importantly regression testing verifies the code changes do not introduce any old effects improve the quality of deployed software this way it en ures the correctness of the program and as a result the best version of your product is released to Market so to summarize it reduces the amount that you have to pay on your testing by reducing the amount of bugs and making sure that the old bugs don’t written it gives you the best product or the quality of product is improved when regression testing is performed and you can actually catch the box or any kind of issues in the early stages itself so these are some benefits of regression testing however in real world designing and Main maintaining a near infinite set of regression test is not actually feasible so it is important to determine when to perform regression testing and when not to regression tests are frequently executed throughout the software testing life cycle at each different level it can be unit testing level integration testing level system testing level or acceptance any level however it is recommended to perform regression testing on the occurrence of following events let’s discuss what they are first of all when new function ities are added idly you should perform regression testing after making any changes to the code for example a website has a login functionality which allows users to do login only with the email now you add a new feature like Facebook login so you need to check the entire login functionality of the Facebook just like the simple e-commerce website payment option which we discussed earlier we need to make sure that the new payment option or in this case the new login feature hasn’t affected the old login functionality then you apply regression testing when there is change requirement or usually you call it CR in the market for example whenever you log in there’s this option which pops out right do you want the system to remember the password I’m sure you’ve seen that so remember password should be removed from loging page which was available earlier that’s change requirement it was available earlier but you want to remove it that’s when you can apply regression testing to see if the removal of thing is affected the website that you’re using in any way and then you can apply regression testing when and there is defect fix that’s straightforward you already know that imagine login button is not working in login page and a tester reports a bug stating that the login button is actually broken so once the bug is fixed by the developers tester test it to make sure whether the login button is working as per expected results or not simultaneously tester test another functionalities which are related to login button like registration or any other features which are directly related to login functionality and then you can apply regression testing when there’s performance issue fix for example when there’s modification of code based on your needs and requirements you’ve made some changes to the code and since then the loading homepage takes 5 Seconds you want to reduce the load time to 2 seconds and you have done it but you want to see if this has affected the functionality of your website in any other way you can also apply regression testing when there’s an environment change for example when you’ve updated the database from MySQL to Oracle all the features which are dependent on your database should be tested and lastly you can apply regression testing when there’s a patch fix although meant to fix problems poorly designed patches can some sometimes introduce new problems like they can break the functionality or disable a device so in such cases you need to perform regression testing to see if fixing a patch has actually been a profit for you or loss so Guys these are some test cases or you can say situations or scenarios where you can apply regression testing and that would be beneficial for you so guys often regression testing is done through several phases of testing it is for this very reason that there are several types of regression testing out there let’s check out what they are to begin with we have unit testing so immediately after coding changes are made for a single unit a tester usually the developer who is responsible for the code reruns all the previously passed unit tests so test driven development which we call it tdd and in continuous development environments autom unit tests are built into the code making unit regression testing very efficient when compared to other types of testing that’s what unit testing is then you have Progressive testing so Progressive testing Works efficiently when there are changes done in software or application specifications as well as new test cases are designed that’s when you use progression testing and it be more helpful for you as well then there is selective testing in selective testing testers use a subset of current test cases to down the cost and the effort so in this strategy a test unit must be rerun if and only if the program entities example functionalities variables Etc it covers have been changed so basically only things like functionalities variables which are under the unit test are changed only then you should perform testing on that unit test the challenge is basically to identify the dependencies between the test case and the program entities it covers so basically as the name indicates you do not perform test in all units you just select few out of those which might have affected you to change and then test those units that’s what you call Selective testing and then you have reset all testing reset all testing is very time-taking because in this testing we reuse all the test this strategy is not much useful when you have small modifications or small kind of changes which are done to your code in the application you can straight away point out right you have made a very small change and you are trying to retest everything because of it small change it’s literally costly and it takes a lot of effort and time on your part during small modifications or changes to your code in your application it’s not effective retest all strategy involves testing of all aspects of a particular application as well as reusing all test cases even where the changes have not been made so that’s one of the most costliest type of testing when compared to others lastly we have something called complete testing don’t confuse it with retest all testing sometimes people off can refer to is both of them as the same thing but anyway complete regression testing is very useful when multiple changes have been made in the existing code performing this testing is highly valuable to identify unexpected bugs actually so once the testing is completed the final system can be made available to the user so guys it is important to make sure the type of regression testing that needs to be conducted so you should choose the one which suits your requirement properly and how you choose or which one you choose totally depends on other factors such as recurrent defs criticality of the features Etc but what remains on the priority is ensuring that the software delivers the best functionality and proves to be beneficial addition to your company or industry so guys now that we have established what regression testing means let’s go ahead and check out how regression testing is actually performed so every time the software under goes a change and the new version update or release comes up the developer carries out these steps as a part of regression testing process the first thing it does is developer execute unit level regression test to validate the code that they have modified along with any new test that you have written to cover new or the change functionality basically whatever the changes they made to check if the changes are working properly or not so that’s the first step we did learn what unit level regression test are earlier right so any code changes made for a single unit a tester or basically the developer who’s responsible for the code reins all the previously passed units as well so that’s what unit level regression is once that is done the changed code is merged and integrated to create a new build of application under test after that smoke test are performed these smoke tests are executed for Assurance that the build which you have created in the previous step is good before any additional testing is performed these tests may be automated and can be executed automatically by continuous integration services such as denkin Hudson’s and bamboo so once the build is perfect sanity testing confirms that new functionality works as expected and known defects are resolved before any other conducting or regor integration testing is actually performed so why do you perform this integration testing to verify that the interaction between the units of application with each other and with the backend services such as databases is working properly or not for that you perform integration testing the next step is to schedule your regression test so depending on the size and the scope of the released code either a partial or a full regression test may take place defects are reported back to the development team and many require additional rounds of regression testing to confirm the resolution so lastly based on the reports that you’ve written you analyze and figure out what taste cases should be added for the next checking process as well and you create a report on that so that’s how you perform a regression testing so like you’ve seen it’s similar to any other testing it’s just that you check the function fun ality of your developed software Whenever there is an update or some new release so basically on introduction of new feature you check out if the previous features are working or not so remember guys regression testing is not just performed in the beginning so basically it’s carried out throughout the testing process whenever a new feature is added and we discuss when to perform regression testing earlier right so whenever one of such cases occur we perform regression testing during the entire testing phase so basically what you’re doing here you select the test for regression choose a proper tool and automate the regression test verify your application with checkpoints manage regression test or update when required you schedule the test integrate the build and analyze the result so that’s as simple as that if that was a little theoretical and if you’ve not understood here is a pictorial representation of it so first of all whenever we make some changes to the code for any reasons like adding new functionality optimization Etc our program when execut fails in the previously designed test suit for obvious reasons so after the failure the source code is debugged in order to identify the bugs in the program after identification of bugs in the source code appropriate modifications are made then the appropriate test cases are selected from the already existing test suit which covers all the modified and affected parts of the source code so we can add new test cases if required in the end regression testing is performed using the selected test cases so selecting test cases is very important effective regression test can be done by selecting the following test cases test cases which have frequent effects test cases which verify core functionality of the product that you’re checking the complex test cases integration test cases you have functionalities which are frequently used so those are the first ones that you should check out then you have test cases which cover the module where the changes have been made those are obvious then test cases which frequently fail for no reason then you have boundary value test cases so these are certain test cases where you can apply regression testing or you can actually select these test cases for regression testing so when you’re trying to short list the test cases for regression testing these are some points that you should consider so regression testing simply confirms that modified software hasn’t unintentionally changed and it’s typically performed using any combination of following techniques so basically what I’m trying to say here is that there are three techniques that you can apply for regression testing so the first type we have is retest all this method of regression testing simply retest the entire softare suit from top to bottom in many cases the majority of these tests are performed by automated tools and certain times automation is not necessary at all moreover purely using automation ignores the benefits of human testers and any change for exploratory testing so this retest all type of technique is an expensive method as it requires more time and resources when compared to other techniques while it’s all there in the name itself right retesting the next is selective test cases again from the name itself you can guess what that is rather than a full retest process this method allows the team to choose a representative selection of test that will approximate a full testing of test suit the primary advantages to this practice is that it requires far less time and effort when compared to retest all method so these kind of regression testing is usually performed by human testers such as quality analyst team or development teams who will typically have better insights into the working of test cases and their unexpected behaviors and lastly we have test case prioritization this is one of the popular technique the goal here is to prioritize a limited set of test cases such that more potentially impactful tests are executed ahead of all less critical wants so try to prioritize test cases which should impact both current and future builds of your software that way you’re not wasting your time money and effort apart from from these three we have another one called hybrid hybrid technique is literally a combination of regression test selection and test case prioritization so rather than selecting the entire test suit select only test cases which are executed or re-executed depending on their priority so what are the different techniques we have retesting where you perform testing on the entire test cases that there are then you have selective test cases based on certain criteria you select the few test cases then you have prioritization you select the more impactful test cases compared to less critical ones and lastly the hybrid which is combination of selective and prioritization so these are various ways of implementing regression testing guys now that we know what regression testing is its types and its techniques let’s go ahead and do a demo on how to create a regression testing plan for that I’ll be using an Excel sheet so guys here we are in this demo our main goal is to actually learn how to create a regression testing plan it’s a very simple example so with this example I’m sure you’ll be able to get started on how to perform regression testing so first thing there are certain terms that you should know about as for this regression testing plan we’ll be using an e-commerce website to test on or to create a plan actually so let’s take MRA here we go okay what do I want to see so we go I’m choosing wall lamps and lights anything just an basic example to check on let’s perform or create a regression testing plan for the sort option here you can see right the sort here when you click on that you have different options like sort the elements based on what’s new popularity better discount price high to low price low to high and faster delivery so we’ll be creating a regression testing plan on that let’s go back to Excel sheet like I said earlier there are certain words or terms that you should be aware of the first thing let me just write the headings first let let me increase the size then we have what they mean and then comes our example okay let me increase the size of this one as well okay first terminology is test objective so what does a test objective mean it’s basically what you’re trying to do here in this you’re trying to test a functionality of your feature that’s what your objective the goal or the objective of of creating this plan that’s what we call test objective so you can say what you are planning to do so what would be the example here we trying to check the functionality of a feature here trying to check a check the functionality the next term is test object so what do you mean by test object it’s basically the component which you perfect test on but performing test on so component to be tested so what’s the component that we’re trying to test here the sort component so that’s our test object so I’m going to say sort feature so we’re done with test object and test objective we have something called test item next so what’s in test item test item is the subset of your test object or the item that you’re performing test on so this is the object that you’re performing test on which is sort like I said under sort we have multiple options so these are nothing but test items here so let’s say let’s perform a test on this price high to low so let me write it as sub set of test object so what are the item that we checking here on price from high to low the next thing is test condition so under test items like I said it’s a a subset right you can have any number of items or subsets for an object for example like we said here we have what’s new popularity and also let’s say if I want to select two options or two objects or items that I want to check here which is price high to low and price low to high I can add both of them here high to low comma low to high so the test condition is the one thing which you’re testing of these items so let’s say we want to check the Sorting feature by price is high to low so you get the point right basically the condition on which you’re performing testing and then you have test case test case are just parameters that you can relate to when you’re actually performing testings for example um you have test data that you’re checking on then you have preconditions if you do have any or you can say assumptions and then you have expected results actual results of test and all that so guys if you want to know more about test cases there’s separate video by Eda on test case it’s in the software testing YouTube playlist go ahead and refer to that so yeah I don’t have to give you an example right so I’m just leaving it blank and lastly you have test suit test s is nothing but a combination or collection of test results that come under test suit so I can write it as set of test cases so these are certain terms which you should be aware of of when performing a testing or writing a test case or when you’re creating a regression testing plan or anything so the first thing is test objective is your goal or thing what you want to do for example here we trying to check the functionality of a feature then you have something called object or the feature on which you’re performing test on soft feature under soft object you have multiple options those come under your test item and the test condition is based on what condition you’re trying to check your test object under which a test item comes so basically we trying to test out the sort feature based on price and high to low so in test condition you have three things you have your test objects which is sorting buy the item which is price and an item which is high to low and then you have test cases these are like certain parameters which are associated when you’re performing a test like test data preconditions if you have any expected results actual results or any other commands status and all that comes under your test cases and lastly you have something called set of test suit which is set of test cases which come under the same C category you can say so what are we trying to test here testing project name let’s give it a name which is mintra release one let’s say so for this first release one let’s write something called tracebility Matrix this traceability Matrix basically helps you keep track of how you performing testing on and what and what are the results so here we have traceability Matrix let’s say for releasee one LC release one traceability Matrix the first one is feature or you can just call it test item then you have requirement ID then the test site and then comes the test cases so we go let’s write the first element here so that would be this is the website that we’re testing for and what are we testing the sort feature that’s the object and the item is price price and what is that we testing for let’s take high to low first then requirement are some number you can give so we’re testing sort featur so let me give SF and 077 test suit 20 then the test case ID that would be mintra sort price which comes under the requirement SF 077 and the test case ID would be test C 1 let me give the this cap test case 01 so yeah just like that I can create multiple test cases 2 three so here we go we’re done with the first traceability Matrix the first element similarly you can write one more for low to high as well I’m not going to write it it’s the same so this is how you write a traceability matrix for the release one so let’s say you have performed testing by considering the filter option which is high to low and the testing work properly without any errors and these are the test cases which you have checked for high to low and everything is working properly and for now it’s good now we’ll move on and perform testing for another feature let’s say under item actually we did perform for high to low now let’s go for better discount you can see the better discount option here right so I’m going to perform test for that or write a test plan for that so it’s the same thing again so testing release this is example as well it’s the same so I’m trying to still check the functionality of the feature so my objective is same and what is the feature that I’m trying to check on sort feature it again it’s the same and what is the thing I’m trying to check on it’s not price now it’s discount better discount and you do not have any multiple options here so it’s just better discount so there we go again we have test cases multiple test cases under that and multiple test shes under that so let’s write a traceability Matrix for that as well SF 076 and test suit 32 that would be sort discount and the test a requirement ID which is SF 076 in this case and then comes the test case ID 01 just like that but here I have four test cases so that’s how you write your traceability Matrix till now you still dealing with the normal testing process let’s move on to regression testing now what happens is when I tried to test on this feature it’s working properly then when I tried discount option it’s working properly but after I added this discount option when I tried to check for price again I want the Sorting being done from high to low but based on discounts then this option which is high to low is not working properly so again here I have a testing release which is still due I’m just going to drag it from here let me increase the size of this I’m still in two it’s just that after introducing the new feature or the new functionality the previous functionality stopped working or have got an error so it’s still example for what is regression testing what are we trying to do here trying to check the functionality but we performing regression testing so that’s our objective so what’s the feature that’s sought again we’re still checking out the S feature what is the thing that it’s not working price high to low and low to high so I’m sure you understanding right this is my only feature which was there in the S consider I tested it it’s working properly this also is working properly the second one which is based on discount but I’m trying to when combine this and see how the high to low is working based on the discount the high to low thing is not working that’s when I want to perform regression testing and check out what the test cases which are not working and what are the bucks so that’s how how I perform for that I’ll be writing another traceability Matrix this would be for the release 2 this is again for the release 2 itself but for the regression testing here we go the first thing that happened was the defect that we found so the first option would be or the parameter would be defect ID and let’s say the defect was some number 245e so what was the test case on which the E defect occurred that was menra s discount so performing the test suit give it a number let’s say test suit 34 so the requirement ID next mintra sort when we try to combine the price and discount we got that eror so that’s it minra sort price discount and the requirement ID something we should give right let’s say sf0 or 98 so then comes the test item or the feature now you might be a little confused because the format which I’ve used in the first and the one which I’ve used now is totally different and it seems a little weird let me go through it again so here you have something called regression test cases and regulation test suit so basically Guys these Matrix we call it a bidirectional traceability matrix so the first one let me just go through it again the

    first one we have your item on which we’re sorting the requirement ID the test suit which the test case belong to and these are the test cases which come in the test test suit now what we did is We performed testing for both the features and when we Tred to check if combining these features or the functionality of high to low is working after the discount feature is added it’s not working we getting an error or a defect and that effect as a ID that defect ID we representing here so but when did we get that here so what is the test case that we did test for here when we tried to sort first based on the dries and then apply the discount the thing is not working so that’s the test case ID and which test case does this test case ID belong to this particular test suit and what is the requirement of this particular test case sort based on price and then on discount and this is the requirement ID so what is the item or the basically the feature or the object that we’re checking here on sort so from the defect we’re tracing back and coming back to a feature which we’re testing on you got my point right here we started with our feature or item and then we traced back to test case but here we started with the defect and then we came back to a feature so defect which is the test case ID that we’re checking on the suit which test case belongs to and what is the requirement of the test case and then the item on which it’s being tested so this is bir directional traceability Matrix well this is just a small part of you can say millionth small part of what you can perform in testing it’s a very simple example like that you can perform multiple traceability matrices multiple releases and in One release only multiple test so basically what I’m trying to say here is that this point this item is dependent on other features like the discount option is dependent on high to low and low to high so whenever you trying to make any changes to Discount option your high to low or low to high options are not working or either they’re working or not working from that you can tell these two things or the two items are related to each other or dependent on each other for that you have or you can add another parameter called dependent features so what are the features which are dependent on our discount it’s price high to low similarly mintra sort price and what are the test cases which are dependent on this defect ID the test case that also you can represent here maybe this test case is not dependent on it and this test case is dependent so what you can do is I’m going to copy it and paste it here so this is the one test case which is dependent on the discount thing so that’s how you write to traceability Matrix I hope the thing is clear for you guys so we just started with the basing testing as in one feature everything work well we have certain test cases under test suit and proper then you have another feature which is better discount based on that you perform test it’s working well now you try to arrange everything from high to low and then apply discount then you’re getting in defect based on that defect we created a traceability matrix we traced it back to our feature which is sort and the sort feature is our other features are dependent are interrelated to each other so that’s how they’re affecting each other so for that we need to perform testing from the beginning again check out what are the errors and find out the defects and fix them so that’s what regression testing is all about guys so any changes that um added or made it could be adding new feature updating the existing feature you should check if it’s affecting the already existing functionality of your application or software that’s what regression testing is all about so that’s all with the demo let’s move on to the next part so regression testing is easy to Define and understand but baffling when it comes to performing regression testing of a software product one reason is the dynamic nature of software product it keeps changing you need to understand the challenges well before you can craft a strategy for these challenges so let’s have a look at common challenges of regression testing so the first thing regression testing is often considered as a drain of resources and Man part to test again and again something which has already been developed tested and deployed at early stages so when testers are told to perform regression testing they’re tempted to perform exhaustive testing of the software product quality assurance manager needs to make sure or he needs to devise an intelligent methodology for regression testing to Ure that every he required test case has been executed within the limited span of time and the amount of money that he is assigned with so basically the first challenge that you’ll encounter is its time consuming and expensive so as a QA analyst or manager you need to devise an intelligent methodology for regression testing next is it’s complex and challenging as new features and changes are implemented in software product more test cases are added to regression test suit as the product functionalities expand testers are overwhelmed by the regression test cases and they fall victim to lose track of test cases and when they lose track of the test cases they Overlook the important test cases as well right so regression testing is a complex process this can be prevented by regularly monitoring the regression test suit and deleting the obsolete test cases it is also important to avoid any duplication of test cases as they lack to unnecessary effort and frustration for testers lastly it’s the communicating business value in regression testing is usually tough regression testing as you know ensures existing product featur are still in working order communicating the value of regression testing to non-technical leaders of your company within your business can be a difficult task executors most of the time want to see the product move forward making a considerable investment in regression testing to ensure existing functionality is working can be a hard task so these are certain challenges that you’ll come across when you’re performing regression testing so regardless of the method of implementation that we discussed earlier that is retest all select and prioritization there are hand handful of General best practices that you can follow while implementing regression testing that way you can overcome the challenges which we discussed earlier so the first thing is you need to maintain a schedule choose a schedule of testing you can maintain throughout the software development life cycle so testing is never placed on back burner secondly use a test management tool in order to properly keep track of all the tests that are being performed on a regular basis and have the records of their performance over time it’s better to use a simple kind of test management tool that does all the task for you instead of you spending long amount of time and efforts on keeping track of all these test cases you can break down and categorize your test tests are often considered to be easy to understand and evaluate if they’re broken down into smaller pieces it’s not just with testing anyway right if the thing is huge and complex it’s difficult to understand but if it’s broken down into pieces and then you try to understand it’s easy so try to refactor your test cases as often as necessary then categorize them such that the categories of smaller test can be prior ized over the others so this makes sorting and execution much easier in future for you you can also consider customer risk not also you must and should consider customer risk basically the product is made for customer right so When developing and prioritizing regression test keep track about considering the effects the test cases will have on the customer or the business as a whole so try to design such test cases that they cover as many test cases as possible and lastly evaluate test prioritization so when using any any form of prioritization to order your regression test try to find a sensible way to order them such way you know what you’re actually doing don’t mess it up so well these are certain things that you can follow to achieve better regression testing results so failure to perform effective regression testing can cause a lot of needless suffering it might happen that everything required in the new Sprint is working fine but the previously implemented features and functionalities got messed up if this happens the client would not appreciate you for the new functionality he would become angry irritated and can be real trouble to handle so guys regression testing is really important testing is broadly classified as manual testing and automated testing so manual testing it’s pretty self-explanatory right testing of a web application is done manually by Human Action that’s what we call manual testing this means that someone actually goes on a device to valuate new numerous components including design functionality and performance of software so they click through multiple elements or units of web application without any support from Tool or script thorough testing is crucial to the success of a software product if your software doesn’t work properly chances are strong that most people won’t buy it or even use it at least not for long even if they buy it but testing to find defects or some sort of bucks is very timec consuming expensive often repetitive and sub objective to human error if you’re using manual testing so this is where automation testing comes into picture automation testing well it’s automated the buzzword automation focuses on replacing manual human activity with systems or devices that enhance efficiency of software test automation or usually referred as automation testing uses different kind of tools scripts and software to perform test cases by repeating predefined actions so by automating your software testing activities you will definitely get a comparative Edge in the market so let me give you some examples Amazon is testing delivery drones that pick up Warehouse orders sorted by robots Google is testing self-driving cars Starbucks is testing cashier free stores dedicated to mobile ordering and payment Facebook is testing a brain computer interface that may one day translate thoughts into digital text fascinating right there are mundane versions of AO aut technology behind all this testing software automation testing companies use automation technology to create the software responsible for the products and services causing all this hype about automation testing when you actually begin testing one of the primary decisions that you’ll have to make is if to choose manual testing or automated testing while neither of these options are technically better or worse when compared to each other factors like size budget time allowance of the project will certainly be Factor factors that affect which method will work best in the situation so you should be aware of distinct differences between manual testing and automated testing so here we go the first difference obviously the definition which we discussed earlier in manual testing test cases are executed by human tester and software whereas automation testing uses different kind of automation tools and scripts to execute test cases so let’s get started with other factors the first is reliability for a testing phase where duration is very long there are high chances of an undetected error when testing is performed manually every time a small defect is fixed the entire application needs to be tested to ensure that any other breakage is not occurring well the process is tiring and boring so testers often miss out critical defects while performing repeated testing it’s a common human behavior right therefore the accuracy and reliability of manual testing is very low automated testing on other hand is more Reliable Tools or the scripts that you use form the automated test if the script is properly written there is no chance of missing a defect when the test is executed over and over again and obviously it’s not boring as well for the machine right when it comes to reliability automated testing is highly reliable then comes the time required to perform the testing manual testing is obviously time consuming it takes up Human Resources but when it comes to automated testing it’s executed by software tools and different kind of scripts so it is significantly faster when compared to manual testing next we have when to use which kind of testing manual testing is suitable when the test cases are run once or twice therefore there’s no frequent repetition of test cases in manual testing so to name manual testing is suitable for exploratory or usability and ad hoc testing automated testing is suitable when the test cases need to be run repeatedly for a long duration of time automation testing is suited for regression testing performance testing low testing or highly repeatable functional test cases and next we have performance and batch testing which is not possible in manual testing you can batch multiple test scripts in automated testing performance tests like load testing stress testing spike testing Etc have to be tested by an automation tool compulsorily in software testing process then we have investment cost the cost of manual testing is usually dependent upon the human resourc deployed in the testing during the initial stages of testing the initial investment in manual testing is comparatively lower but the written of investment is very low when compared to automation testing when I say return of investment I mean the money that you own as a revenue at the end of the software testing or after selling the product is actually low when compared to automation testing in long run that is but the cost of automated testing is dependent upon testing tools deployed for performing the test but the initial investment in automation testing is usually higher though the WR of investment is better in long run so when it comes to investment cause initial investment manual testing is much preferable but if you want to perform testing for longer run then automation testing is much preferable as the last criteria we have human element manual testing allows human observation right so you’re getting exact kind of feedback a person would give you and that can be invaluable being able to predict what your users will or won’t like thinks that a computer can’t give feedback on ahead of time can influence your design and make it much better from the bottom up it improves the customer experience but when it comes to automated testing as there is no human observation involved there is no guarantee of positive customer experience so when it comes to human element manual testing is much better because you get to have a experience since the humans are the ones who are checking the software so Guys these are some differences that you should be aware of between manual testing and automation testing so to summarize what you’ve learned till now automation testing is lot of advantages over manual testing first of all it saves a lot of time and money it improves test accuracy it increases the test coverage as in you can perform test repetitively on different kind of devices complex tests and boring tasks are made very easy and comfortable it increases efficiency and team morale you no longer have to do the boring and repetitive task there’ll be no human errors obviously it reduces maintenance cost of testing it increases speed of executing tests and many more advantages so in short while manual testing is effective in projects with multiple operating environments and Hardware configurations automation testing is absolutely essential today to successfully deliver large scale products that need execution of repetitive and complex test cases but it’s impossible to automate all testing so it is important to determine what test cases should be automated first so guys let’s go ahead and take a look at use cases where automation testing have to be applied because like I said you can’t apply automation everywhere first of all as you guys know repetitive task of primary candidates for automation take an e-commerce site for an example it may be testing entering in user credentials multiple times consider the task that you hate doing not only are the stars boring to you but they’re often the ones where mistakes are made very commonly so automate them and do something more fun next capturing and sharing results is obviously a critical part to a successful test strategy rather than manually exporting your data crunching the numbers and making Petty graphs invest in a tool or automation strategy that will do this for you thereby you can save time and a lot of effort on your part and obviously test that require multiple data set sets rather than manually typing in information into forms or Fields automate this process to read an information from a data source and automatically type into the respective forms this way you’ll have better handle on your data variability and it also decreases the chances of making mistakes repetitively again and suppose if you’re waiting for an onscreen response it can be automated so you do not have to waste time staring at a screen and watching for a response right you have other better things to do put that time to better use and use automated controls like wait until in your program code then you have non-functional testing a good example of automating non-functional testing types is automating load testing think about having to see if your application can handle a load of 10,000 users automate this testing so you do not have to worry about manually spinning up 10,000 users hitting your application all at once test that run on several different Hardware or software platforms and configurations so as the number of device users interact with increases automating your setup or tearing down your setup environment will continue to be critical additionally these are scripts that you will use over and over again in multiple testing Frameworks right it’s better to automate than to do them manually so basically the cas is where you have to automate is when you have repetitive and boring task or if you have to capture some results and share the results or if you have to repetitively enter the data task as in data entry task or some sort of timing or screening responsiveness and especially in load testing or and suppose if you want to set up or tail down your environment setup then you can use automation so guys it’s always better to know when to use or when to apply Automation and software testing so guys success in test automation process requires careful planning and design work start out by creating an automative plan this allows you to identify the initial set of test twit to automate and serve as a guide for future test as well there are a lot of helpful tools to write automation script before using those tools it’s better to identify the process which can be used to automate the testing or the procedure that you have to follow to start automation so as next part of session we’ll discuss the steps that you need to follow when you’re performing automation testing so like I said earlier success in test automation requires care for planning and design work so start out by creating an automation plan first of all you should Define your goal for automated testing and determine which type of test to automate once you’re sure of what kind of test are you performing you need to select the tool so the first step here is test tool selection there are several kinds of testing tools available however choosing the right tool keeping in mind the nature of test involed is very important for your automation to be successful so whether it’s a code driven testing process or graphical user interface based testing you must sell the appropriate tool to automate the testing so the first step is selecting the proper tool required for automation of your application or testing next comes defining scope of automation as in you need to select which test cases to automate here you can follow certain pointers like the features that are important for business scenarios which have large amount of data or those which has common functionalities across different platforms and applications technical feasibility the extent to which business components areused the complexity of test cases Etc so by keeping these pointers in mind you can Define the scope of Automation and the third step is planning design and development after determining your goal and which type of test to automate you should decide what actions your automated test will perform planning design and development develop test cases don’t just create test steps that test various aspects of application Behavior at one time it becomes overwhelming large complex automated test are difficult to edit and debug as well so it’ll be a problem for you later on so it is best to divide your test into several logical smaller tests so once you’ve developed your test cases or you have written your test scripts next step is to develop test suits test suits are developed to ensure that the automated test which you have written run one after the other without any manual intervention this is done by creating a test suit that has multiple test cases a library and command line tool that runs the best suit so guys the next step is test execution once you’re done with writing your scripts and placing them in suitable test suits the next step is to start executing them automation scripts are executed during this test execution phase so execution can be performed using automation tool directly or through the test management tool which will invoke the automation tool which you have chosen to get the most out of your automated testing testing should be started as early as possible and as often as needed as well the earlier testers get involved in the life cycle of the project the better and more you test the more bucks you can find right so yeah your scripts are executed in this phase once executed The Next Step obviously is to create report formats so that individual test Logs with details of action performed during test are recorded properly for references so you define the type of test report format to be created screenshots messages Etc so all such things you include in your report as new functionalities are added to system under test with success Cycles automation scripts need to be added reviewed and maintained for each release cycle right so maintenance becomes necessary to improve the effectiveness of automation scripts so what I mean here is that you do not entirely finish a product and start testing suppose if you have found some bug you add additional features and again start your testing from the beginning so maintenance plays a very important role and it becomes necessary step to improve the effectiveness of your automation scripts so you need to follow these steps steps when performing automation testing to get the best results and efficient results next comes the automation tools there are several Innovative automation testing tools but before we discuss that we need to understand there are different kind of approaches to automation the first one is we have code driven approach this approach uses testing Frameworks like xunit framework Etc the focus here is mainly on test gate execution to find out if various sections of code are performing as per our expectations under different condition or not so code driven testing approach is a popular method used in agile software development then we have graphical user interface applications that have guis or graphical user interface may be tested using this approach it allows the testers to record user actions and analyze them any number of times so this is one way of going at automation for example if you want to test a website you can use automated testing tools like selenium that provides a record and Playback tool for authoring tests with without any knowledge on test scripting language so you do not basically have to know the scripting language here you do have record and Playback tool using which you can start executing your test test cases can be written in any number of programming languages like cop you have Java Pearl python Ruby and many other options so the next approach is using automation framework so basically a test automation framework is set of guidelines which are used to produce beneficial results of automation testing activity this framework brings together fun function libraries test data sources object details and other usable modules it lays down the general rules of Automation and it simplifies the effort required to bring the efficient results and lower your maintenance cost as well so basically you can say you’re setting down a set of rules that you need to follow while performing your automation testing let’s consider example suppose if there is any change in a test case then only that particular test case File needs to be updated without having to make any change to the driver or the startup script so now you have multiple approaches when it comes to Frameworks Frameworks could be linear scripting framework recording and replaying test scripts in sequential or you can say a linear fashion you have data driven framework a constant source of test criteria specifies the test scripts which you have to run here then you have keyword driven framework here the tables on a spreadsheet actually specify the action of our test scripts that need to be performed based on the library of functions for an assigned keyword then you have modular testing framework modules of an application under test are divided and then tested with individual test scripts and then they can be combined for larger test scripts then you have IB testing framework obviously it’s a combination of Frameworks to leverage the strengths of each of the ones which we discussed earlier when you’ve decided to perform automation testing you can opt for any of these approaches you can go for code driven testing you can also go for graphical user interface if you’re testing graphical user interface then you can go for framework approach and you have multiple framework options here as well like linear which performs testing in a linear fashion then you have data driven keyword driven modular testing and hybrid testing which is a combinations of all the other framework types so yeah guys basically there are ways you can Implement automation while software testing so now moving on to test automation tools selecting an automated testing tool is essential for test automation well there are lot of automated testing Tools in market and it is important to choose the automated testing tool that best suits your requirement so basically when you’re trying to test or select an automation tool please do follow the key points which I’ll mention now first of all check if the tool is compatible with platforms and the different kind of technology that you’re using ask yourself do you need support for mobile automation testing or different other kinds of testing are you testing net cop or other applications if yes and then on what operating systems so next flexibility of the testers also plays a very important role that is what kind of skills your tester have also plays a very important role for example can your QA Department write automated test scripts or is there a need for keyword testing thirdly does the automated testing tool support record and Playback test creation as well as manual creation of automated tests so basically you need to consider these sort of questions or situations before you go ahead and select the tool you can also look if the tool includes features for implementing checkpoints to verify values databases or key functionality of your application you need to create automated tests that are reusable maintainable resistant to changes in the application UI right so ask yourself will my automated test break if my UI changes so based on that choose a tool make sure that the application is stable enough to automate the early development cycle unless or otherwise it is a agile environment it not be a good idea and finally the cost and the effort that you need to put in is also a very valuable concept that you should consider when you’re choosing an automation tool for your testing well these are certain categories or scenarios or key points that you should take care of when you’re actually choosing an automation tool now to name few popular automation testing tools we have selenium selenium is a popular testing framework to perform web application testing across multiple browsers and platforms like Windows Mac Linux then we have water w a TI basically it’s pronounced as water is an open-source testing tool made up of Ruby libraries to automate web application testing then you have something called ranorex it is in flexible all-in-one gii testing tool so using ranorex you can execute automated test flawlessly throughout all environments and browsers and devices then you have APM it’s a mobile testing tool it is an open-source mobile test automation software obviously it’s free and supported by a high active community of developers and experts so apart from this you also have Zyer tosa for N2 testing than HP or unified functional testing which was formerly known as HP Quick Test professional or qtp and I can just keep going there are plenty of automation testing tools so tool selection is one of the biggest challenges that need to be tackled before you actually start with your automation so first identify the requirements explore various tools get to know them and their capabilities set the expectations from the tool and go for a proof of concept so that’s how you choose a tool of your choice so guys in some situations automation testing is very important but as much it is comfortable that much it is risky too so if you decide to do automation testing then think of following scenarios first starting cost for an automation is very high automation tool purchasing cost training and maintenance of test script all these costs are very high because of this reason some companies are worried to take decision to automate their work secondly automation is not 100% automation testing cannot be 100% and don’t think of that there are areas like user interface documentation installation compatibility and Recovery where testing should be done manually you can’t do all this using tools you need to have a person involved in this and another risk that you might encounter is when you have unrealistic expectations from the automation testing tool so like I said earlier know the requirement study different kind of tools get to know their capabilities and choose the tool and then comes the incompatibility of automation testing tools with the test environment and other software testing Tools in test environment then you have vendor issues like inability to provide technical support inability to update the automation testing tools with changes in software testing platform and all that and one more point do not automate unfixed user interface be careful before automating user interface if user interface is changing always cost associated with script maintenance will be very high so basic user interface automation is is enough in such cases by mentioning all these points what I wanted to tell you is automation is not possible every time and these are some cases where you might have to start looking twice before you actually Implement automation here so guys there’s no Silver Bullet for testing during the development process despite the wide variety of techniques and tools we cannot rely on a single approach automated and manual testing each have their strength and weaknesses what we want to stress here is that no matter how great autom tests are you cannot automate everything manual tests play important role in software development as well and they come handy when you cannot automate the process so guys we have reached the end of the session and by now I’m sure you know what automation testing is and benefits of using automation testing when to uses and which test cases need to be automated and how different it is from manual testing so make sure to consider all these points when you go ahead with automation next time now performance testing is basically defined as a type of software testing to ensure software applications will perform well under their expected workload Now features and functionality supported by a software system is not the only concern a software application’s performance like its response time reliability resource usage and scalability do matter now the goal of performance testing is not to find bugs but to eliminate performance bottlenecks now performance testing is done to provide stakeholders with information about the application regarding speed stability and scalability now more importantly performance testing uncovers what needs to be improved before the product goes to the market without performance testing software is likely to suffer from issues such as running slow while several users use it simultaneously now the main focus of performance testing is checking a software programs speed so basically it determines whether the application responds quickly then the scalability it determines maximum user load the software application can handle then we have the stability now this determines if the application is stable under varying loads so performance testing will basically determine whether their software meets speed scalability and stability requirements under expected workloads applications sent to Market with poor performance metric tricks due to non-existence or poor performance testing are likely to gain a bad reputation and fail to meet expected sales goals now let’s move on and have a look at the different advantages of performance testing so the first one is validate the fundamental features of the software now having a solid software Foundation is a key principle of generating software success measuring performance of basic software functions allows Business Leaders to make key decisions around the setup of the software now Apple and Samsung are two great examples of nailing the fundamentals of their software with a strong software Foundation they have been able to plan their business strategy and make key decisions about how their devices will operate next up we have measure the speed accuracy and stability of software now measuring performance speed accuracy and stability is a vital aspect of software performance testing it allows you to monitor The crucial component of your software under durus and can give you Vital Information on how the software will be able to handle scalability next performance testing allows you to keep your users happy now your first impression to prospective customers is absolutely crucial research has shown that nearly half of users expect web and mobile based applications to load within 2 seconds now this is a small time frame to make a good impression before users will switch off that time is likely to decrease further as connection speed and network capacity increases now measuring application performance allows you to observe how your customers are responding to your software the advantage is that you can pinpoint critical issues before your customers the next Advantage is it identifies discrepancies and resolves issues so measuring performance provides a buffer for developers before release any issues are likely to be magnified once they are released now performance testing allows any issues to be ironed out it is important that performance testing is monitored across business sectors now Business Leaders must have open communication Channels with it to ensure that the performance of the software can match the business strategy now the final Advantage is improve optimization and load capability now another benefit of performance testing is the ability to improve optimization and load capacity measuring performance can help your organization deal with volume so your software can cope when you hit high levels of users so whether your organization can manage scalability is one of the most important unknowns that must be answered as early as possible now the benefits of performance testing your software are far reaching for your organization measuring performance can help you understand the speed stability and accuracy of your software now let’s have a look at the different types of performance testing so first we have the load testing now this testing checks the applications ability to perform under anticipated user loads the objective is to identify performance bottlenecks before the software application goes live then we have the endurance testing now this is done to make sure that the software can handle the expected load over a long period of time next up is the volume testing now under volume testing large number of data is populated in a database and the overall software systems behavior is monitored the objective is to check software applications performance under varying database volumes next is the scalability testing now the objective of scalability testing is to determine the software application Effectiveness in scaling up to support and increase in user load so it basically helps plan capacity addition to your Software System then we have the spike testing now this tests the software’s reaction to sudden large spikes in the load generated by users and finally we have the stress testing now this involves testing an application under extreme workloads to see how it handles high traffic or data processing the objective is to identify the breaking point of an application now there are various performance testing tools available in the market some of the top most performance testing tools include the Apache J meter load view load Runner Web load neoload the grinder load ninja Blaze meter load complete and a lot more now there is no best tool in the market you need to find the best tool for your performance project goals so don’t SLO to choose the right tool get smart and consider factors like your desired protocol support license cost customer or client preference of flow tool cost involved Hardware or software requirements and Tool vendor support in order to decide on your performance testing tool so let’s have a look at the top 10 performance testing tools first we have load ninja now load ninja by smartbear allows you to quickly create scriptless sophisticated load tests reduce testing Time by 50% replace load emulators with Ral browsers and get actionable browser based metrics all at ninj speed now you can easily capture client side interactions debug in real time and identify performance problems immediately Lo ninja empowers teams to increase inre their test coverage without sacrificing quality by removing the tedious efforts of dynamic correlation script translation and script scrubbing with load ninja Engineers testers and product teams that can focus more on building apps that scale and less on building load testing scripts now some of the features of load ninja are scriptless load test creation and Playback with insta play recorder real browser load test execution at scale vu debugger debug tests in real time and the Vu inspector manage virtual user activity in real time it’s hosted on the cloud so no Sero machine and upkeep is required there’s sophisticated browser based metrics with analytics and Reporting features also some of the protocols include the HTTP https the sap GUI web websocket Java based protocol the Google web toolkit and the Oracle forms now next up we have the Apache jmeter now jmeter is an open-source tool that can be used for performance and load testing for analyzing and measuring the performance of a variety of services now this tool is mainly used for web and web service applications so let’s have a look at some of the features of Apache jmeter now this tool doesn’t demand state-of-the-art infrastructure for load testing and supports multiple load injectors managed by a single controller it’s highly portable and supports 100% all the Java based apps there’s less crypting efforts as compared to other tools because of its userfriendly GUI here simple charts and graphs are sufficient for analyzing key load related statistics and resource usage monitors it also supports integrated realtime Tomcat collectors for monitoring some of the protocols include the HTTP https web services such as XML s soap ET Etc Java based protocols FTP on third we have the web load now web load is an Enterprise scale load testing tool which features a comprehensive IDE load generation console and a sophisticated analytics dashboard the web load has built in flexibility allowing the QA and devops team to create complex load testing scenarios thanks to Native javascripting it supports hundreds of Technologies from web protocols to Enterprise applications to to network and server Technologies some of the features of web load are flexible test scenario creation it supports every major web technology there’s powerful correlation engine automatic bottleneck detection generate load on premise or in the cloud native JavaScript scripting and there are many more such as the UI visards to enhance the script supports many Technologies and also easy to reach customer support and some of the protocols are the HTTP HTT GPS XML Enterprise applications Network Technology and server Technologies next up we have the load UI Pro now load UI Pro by smartbear allows you to quickly create scriptless sophisticated load tests distribute them on cloud using load agents and monitor performance of your servers as you increase load on them now you can access detailed reports and quickly automate your load tests on genkins bamboo TFS and other automation Frameworks now if you’re using soap UI already you can convert the test cases into load tests with just three clicks all without writing a single line of script some of the features include scriptless load test creation preconfigured load test templates like Spike Baseline stress smoke drag and drop load tests on distribution agents on cloud there’s sophisticated analytics and Status features for reporting quick conversion of fun functional tests from soap UI as load tests and some of the protocols supported are the HTTP rest soap Json JMS Swagger RL IOD dos there’s API blueprint Json schema XML schema mqtt and many more now next up is the load view now with load view by Doom monitor you can show actual performance of your applications under load just as your users experience it now load view utilizes real browser based load testing for websites web applications and apis it easily creates multi-step scripts that simulate users interacting with your website or application using the everystep web recorder or even manually edit the script using your own C code now some of the features are the cloud-based load testing in real browsers it quickly and easily builds test scripts without touching a line of code the test compatibility on 40 plus desktop or mobile browsers and devices also 13 plus worldwide Cloud locations using Amazon web services and Google Cloud platform it also identifies bottlenecks and ensures scalability performance metrics and reports that can be shared with various internal stakeholders for capacity planning now some of the protocols include the flash silver light Java HTML 5 PHP Ruby and many more now on number six we have the neoload now neoload is an Innovative performance testing platform designed to automate test design maintenance and Analysis for agile and devop steams neoload integrates with continuous delivery pipelines to support performance testing across the life cycle from component to the full systemwide load tests some of the features include the automated test design enabling 10 times faster test creation and update than traditional Solutions integration with CI servers for autom test runtime collaboration that is shared test scripts and reports at real time and after test completion through an on premise web interface also hybrid on premise and Cloud load generation from over 70 Global localizations the protocols supported are the HTTP https s soap rest Flex push and Ajax push next up we have the load Runner now this is an Enterprise performing testing version of load Runner and a platform enabled both Global standardization and formation performance Coe so it is basically a software testing tool from micr Focus which is used to test applications measuring system behavior and performance under load some of the features include it lowers the cost of distributed load testing scale from single projects to a full scale testing center of excellence that consolidates Hardware standardizes best practices and leverages Global testing resources it Al reduces the risk of deploying systems that do not meet performance requirements through the use of effective Enterprise load testing it also lowers hardware and software costs by accurately predicting system capacity it pinpoints the root cause of application performance problems quickly and accurately effective tool utilization tracking is also available now the browser based access to global test resources and optimal usage of load generator Farm is also present now in this case all Protocols are supported by the load Runner this is just another added advantage of this tool next up we have the silk performer now silk performer tool is an Enterprise class load and stress testing tool and has the ability to test multiple application environments with the thousands of concurrent users it also supports the widest range of protocols now there are good features in silk performer such as it requires minimum Hardware resources for virtual user simulation it simulates modifiable virtual users supports integrated server monitoring and customer friendly licensing the correlation and parameterization is also userfriendly there’s no license requirement for controllers or individual protocols it also handles low test and project approach not just that it also generates reports with tables and graphs supports six models of workloads provides agent Health control service Diagnostics and many more the protocols supported by this include the HTTP HTML https flash email FTP TCP IP ldap XML s soapnet and many more now on number nine we have the app loader tool Now app loader is a load testing solution designed for business applications it allows you to test any application by reproducing the same user experience from all your access points Thin fat clients and web portals now some of the features of apploader are it allows you to test the entire business flow including all third-party apps without adding plugins or writing a single line of code now the app loader replicates the users interactions with your application and gives you valuable metrics about the end users’s experience including screenshots of failures now scripts are created automatically when you use your application and can be easily edited without coding they can then be seamlessly applied to regression testing and application monitoring modules available now let’s have a look at the protocols Now app loader is compatible with all versions of Citrix Zen apppp and Zen desktop cloud based in hybrid infrastructures EHR systems as well as custom applications now last but not the least on number 10 we have the smartmeter.io now smartmeter.io is an alternative to meter and aims to fix its drawbacks it allows for easy scriptless test scenario creation using the so-called recorder yet lets you make advanced edits of the test it also excels in test reporting and makes use of functions such as automatic test criteria evaluation test runs comparison and Trend analysis it fully supports Ci or CD integration it is also available for Windows Mac OS and Linux now some of the features include scriptless test scenario creation comprehensive reporting with automatic evaluation and test runs comparison GUI test run with realtime results state-of-the-art response body extractor Ci or CD ready now the protocol supported include the HTTP jdbc ldap s soap JMS and FTP so these were some of the performance testing tools that I have listed in my top 10 list list do let me know if you know about any other tool that would serve the purpose now what is a j meter so the Apache J meter is a Java open source software that is used as a load testing tool for analyzing and measuring the performance of a variety of services now usually we tend to follow the trends in testing and forget to pay importance to verifying whether the product meets expected or required performance now unfortunately we figure out this Pitfall Post delivery of the product nowadays performance is an inevitable Factor especially for web and mobile applications as the user strength is very huge for each application even if it is not to be expected all the time now in order to cope up with such situations of load we need a handy tool and that’s exactly where the Apache J meter comes into play now before we get to know more about the J meter tool we first need to understand what is performance testing now it is very important to verify whether the product meets expected or required performance now performance testing is defined as a type of software testing to ensure software applications that will perform well under their expected workload now it focuses on certain fact factors of a software program such as the speed scalability and stability now performance testing is checking whether the application under test satisfies required benchmarks on both load and stress now load testing is testing to see whether the system or application under test is able to handle the required number of concurrent user accesses on web server without any failure and the stress testing is testing to see how the web web server copes up with high load and limited resources that is under constrained conditions here we just determine what the maximum load is that the web server can handle now performance testing has much significance in real time particularly from a point of view of customer satisfaction and Roi now we have come across several performance testing Tools in our testing experience and have found HP load Runner open SDA load impact and many more popular ones but J meter is one of the much preferred one among testers worldwide now let’s have a look at the advantages that makes jmeter the most preferable one jmeter is open- source and built in Java platform it is highly extensible and platform independent also it is very user friendly now jmeter has a comprehensive GUI which helps to create test plan and configure the elements now adding elements is easy on J meter just right click on the tree scenario and add what you need to do now the newest version allows user to change look and feel G meter supports scripting but it is not necessary because you can run a complete load test without knowing a bit of code jmeter stores its test plans in XML format it means you can generate a test plan using a text editor next Advantage is the support now basically it is designed for performance testing but also supports other non-functional tests such as stress testing distributed testing web service testing by creating test plans also it provides supports for protocols such as the HTTP jdbc s oap JMS and FTP now jmeter has wide range of users so there is open-source Community there to help others next up is the comprehensive documentation now this is one of the most important things to be highlighted because of its robust documentation user can have a clear idea on each and every step starting from scratch including installation and configuration of the test settings and generating final report the next Advantage is the recording now J meter allows user to record HTTP or https to create test plan using recording facility now we use proxy server that allows J meter to watch and record your actions while while you browse your web application with your normal browser and the final one is reporting now jmeter supports dashboard report generation a host of reports are generated through jmeter which helps the user to understand performance test execution results so now that you know what is J meter and what are the advantages let’s begin with the installation process now before installing jmeter you must ensure that you already have Java installed in your system so in order to check if Java is already there in your system you can just open the command prompt and check for the Java version so here you can see I already have the Java version 10.0.2 installed here so now we are all set to download the jmeter so now in order to install jmeter we go to the official website that is the J meter. apache.org now here you have the binaries so you can download any of of these tgp or zip file from the Apache jmeter website now jmeter is pure Java desktop application and it requires a fully compliant jvm 6 or higher so you first have to check if you have the Java SE development kit installed or not and here you can see that the latest version of jmeter available is the 5.1 so you can download any of these binaries now installation of jmeter is extremely easy and simple so you can can simply unzip the zip or the tower file into the directory where you want the J meter to be installed there is no tedious installation screen to deal with now once the download is complete you can go into your downloads and find that the Apache Jer file is already there and inside bin you will get to see all these files of jmeter now if you are using Windows you just have to run the file the jmeter dobat to start the J meter in the GUI mode so I have already installed the J meter in my system and I’ve also created a shortcut in the desktop so let’s open this and show you how it actually looks now you can see that our Apache G meter is getting started so this is exactly how it looks so this is our final Apache J meter GUI Now using this we can perform the testing for any website or any software program now before starting any performance testing let’s discuss some of the important elements that are present in the J meter now there are four important elements that are the thread group Samplers listeners and configurations now first we create a test plan so it is a container which describes what to and how to test here you can see how it looks like just how I have shown you that how the GUI of the Apache J meter exactly looks like now a complete test plan consists of one or more elements such as the thread groups logic controllers sample generating controllers Etc it describes the behavior of the element now once we configure the element we just save it then we run the test plan and analyze the test result from various graphical formats such as tree table and graph now it is quite difficult for humans to execute performance testing manually so it is inevitable that we depend on a performance testing tool to do the job when we go for simply the best solution in all aspects of software development why not in the matter of performance testing too now jmeter is the final words in this department to be used for ensuring quality deliveries in time so the first element is the thread group now thread groups is a collection of threads each thread represents one user using the application under test basically each thread simulates one real user request to the server and the controls for a thread group allow you to set the number of threads for each group for example if you set the number of threads as 100 jmeter will create and simulate 100 user requests to the server under test the next element is the Samplers now as we know already that J meter supports testing HTTP FTP jdbc and many other protocols we know that thread groups simulate user request request to the server but how does a thread group know which type of request it needs to make the answer is samplers the user request could be FTP request HTTP request jdbc request Etc now for the FTP request let imagine that you want to perform test on the FTP server now you can use an FTP request sampler in jmeter to do this task this controller lets you send an FTP download file or upload file request to an FTP server now the HTTP request lets you send an HTTP or https request to a web server jmeter sends an HTTP request to Google website and retrieve HTML files or image from this website next is the jdbc request now this sampler lets you execute database performance testing it basically sends a jdbc request to a database and then we have the BSF sampler now this sampler allows you to write a sampler using a BSF scripting language the access log sampler allows you to read access logs and generate HTTP requests the log could be image HTML CSS Etc then we have the SMTP sampler now if you want to test a male server you can use the SMTP sampler this sampler is used to send email messages using the SMTP protocol now moving on the next element is the listeners now listeners show the results of the test execution they can show results in a different format such as a tree table graph or log file now the graph result listeners display the server response times on a graph view result three show results of the user request in basic HTML format and the table result shows summary of a test result in table form at and the log shows summary of a test results in the text file now the final important element is the configuration element now it basically sets up default and variables for later use by the Samplers now for the CSV data set config suppose you want to test a website for 100 users signing in with different credentials you do not need to record the script 100 times you can parameterize the script to enter different login credentials this login information could be stored in a text file now jmeter has an element that allows you to read different parameters from that text file it is the CSV data set config which is used to read lines from a file and split them into variables then we have the HTTP cookie manager now HTTP cookie manager has the same feature as a web browser now if you have an HTTP request and the response contains a cookie the cookie manager automatically stores that cookie and will use it for all future requests to that particular website we also have the HTTP request default now this element lets you set default values that your HTTP request controllers use for example you’re sending 100 HTTP requests to the server google.com you would have to manually enter server name equal to google.com for all these 100 requests instead you could add a single HTTP request defaults with the server name or IP field that is equal to google.com then we have the login config element the login config element lets you add or override username and password settings in Samplers for example if you want to simulate one user login to website facebook.com with user and password you can use the login config element to add this user and password setting in a user request so this is all about the different elements of J meter now we will see how all of these elements work actually so all we have to do is run the jmeter dobat and then finally we will get our jmeter tool running here now this is based on a Java application so you need not worry about the operating system because it’ll be working the same in all the operating systems so this is our home window and you can see two sections here the left side frame will consist of all the elements of J meter and the right side of the frame will consist of the configurations that we are going to change so here we can see the configuration of the test plan window now test plan is basically like a container that will contain all your test plans that you’ll need to perform so any kind of graph results Samplers listeners anything will come under the test plan so let’s just give it a name as Eda so here I’ve changed the name and as soon as you click here you can see the name here is also changed to edure Rea now when I right click here and go to add so you can see a lot of elements that we can add here so one of the most important ones is the threads so we have discussed about the thread group so we know that the thread group is basically a collection of threads and each thread represents one user using the application under test so here first we will be adding one thread group now let’s rename this thread group as users so here we have action to be taken after a sampler error so what it basically means is that it’s asking what should the thread do if there’s an error that has occurred while performing the test so here we have options like we can continue with our test or start next thread Loop stop thread or stop the test so here we will be continuing with our test even if there’s an sampler error now thread properties is one of of the most important part here we have number of threads ramper period in seconds and the loop count like if you want to count it forever or for some particular number of Loops so as of now all the values are one so we have one thread one ramper period and one Loop count now let’s go back and add a sampler now so we already know that J meter supports testing HTTP FTP and all that and the sampler is another important element of the J meter so here let’s add another HTTP request so the HTTP request will let you send an HTTP or https request to a web server so we will be running a web application here so I’ll be renaming this one as homepage so here we are giving the server of the website that we are going to perform the testing on so let me take the edura blog website so this is our Eda blog page on which I’m going to perform the testing so let me copy the URL here so in the server name or IP I’m going to paste the URL but you have to remember here we are not going to use the https colon and the forward slash so we would just be using the www. ed. goblog also this last slash also indicates the path so here we won’t be writing this path the path will be specified in this section so here we have used the server name that is the

    ua. go/ blog and we have specified our path here so for the root page I’m just giving a forward slash here so now our HTTP request is ready so we are going to perform our testing on this particular page that is our Eda Blog Page and the path is also set now how do we get to know that what is the result of this testing now in order to view the result we have to add a few more testing elements so here we will be adding another element that is the listener and inside listener we have view results tree we have view results in table so we can select any of these as in how we want our result to be viewed so we can view it in a graph in tree or a table so here first I’ll be selecting view results in table so here the result would be shown in the form of a table whenever I perform the testing the result will be up here in the the form of a table so we just have to go inside the listeners because it shows the results of the test execution and add the particular view we want so I have selected view results in table so now once we have done this in order to run this test first we have to save it so I’m saving it in the desktop in the folder named as jmeter and I’m naming it as edura test plan and saving it so you must always save it if you want to reuse your test plan okay so now that it’s all done let’s finally run this and see how the performance testing work so here we’ll be starting our test so you can see that the test is going on here it shows the seconds that are taking so this is the report that has been generated so we have just performed one sample one thread because in our thread group section we have given just one thread one ramper period and one Loop count so here you can see the result so we have one sample you can see the start time at what time we have started the test and then we have users 101 that is the thread name because we have just one thread and one user and we have our label as homepage because we have named it as homepage and it shows the sample time that has been taken so we have a sample time in milliseconds that is 4467 you can also see the status as green which means it’s performing well and then here we have a bytes sent bytes latency and the connection time so you can see the connection time that is the server request took 398 milliseconds so now this was just a very basic test that we have performed we have just taken one thread and we have shown the result in the form of a table so now let’s see what else we can do using our jmeter so now let’s go back to the users and let’s increase the number of threads and see how it changes our values so here I’ll be using number of threads as five let’s increase our Loop count as well let the loop count be three here so now we have five threads that is five users and one ramper period and loop count as three now let’s go back to our homepage and we have the same website in our server and the path is also specified now let’s go back here and before that if you want to clear your previous results then all you can do is just clear the history and see it’s gone so now again first let’s just save it and see what happens now that we have increased the number of threads and users so let’s run this so now you can see that we have five threads and three Loops so you can see that we have used a one of one one of two one of three one of four and one of five so what happens basically here is we have five users that is five threads and we have our Loop count as three so all the five threads will be inside the loop count three so you can see all of these have been executed three times all the five threads so here also you can see the status is green it’s performing well the testing is all fine and we have the status as green and we have our bytes sent bytes the latency and the connection time as well so now let’s see how we can view our results in some other view so let’s go to add and listener and inside this we also have view results Tre and we also have graph so let’s go for view results Tre and run the test again because we have the same values and let’s see how it works in the tree so here you can see that in just a tree format it shows you that our homepage status has been performed these many times and it’s performing well because the status here is green now let’s check out how a graph will work so for this we have to select the graph results so you can see that here we have graphs to display as our data will be shown the average median deviation and the throughput so now let’s run this and see how it works so you can see that here the number of samples are increasing and our latest sample throughput time everything is increasing and here you can see the graph so we had five threads and we had three Loops so we had total number of s Les as 15 so the graph doesn’t show a huge deviation but in our table we can see a proper result where you can see all the bytes send bytes latency connected time values clearly and also get to know about the status so you can always view your result in a table tree graph or a log format so now you have already learned about the thread group The listeners the Samplers let’s see how the configuration element works so this is how basically a j meter works now you know all the important elements that you can use inside the J meter that is you have the thread group first you have the test plan where you get to configure your elements then inside that you have your thread group listeners Samplers and how you want to view your result you can view it in t table tree graph or in the form of a log now you know what is a thread group and how you can change change the number of threads and the loop counts and how it affects your testing also you can go inside that and create your HTTP request and also view your result in the way you want it to so now this was just the beginning and this was the very basic of how you can perform your test plan but these are the most important things that you need to keep in mind before performing any testing on any web page or any website so I hope now you have understood how it actually works so from the installation process to find performing your first test plan this is how jmeter will help you what is junit junit is an open-source unit testing framework for Java it is important in development of test driven Frameworks and is also considered as an instance of xunit architecture as the name suggests it is used for testing a small chunk of code or a unit now you might ask a question what is junit junit is used to verify a small chunk of Code by creating a path function or a method the term unit existed even before the objectoriented era was created it is basically a natural abstraction of an object oriented system that is the Java class or object J unit basically promotes the idea of test first quote later so this is about G junit now let’s take a quick look at the advantages of junit junit is one of the best testing Frameworks that can be selected for an efficient testing process more application developer ideas include junit it also provides an awt and swing based graphical test reporting mechanism it also provides a text based command line the open-source Community has extended junit by implementing a junit Enterprise Edition test framework that enables it to test within the application service container junit is widely adopted by many organizations around the world for performing unit testing in Java programming language junit has also become a benchmark for testing in Java and is supported by almost all the IDS so this is about what is junit and what are its advantages now let’s move ahead and take a look at the features of junit junit tests allows you to write codes faster which increases quality it is elegantly simple as it is less complex and takes less time to test an application it provides annotations to identify the test methods it provides test Runners for running the tests these tests can be run automatically on junit and they will check with their own results and provide immediate feedback the test cases can be run automatically on junit and they check their own results by providing immediate feedback there is really no need to manually comb through a report of the test results okay so this is one of the major features of junit junit tests can also be organized into test tudes containing all the test cases this also helps in showing test progress in a bar that is green if the test is running smoothly and it turns red when the test case fails okay so these are some of the major notable features of junit now let’s move ahead and take a look at the junit framework junit is a regression testing framework which is used to implement unit testing in Java to accelerate programming speed and increase the quality of code this framework also allows quick and easy generation of test data and test cases now let’s discuss the major features of this junit test framework they are namely test test fixtures test suits test Runners and junit classes now let’s get to know them in detail a fixture is a fixed state of a set of objects which is used as a baseline for running the test cases the major purpose of a test fixture is to ensure that there is a well-known and fixed environment in which the tests are run so that the results are repeatable there are basically two methods under this test fixture they are namely setup method and tear down method setup method is run before the test invocation The annotation at before is used in this case and in this case we use The annotation at after let’s understand test fixtures with an example in case you write a code without annotations the code is not readable it is not easy to maintain and when the test suit is complex the code might contain some logical errors so these are the issu ues that you’ll be facing if you don’t use annotations while testing an application but when you compare the same code using junit the code is far more readable and maintainable and the code structure is way too simple and easy to understand okay so this is how test fixtures play a major role in testing an application using junit now let’s move ahead and understand test suits if you want to execute multiple test cases in a specific order it can be done by combining all the test cases in a single origin this origin is called the test suits a test suit bundles a few unit test cases and then runs them together to run the test suit you need to annotate a class using this annotations that is at run with at suit classes or at suit. suit classes okay so these are the annotations that you have to do when you want to test a suit now let’s talk about a test Runner the test Runner is used for executing the test cases junit provides a tool for the execution of the test cases junit core class is used in order to execute the tests another important method called run classes is provided by junit runner. junit core which is used to run one or several test cases the return type of this method is the result object that is used to access information about the test cases you can get this result object in the following link so this is about the test Runner now let’s talk about junit classes junit classes are used to in writing and testing junits some of the important classes are assert test case test result okay now let’s talk about assert it contains a set of assert methods we’ll discuss what are these assert methods in a coming section test case it contains the test case that defines the fixture to run multiple test cases test result it contains methods in order to collect the result of executing a test case Okay so this is everything you need to know about the junit framework now let’s move ahead to our next topic and understand how to set up junit on your system like I mentioned earlier junit framework is used to test Java based application so before installing junit you need to configure and verify Java development kit that is jdk in your system so the first thing you need to do is have the Java libraries in your system if you don’t have the Java libraries follow these steps to complete your Java installation go to the Java downloads page and click on the option for Java platform that is jdk in the next page do select the accept license agreement radio button accept it and click the download link against matching system configuration now to cross check the installation just run the following command in the command prompt it should display the installed version of java in your system as I already have Java installed in my system I’m just going to verify if it exists or not so I’m going to go to command prompt type Java space hyphen version so the version that I have in my system is 1.8 you can also download any version of your your choice the latest version is 12 and this command can vary from One OS to another for Windows we use this command that is Java hyphen version for Linux you use dollar Java hyphen version for Mac you just have to click on till day dollars Java version okay you can run the installer once the download is completed and do follow this correct instructions so first go to system and go to advaned system settings yeah so it pops up environment variables here just click on the environment variables and click on new and add this command so I’ve already added the command here so the specific location of this junit will be stored in my C drive and the variable name that I’m going to provide is juniore home this is a must when you’re working on junit click on okay and do note you need to add the class path accordingly so I’ll again click on new so the variable value will be percentage class path provided by the percentage as well that is a closing thing and junit home and Slash the junit that you’re working on that is version 4 okay and the variable name would be class path click on Okay click on okay and click on okay so this is how you set up junit on your system that is just like how you set up Java on your system for the first time now once you understood how to set up junit on your system we need an IDE in order to perform the actions I’ll be considering working on the eclipse ID because it is userfriendly and all the available jar files can be easily downloaded in eclipse and preferably if you’re working on Java projects I would recommend you to use Eclipse ID if you’re new to junit and you don’t know how to set up eclipse on your system I’ll be putting up link in the description below just click on it and understand how to install eclipse on your system as I already have Eclipse ID here I’m just going to open it yeah so this is the eclipse workspace now in order to work on junit first thing you need is create a new project so I’m going to go to new and go to project and I’m going to name this junit project and click on finish yeah you can see that a folder is being created under which the Java libraries site and a source field where we’ll write our code okay so the next thing you need to do after you create a project is to add the libraries that is junit libraries so I’m going to right click on my project go to build path and go to configure build path here you have to add the external junit jar files that you have to download so I already have the junit jar file so I’m going to just go to add external jars I’m going to search for junit yeah so I’m just going to add this and then I’m going to add a library that is junit library to my program how do you get this thing one way which you can get this is you can go to the eclipse Market space and search for junit you can install an external plugin from there okay click on next and click on finish you can see that junit library is added here so I’m just going to click on apply and close yeah so the junit jar files are added to your system so these are the following steps you need to follow in order to set up junit on your system now that you’ve understood how to set up junit on your system let’s move ahead and learn how to write a simple junit program so in order to write a simple program I’m going to right click on the source field go to new and create a new package I’m going to name this as code or edura and click on finish I’m going to be writing my entire program under this package so I’m going to create a new class in order to write it I’m going to name it as junit class and click on finish yeah you can see that a class of the name provided that is junit class is created here and the first thing I’m going to do after creating the class is ADD The annotation test and then I’m going to be creating a new method here that is public void setup under which I’m going to print a string a string I’m going to be considering as Str Str and I’ll print this is my first gunit program okay and then I’m going to be using the assert method in order to compare if the two sentences are equal or not so assert equals and I’m going to be writing the exact same thing that is this is my first junit program comma specify the string so first I’ll be importing the packages it is okay this assert equals yeah once this is imported I’m just going to run this so I’ll just click on run here and you can verify that junit was set up in 0er seconds okay so this is how you verify if your junit program is successfully installed in your system or your project or not now next up I’ll create another class to execute this test so I’m going to right click on my project and go to new class I’m going to name this as demo class add the main function and finish here I’m going to be writing the corresponding code in order to access the junit class okay so first I’ll create the result and create an object of result that is equal to junit core do run classes where I’ll be storing in the form of a result you can already find it just click on this and the class name is the previous name of the class that is the junit class okay I hope you’re clear with this It’ll ask us to import yeah so you have three options here for import check which one is suitable we’re using junit Runner so I’ll be importing the junit runner packages so here as well let’s see what it throws an error here okay it is asking us to create a new class or interface okay let me see what m take I’ve done here yeah so the name is j unit and I’ve used uppercase for u j unit is case sensitive and class okay and I’m going to be checking for a condition for failure creating an object of the same failure and check the result of get failures okay so it Returns the results in the form of a list okay so I’ll just import this failure packages yeah done and I’m going to be writing the corresponding code inside this so I’m going to consider printing it first system.out.print Len in this I’m going to be printing failure dot two string okay so this basically helps in printing the results which are failed and after this I’m going to print another statement that is system do out. println where I’m going to be writing result is equal to and specify the result location that is result dot was successful okay so this prints the test case which was successful now let’s try running this program save it and run yeah so it prints the result is true now how is the result true it checks for the condition for failure the result is get failures and if this condition satisfies it is going to print the failure string that is the failed string in case if it is true it prints this particular command that is result is equal to so this is how you test an application or test a program using junit now that you’ve learned how to write a simple junit program let’s understand the testng annotations junit framework is built on annotations an annotation is a special form of syntactic metadata that can be added to a Java source code for better code readability these annotations provide the information regarding the methods that are going to be run before and after the test methods the methods that are run before and after all the methods are completed the methods or classes that will be ignored during the test execution okay so these are the following list of annotations that we have that is test before after before class after class and ignore okay now let’s understand them in detail annotations start with the letter at okay so this test annotation tells junit that the public void method can be run as a test case now let’s talk about before this helps in annotating a public void method with annotation before which causes the method to be run before each test method okay so this method is called before you execute any test case what about after if you allocate external resources in a before method you need to release them after the test Rons so one way to do that is annotate the method with at after which causes that method to be run after the execution of the test method talking about before class this method helps in annotating a public static void meain with at before class which causes it to be run once before any of the test methods in the classes are run talking about after class this will perform the method after all the test cases are run this is used to perform cleanup activities as well talking about the ignore annotation this annotation is used to ignore the test that will not be executed this is also used in order to skip the test cases okay so these are the annotations that you need to be perfect when you’re working with junit now let’s move ahead and understand what are the assert statements that are available in junit assert is a method which is used in determining pass or fail status of a test case in junit all the assertion are in the assert class so this class basically provides a set of assertion methods which are useful for writing the test cases do note that only failed assertions are recorded so there are different methods under this assert command we have eight assert statements in total let’s take a look at them one by one the first method is void assert equals which is of the form Boolean expected and Boolean actual so this basically checks if the two Primitives or objects are equal okay next we have void assert true which takes in the condition Boolean true or false so this basically checks whether the condition is true next we have assert false which also takes in the Boolean condition and it checks whether the condition is false next we have assert not null which checks whether an object isn’t null void assert null which checks whether an object is null okay to note that not null is used to check whether an object isn’t null to check whether an object is null you use assert null okay which takes in the object next up we have assert same which Compares two of the references so this assert same method tests if two object references point to the same object assert not same checks whether the two object references do not point to the same object or not last we have assert array equal so this is similar to assert equals just that you’ll check two arrays instead of two object okay so this assert array equals method will test whether two arrays are equal to each other or not let’s take a quick look at the example for this so I’ll create another class under this package assert click on finish yeah under this I’m going to be writing the corresponding commands the first thing I’ll do is create an annotation of test and add public void test assertion yeah under which I’m going to test the data so the first one will be of the form string s Str equals so I’m going to create a new string new string and give this a text I’m going to be giving edu Raa or edu yeah this is fine going to provide another string and name it St r one so that you can differentiate the two strings I’m going to create another string give this as the same edu now once you’ve provided the input for the first two strings let’s consider the next strings so the next string which I would like to write would be so I’m going to instantiate the string command to null okay and then I’m going to create another string and instantiate it to the value that is specified here that is edu okay so two of them have the same values but one string would be considered as null I’m going to create another string sdr4 even this will be at you and the next thing I’ll do is provide two integer numbers in order to create an array so I’m going to be writing int value is equal to five I’m going to be giving it as five next I’ll give another value value one or two going to be naming it of one six after you input the values which is of the form integer I’m going to be creating an array of the form string so string array and I’m going to create an object of this that is expected array is equal to in the FL braces I’m going to be writing 1 comma 2 comma 3 okay so this is the expected array which I want to compare it with and the result array would be the same okay so I’m just going to copy this thing and paste it over here okay so that the expected array and the result array are the same now let’s check if the two objects are equal so I’m going to be using the assert method in this case so I’m going to write assert equals string and string one yeah and it throws up an error it says create a method let me just fix this first import the test ngng libraries yeah and assert equals it’ll State and static import gunit methods done and once you’ve done checking if the two objects are equal let’s check for another another condition for the true condition so check for true and I’m going to be writing assert true and I’m going to be providing value less than value one so this basically checks whether the condition is true or not so I’m going to import the static true and after you’ve done checking for the true condition let’s try to check the false condition as well check for false that is assert false and I’m going to provide the same condition that is value less than value one I’ll import this as well now once you’re done checking if the condition is true or false and also if it is equal or not let’s check for the null condition check for null so assert not null will have the first string now let’s check if it is null so assert null going to be taking the second string which I’ve mentioned here as null you can see that I’ve declared this as null so I’m going to be considering writing string two and import this as well so once you’ve done this let’s also check if two object references point to the same object Okay so we’ve already come across this assert statement that is assert same so I’m going to write a comment here let is check if the reference is to the same object okay and I’m going to write assert same and I’m going to be comparing string three and string 4 I’m going to import the assert same packages done so now let’s try to run this program so it says the assertion took place in20 seconds okay now let’s try writing the main function in order to run this so I’m going to create a new class and call it main class include the public static void mean and finish I’m going to be writing the code here so now I’ve called this class as main class and I’m going to be writing result create an object of the same is equal to junit core dot class that is the name of the class that we want to search for that is run classes so the name of the class that we had before was assert assert class so assert do class done so we need to import the result packages do note that you import junit Runner packages and after this I’m going to be considering the same for Loop here for the condition failure create an object of it that is failure is the result of get failures which returns it in the form of a list I’m going to be importing the failure function going to create this and print failure dot two string so this helps in printing the failed string or I’m going to be printing the result dot was successful so this will print the test case which was successfully executed okay save this and run this program so the output of this is the test assertion do assert is null okay now let’s take a look at our assert program here when we’ve provided this particular command it says assert null string to so this condition is true so it’ll be printing null now let’s run this program it says test assertions cod. urea do assert is null and the result is false so it is printing that the test case has failed so or else it would have printed that the test result was successful and it would have printed that the result is true now let’s take a look at our assert program so we’ve provided the first and the second string to be equal so first thing it checks for equal command is string and string one so this basically checks between the two strings that is string and string one if they are equal or not they’re equal you can see that it is equal and it also checks for assert true function where we’ve provided two values and checks if the condition is true so the value is five five is less than six so it is true for false value is less than value one so this does not print false because value is less than value one that is five is less than six so this is true okay so this will not print false now talking about not null string we’ provided the value of the string which has the string Ed this is not null so this will return true talking about assert null it has a value of string two which we’ve provided to be null so even this will return true at the same time we’re going to be comparing the same function that has assert same between the two strings three and four wherein they possess the same string which is edu now talking about the main class you can see that there is sprinting false okay so that means your test case has failed so let’s analyze how you can solve this problem let’s go to our assert function and take off all these static equals method okay the import methods that we’ve had which is of the form static let’s take all of them out and import the package which says junit assert this is actually way too simple because you have all the assert statement commands inside this so I’m going to just import this done and then add a few commands here so I’ll be writing another command to check if it is not same or not so assert not same string one that is string comma string one so this basically checks if string and string one are same or not next we have to check the array so assert array equals so we were basically checking for the arrays here so the name we provided here was expected array and the result array so the expected array would be expected array and the result array okay so this is done so I’m just going to save this and run my main class now you’ll see if the result is true or false it says false again now it is printing false again this is because that a condition that I specified here for false is not true true okay so this says value is less than value one which means it is true so we have to provide a condition which says it is not true so it is greater than value one that is 5 greater than six will throw up an error which says false now let’s save it and run the main function it will print true so this is how assert statements in junit works now let’s move ahead and understand what are the exceptions that occur during the execution of of a program junit provides an option of tracing the exceptions that occur in the code you can test whether the code throws the desired exception or not and the expected parameter is used along with the test annotation okay so while testing for an exception you need to ensure that the exception class that you’re providing in that optional parameter of the test annotation is the same this is because you are expecting an exception from the method that you’re testing otherwise the junit test would fail okay for example at test expected illegal argument exception. class so this is an exception so by using the expected parameter you can specify the exception name that your test May through so you will get this illegal argument exception which will be thrown by the test case if a developer tries to use an argument which is not permitted okay so this is one of the notable exceptions that occur during the execution of a process in junit now let’s take a look at the parameterized test in junit junit 4 has introduced a new feature called parameterized test this test allows the developer to run the same test over and over again using different values so you have a few steps in order to create the parameterized steps let’s take a look at how it is done so you need to First annotate the test with run withd this mainly specifies that it is a parameterized test then create a public static method annotated with parameters that returns a collection of objects in the form of an array as test data set moving ahead create a public Constructor that takes in what is equivalent to one row of the test data create an instance variable for each and every column of test data and also create your test cases using the instance variable as the source of the test data okay so that’s it about parameterized test now let’s take a look at the final topic that is junit versus test NG test NG and junit both are well-known terminologies when you talk about software testing Frameworks testng is almost similar to junit except for certain functionalities so I’ll be comparing junit and test NG based on their features so the major features I’ll be considering to compare junit and test NG are the suit test annotation support ignore test execution before all the test cases in a suit dependency test and parameterized tests so let’s compare them based on the suit test J unit and test in G both consists of the suit test that is The annotation suit okay and it also possesses The annotation support through both junit and test NG ignore test in the case of junit is specified using the command at ignore whereas in test NG you use a command called at test enable false okay so in testing you’ll specify if the enable is true or false okay now talking about the execution before and after all the test cases in the suit junit does not execute before and after the suit whereas test NG provides commands like before suit after suit before test and after test talking about the dependency test junit does not support dependency test whereas using test ngng you can perform dependency test now talking about the parameterized test parameterized test in junit can be done using The annotation run withd and parameter whereas in test ngng the parameterized tests can be carried out using The annotation data provider okay so this is everything you need to know about junit if you are a beginner automation is everything everywhere Amazon is testing delivery drones that pick up Warehouse or dis sorted by robots Google is testing self-driving cars starbu is testing cash of free stores dedicated to mobile ordering and payment and Facebook is testing a brain computer interface that may one day translate your thoughts into digital text fascinating right but why are these companies so hyped hyped up about automating the software testing process proc that’s because test automation offers lot of benefits manual testing can be mundane error prone timec consuming and even boring but test automation enables testers to focus more on challenging and rewarding work and in turn increases the accuracy of the results test automation saves lot of time and effort it even offers better test coverage and increased the test coverage leads to testing more features and a higher quality of application so it provides cross cross browser and cross device testing as well test automation makes it possible to execute test cases during off peak cars and to distribute them in parallel across multiple physical or virtual servers it also reduces business expenses I do agree that initial ADV investment may be higher but r return of investment or Roi as we refer to it is also high in longer run also test automation reduces manual intervention and since you’re using automation tools less number of people will be required for a project and they can be utiliz for other projects so Guys these are some advantages of using test automation automation testing is absolutely essential today to successfully deliver large scale products that need execu of repetitive and complex test cases that sound good but it is impossible to automate all testing so it is important to determine which test cases should be automated first when it comes to figuring out where to start automating there are some top candidates that will help you recognize the maximum return on investment so these are some test cases guys firstly repetitive task of primary candidates not only are those TSS boring to you but they are often the ones where you actually make mistakes because when you do a toss repeatedly we as humans often make mistakes automate them and do something more fun capturing and sharing results is a critical part to successful test strategy so rather than manually exporting your data crunching numbers and making complex graphs invest in a tool or automation strategy that will do this task for you you can can also automate test that require multiple data sets and instead of waiting for onc screen response automate the task that way you do not have to waste time staring at the screen and waiting for a response another case where you can automate is lad testing well think about having to see if your application can handle uh a load of 10,000 users automate this testing so that you do not have to worry about manually spinning up 10,000 users your application all at the same time you can also automate test cases that run on several different Hardware or software platforms and configurations because testing software with multiple configurations on different platforms manually takes lot of time and effort on your part so Guys these are some cases where you can actually apply test automation now once the decision has been made to use test automation the next issue is how are we actually going to do this what’s the plan one of the most common mistakes with automation testing is going for immediate benefits and forgetting about the bigger picture many teams abandon their automation efforts after a Sprint or two and go back to manual testing now why do you think that happens most of the time most of these companies use automation just because others are using it they’re not sure of the right way to implement the test automation they do not have the right automated testing methods in place they do not know when to implement test Automation and when not to they’re not aware of the right set of tools that meet their requirements so what I’m trying to say here is that success in test automation requires careful planning and design work to achieve high quality software within a short period of time is one of the objectives of every software company and I’m sure you guys know that to achieve that they either can save few days of planning and instant spend weeks testing or programming or they can spend a little time developing a proper test automation strategy to keep PA to keep Pace with the market so to build a cost effective automation testing strategy with a result oriented approach is always a key to success in automation tesed well you can build a good test automation strategy once you understand automation test life cycle so let’s explore that automation test life cycle has following phases the first one is automation feasibility analysis so basically in this step you check the feasibility of automation as in you short list the test cases which you want to automate you select the right tool that fits your requirement and all that next step is test TR strategy in test strategy you select the test automation framework while you have multiple options to choose from here like you have linear test automation framework you have data driven framework you have keyword driven framework modular framework and hybrid as well if you guys want to know more about these test automation Frameworks you can actually refer to the previous live session in the playlist listed below in the description well let’s moving on in this pH you can create a test place test plan and test automation suit in your test management tool so the next step is environment setup in this phase you set up the testing environment and acquire the required hardware and software tools to execute the automated test cases that’s pretty simple and the next step is script development in this phase you start creating the automation test scripts according to your requirements but make sure that your scripts are usable well structured and well documented this will help you in long term if you’re automated obviously the next step would be case execution in this phase you execute your test cases and finally we have result generation and Analysis this is the last phase of test automation life cycle in this phase you analyze the output of test cases and share the reports with stakeholders so now now that we are aware of the automation test life test life cycle let’s have a look at the building block of test automation strategy it consists of eight items for you to consider as you head out on your automation journey and those would be scope of automation test automation approach automation test environment risk analysis execution plan review and failure analysis automation maturity model so let’s explore each of them a little deeper oh guys before you start I just wanted to say that these blocks are not listed in any particular order okay let’s get started now so the first thing is scope of automation defining a project scope for an automation perspective includes outlining timelines milestones for each Sprint in the pro project so the two most important things that you do here in the scope of automation is shortly ing the test cases which you want to automate and selecting the right test automation tool guys you can’t automate everything so you should be smart about your priorities if you’re focusing on high return of investment one of the best model that can help you with that task is Mike cohan’s test automation period pyramid using this you can decide which test cases to automate the pyramid shows that in general you should try to push test down to the lowest level possible unit test or UI test sorry unit test are the quick to write they have the highest return return of investment and should ideally form the backbone of your automation testing Strate strategy developers can write unit test to check the smallest pieces of their code and find bucks on their own after unit test we have regression test it should be our next priority as the WR investment after each successful build next you need to check functionality and other quality characteristics such as accessibility and security across large piece of application with functional testing so what I mean is that after unit testing and regression testing it’s functional testing then comes user interface test although pretty common automating at graphical user interface level is highly impractical that’s because user interace requirements keep changing which makes automation more complex and user interface tests are expensive they require heavy maintenance and the written High number of false positive or you can say negative cases so these are how you short list the test cases so no matter how skilled you are in automation how many selenium commands you know or what testing Frameworks you use some simply cannot be automated like user interface test they have everchanging requirements and they’re difficult to automate so automation there is not suggested similarly when you have exhaustive document even then automation is not suggested and suppose if you have test that you’re going to execute only once why do you need automation when you can do that using manual testing in short amount of time and without much effort and you also have tests which are based on visual perception you have anti- automation features like capture I’m sure you’ve come across it and you also have ad hoc and explanatory testing where you can Chuck system based on your based on your knowledge of its internal workings and experience so manual touch is definitely needed there so automation is not possible in ad hog and exploratory testing so this is how you short list cases that you want to automate so once you’ve decided on which test cases to automate and which not next step is to collect the appropriate testing tools that suit requirement selecting the right tool is the key factor that guarantees the success of your test automation strategy you need to select one out of several test automation tools that are available in the market well that can be a difficult task because there are lot of and tons of tons of automation tools in the market so in order to select the tool that fits best for your project first you need to understand your project requirements thoroughly and then you need to identify the testing scenarios that you want to automate based on these two you need to short list your tools that support your Project’s requirement then you need to identify your budget for the automation tool once you have once you have an idea of the budget you can further short list the tools based on your budget after that you can short list tools based on certain parameters like licensing cost of tool maintenance cost training and support tool extens ibility tool performance and stability so you can follow these three simple tests before you actually select a proper automation tool there are plenty of cost effective tools available in the market for automating different kind of applications like Windows application web application websites mobile web applications native mobile applications and many more and some of the popular automation tools that you can use to automate any kind of application are selenium then you have Microsoft coded UI framework then you have HP qtp and many others so that’s the first block moving on to next one it is test automation approach when choosing a test automation approach guys there are three areas which you have to consider process technology and rules well we already discussed about process and technology in the previous block which is how to actually short your short list your test cases and how to select a tool and all that but anyway let’s go through it again so first process test automation roll out must be a welldefined and structured process so make sure to cover the following in your plan like when during the Sprint should automate test cases to be de developed as in when you actually should develop your automated test cases during what time what are the features which are ready for automated testing which features should be tested manually who who take cares of the maintenance how do you analyze results so all these questions you need to include in your plan so after process its technology identify the applications which you have to automate figure out which technology they’re based on and whether or not your test automation platform supports those Technologies then you have rules here you define the roles for Automation in the test automation team as in your test automation team make sure that all members know who is responsible for which part of automation project guys all members of a test team including domain specialist technical testers and test management they play very important role in making test automation actually work for example you have automation lead or engineer he’s responsible for coordinating and managing all activities regarding Automation in the process project and it want and when it comes to test case you have test case designer one who designs the test case and reviewer once the test case designer designs them to have a second look we have reviewer so this way you have different rules so remember remember that success with automation is dependent on a team’s Collective knowledge adopt a test automation platform that all testers can work with so that automation becomes a natural part of daily work of all your team members other thing that you should that you can focus here are reusability of automation scripts your test automation strategy must and should include the reusability of test scripts this will help you reduce scripting development efforts there are many general functionalities which are common in applications you come across them especially if you’re a company who is taking projects which is related to a single domain for example let’s say if your company developed web applications you can create a process to reuse testing scripts for login and validation test cases so instead of writing same test cases again and again you can store them in a file and reuse them again then you should make sure to include manual testing automation testing isn’t a replacement for manual testing it’s just an extension of manual testing so no matter how great automated tests are you cannot automate everything we even discuss some cases where you can actually not automate right so manual test play very important role in software development and they come in handy whenever you cannot automate the process so don’t try to automate everything and the next point is we have something called Release Control in any release pipeline regardless of its complexity and maturity there’s a point where a team should decide whether to release a build or not part of this decision making can be automated while other parts still require human touch in any case make sure that the results from the test automation are part of the release decision so final decision regarding release will often be based on a combination of algorithm results and manual inspection moving on to next one we have something called risk analysis risk analysis as you guys know is an essential part of project planning in general but it is important to consider this specifically in automation as well so you can create a risk plan with parameters like description which describes what’s the risk all about then you have risk level or sever severity what will happen if the risk becomes reality how hard will it hit the project then you have something called probability what is the likeliness that it can occur then you have mitigation what can be done to minimize the risk and then you have cost estimate in the end which what is the cost of mitig ating the risk what is the cost of not doing it well these are just basic parameters you can consider several more let’s consider a simple example as you can see the first risk it says we do not have enough trained resources to create test Automation and what will that lead to this will lead to lower test coverage as more manual regression testing must be performed before release this in turn might delay the release so what will happen if the TK becomes reality how hard will it hit the project very high and what’s the probability that this risk might turn into reality well it’s medium and what do you do if it has actually occur you can contract Partners or you can contract training providers alternatively you can educate the workers in your office so that they can handle more load and what about the estimate cost it says TBD it means time based decision similarly next risk it says test servers will not be able to keep up with the load from the automated regression test which will lead to high number of false failures in the reporting and what’s the risk level medium and the probability is medium and what you could do you can contact operations and make sure that the servers are configured to cope with expected load now what about the cost it’s about $10,000 so this way you can create a risk document but one more important thing is that risk plan is a dynamic document as in it keeps changing it’s not fixed so risk will be added and removed to the list as the project evolves we are oh so next one in the test is test automation environment setting up your test environment is another building blog of test automation strategy guys you can establish your automation testing environment by following certain steps first of all first by identifying the requirements of test environment then by acquiring the required tools with their licenses and you can also consider the data which is part of test cases like where do you have to store the data which belongs to test case should the data be masked or not masked do we need to have backup for the data what sorry guys what happens to the data after testing what should be done with it so you can ask these questions you can consider the test data requirements as well test automation is a deterministic game known inputs will produce predictable outputs this means that stable and predictable test environment is a prerequisite for successful test automation after that we have execution and management of test cases your test automation strategy should also Define the process of execution and management of test cases an execution plan actually outlines two things which is the day-to-day task that you do and the procedures which are related to automation there are certain practices that you can follow when you’re writing test scripts and when you’re executing them for example first of all pick the test cases which you want to automate like I told you in the first step after that before you add any automated test cases to your regression suit run and verify them multiple times to ensure that the run as expected next you need to define a set of best practices that make test cases resistance to changes in system which is being automated so your test cases should be written in such a way that even when the requirements of your system which you’re automation automating is changing they shouldn’t be affected next you can actually run your test in parallel this means that use pipeline orchestrator like Jenkins TFS bamboo many other things or a scheduling tool to execute test cases in parallel this way feedback from the test is sent to developers at very fast rate so guys you can never test too much and the combination of test automation reliable test cases and scheduled or controlled execution will always give you a positive effect at the end of your automation one more thing after executing a test case assign a status either pass or fail with it in automated testing this status is assigned to the test cases automatically according to your success criteria if it’s a fail you have to perform failure analysis which is actually our next step failure analysis and Reporting results so having a plan for how to actually analyze the fail test cases and how to resolve them is a critical part of test automation strategy often time taken to notify the failure analyze it and resolve it is much longer than you actually anticipate so having a well-defined process for this can save a lot of time and frustration in development team so what you can do is you can outline how different errors should be handled and by whom for example let’s say you have some issues related to environment the test environment you can rise a ticket with devop team and suppose if you have a bug with automation scripts you can create a task for testing team similarly if you have a bug in the application which on which you’re performing automation or you’re testing you can actually flag a bug for development team this way you can outline different errors who should handle and how they they should so once your error handling is done next thing all the things that you’ve done till now including the methods that you adopted to implement automation test results pros and cons of the test automation strategy that you have used here should be captured and documented for future reference then you need to continuously improve your test automation strategy by learning from those lessons so the last thing is to revamp your test automation strategy you can’t directly develop a perfect test automation strategy very first time you make it perfect by improving it every time you find a fault with it automation maturity model is a way you can use to revamp automation test strategy automation maturity model is divided into multiple phases for example you have something called initial phase so guys basically before explaining the phases all you do in this revamp is you actually go through everything that you did in your previous strategy and find the errors and replace them as in resolve them so where were we initial phase here prerequisites of automation should be completed then you have something called manage phase automation is achieved without any Central infrastructure in this phase as in there’s no dependency then you have defined phase Central automated process across the application life cycle should be built here then you have something called measured phase your collected and analyzed metrics of automated process should be compared against your business goals here and finally you have optimized pH here things like self-service automation or learning about automation by looking at the analysis results which we call self- learning using analytics and self remediation should be addressed here or actually addressed in this phas so using automation maturity model you can revamp your test automation strategy until you find it fit for your organization so guys this way you find a strategy that’s best for you it’s very much necessary to come up with an intelligent test automation strategy to fully enjoy the benefits of automation testing and achieve the desired level of success a successful test automation strategy can lead to big things it’s true a successful testing strategy and framework can positively impact your business and organization in number of ways first of all it provides you more comprehensive testing the most complex test automation task are completed easily when you have a strategy and your products become more robust as a result it also promotes the ReUse of critical components by reusing the critical components it increases employee productivity since the time they would have spent on manual test is saved by the ReUse of components so what I’m trying to say is instead of them manually doing each thing again and again they can use the reusability scripts they can invest their time into other critical areas of their work and business it also reduces maintenance cost you can change and update your testing methodologies more easily because you have taken time to plan and Design Your solution your employees adopt these changes quickly and very easily and they have very less maintenance work to do do when it comes to automated test solution it also creates the testing standard for your organization your strategy will become the standard that’s used across your organization because it’s complete and robust and finally if your strategy is based on result oriented approach it will give quick confidence about your product to stakeholders as well so Guys these are some key benefits of developing a test automation strategy I hope the above strategies help you as you head out on your automation Journey let’s see how to build the data driven framework using selenium so now you might be wondering why selenium right demand for web development and testing is literally huge as of January 2019 there were over 1.3 billion websites on internet serving and 3.8 plus billion internet uses worldwide so as a result the tooling Market is now more competitive than ever but so far no one has out shown the selenium in terms of popularity and adoption so when it comes to selenium the biggest sweet spot of selenium is that it’s open source in other words it’s completely free to download and use it provides an API called Web driver which enables testers to craft their test in many programming languages which includes Java cop python uh Ruby and many other languages besides web browsers you can also automate mobile devices like Android and iOS VI APM as well so that’s why I’ve chosen selenium in this demo moving forward let’s take a look at General steps that you need to follow when you create an automation framework using selenium so first of all you need to choose a programming language in selenium world you have wide range of programming languages that you can choose from like I said earlier you have Java C Ruby Python and many others in my opinion Java is a choice because it’s widely adopted and it’s crossplatform so in this demo we’ll be using Java no doubt so once you’re done choosing your programming language next you have to choose a test framework now you might be wondering why do you need a test framework right a test framework or a unit test framework helps you to Mark a class or a method as part of testing using annotations you can execute tests in parallel you can generate logs you can perform the session verification and all that so once you’re done choosing your program language and selecting a unit test framework you need to design the framework as architecture so make sure you come up with the sustainable maintainable and scalable architecture so now based on your architecture you start building your test modules so next choose a reporting mechanism reading the test results will be difficult if you do not have a good reporting mechanism let’s say when you receive a test failure how do you invest the fail test quickly to determine whether it’s what kind of error it is if it is aut bug or it’s an intentional functional change or the automation mistake or whatever it is how do you figure out for that you can use a reporting mechanism well the framework unit test framework like test NG does offer you a reporting mechanism but the results are not in human readable format as and you want understand it for that you can use some third party error reporting mechanism and last step is if you need if you can if you want to you can integrate your framework with other tools as well for example you have test Trail it’s a test case management system that proves useful when your project has large number of tests apart from that you also have J integration and many others so yeah these are the basic steps that you follow when you’re creating a framework so guys I forgot to tell you a point it’s that when you are choosing a unit test framework in this demo we’ll be using a framework called test NG it’s similar to gunit but it’s much more powerful than that especially in terms of testing integrated classes it eliminates most of the limitations of folder framework and gives testers the ab to write more flexible and Powerful test so let’s quickly go through the steps again first you need to choose a programming language of your choice then you need to choose a unit test framework after that you design your framework architecture based on that you start executing your scripts and creating them after that you need to choose a reporting mechanism so that you will find out the errors and the reason for those errors much easy Le and lastly if you want you can integrate your framework with other tools as well so guys

    let’s let’s get started with our demo there for that I need to open my Eclipse before that I want you to ex install some extra jar files for example let’s say since we’re using selenium here you’ll have to install selenium jar files and there’s something called Apache POI well I’ll let you know what is that for later so go ahead and download selenium jar files and Apache POI let’s say selenium download sorry about the spelling mistake guyses you can go for downloads here and you can download the version here and you can also download this one as in the language for which you want to use selenium so yeah after that you need to install something else as well Apache poi here there’s link which says download release artifacts under that you have the latest table release click on that it’ll take you for the binary distribution and Source distribution go ahead and download the zip file and if you’re using Mac and all you can download the TD file as well so once you’ve downloaded all the files unzip them extract them and store all the jar files in separate folder well I have stored them here in my C folder I have a folder called selenium and I have all my executable jar files here so we ready to start a demo so the first step you need to do is download selenium jar files as well as Apache POI don’t worry about Apache POI for now okay then let me open my Eclipse it’s on my desktop here it is sorry about the delay guys give me a minute it should load up launch so sorry about the delay guys anyway here we are on our Eclipse well on my Eclipse so I have a project which is named as framework demo so before we actually get in like I said we have installed our selenium jar files as well as a Pache POI let me tell you what a Pache POI is for so guys basically a just a web driver doesn’t directly support reading of excile files or any kind of external data files for that you need to use some sort of third party device or a program called Apache POI so we can use Apache POI for Reading Writing any Microsoft document into your program here so we’ve already downloaded the jar files I’ve stored them in a separate file called selenium under my C folder all you have to do is go for your source file click right click on it and there’s an option called build path here well I’ve already added the libraries to my project for you guys to do you can go ahead for this build path and you have an option called configure build path click on that so once the dialog Bo box opens you have something called libraries here go for that and click on ADD external jss and go ahead and add the all the J files which you’ve just downloaded and stored it in the folder well I have done it already so I’m not doing it again and click on open and once they’re add it it’s cool you guys are ready to go but before that you need to install test NG plugin as well it’s available in the eclipse Marketplace all you have to do is go for help here and you have Eclipse Marketplace okay it’s taking time to load well I’ve already installed so let me not waste time here all you have to do is go for Eclipse Market play once it’s loaded in the search tab you can search for test NG and as soon as it’s done it’ll show you the plug-in click on that and click on install it should be done once you’ve done that all you have to do is go for Windows here and show View and you can go for others okay Marketplace is open since it’s open let me just show you show you guys okay sorry about that guys here we go and under Java you should have testng installed so if you have installed plugin properly you will see test NG here that’s all about it cancel okay all you have to do is type test NG and click on okay so anyway guys all you have to do is find that in the search tab you’ll find it and click on install button I’m not going to waste time here okay here we are okay here it is test NG for Eclipse you can just click on install it’s already says install because I already installed it okay back to a program I’ve set up everything here because it takes time to write the code right so I didn’t I do not want you guys to wait for this so I’ve already written I’ll explain you the program don’t worry about it and under the source I have a package called jka and under that I have two classes which is my main function and another class called read Excel file so basically main function what it does is it checks the login functionality of a flight booking application so that’s my main testing function and we have another file called read Excel file and I’ve written this file so that it can read the data from the external source and as for the external source that I am using in this demo it’s an Excel sheet I have Excel sheet called login credentials I have that stored in my selenium folder it should be in selenium folder let me open the file here it goes I have a file called credentials and I have two fields in that one is username and one is password as you can see I have username and password and four entries so getting back to Eclipse two functions one is my main function which chunks the functionality of a flight booking application another one which reads the data from an external file so we’re good to go let’s start exploring the functions here let’s start with the main function first of all I’ve imported a lot of packages here as in different libraries here I have Chrome driver I have annotations which is after method data provider and test so guys first of all annotations are very easy to understand annotations in testng are basically lines of code that can control how the method below them will be executed so to use those annotations you need to import the libraries attached to them so I have used three kind of annotations here one is after method data provider and test so yeah the library that’s related to annotations is this one apart from that I also have something called assert as as we progress through we’ll get to know what that is and then there’s Chrome driver so let’s get started this is my main class the main function the name of my class is main function and here I have a chrome driver object I’ve created an object called driver of type chope driver as you can see I’ve divided as and I’ve created it globally because I do not want it to include in the annotations because all the functions which are written under this annotations will apply to that Chrome driver as well so I do not want that so I’ve written it globally outside my annotations anyway then I have an annotation which says at test and data provider is the name of the method is equal to test data let’s move on to next part of the code which is demo project so under this annotation like I said earlier an annotation is line of code that can control how the method below it work works so the My Method here is demo project so basically to this method I’m providing a username password and login to keep checking and how am I doing that I’m using a command called find element so driver do find element by name username and the sand Keys is the username where it accepts the input then you have same for the password and login as well for login we do not accept anything because it’s just a click button right so I have a function which says click apart from that I’m also giving a link to the website in which I have to check the login functionality that’s the flight booking website if you want I can open it and show it to you guys let me copy it here we go to the browser and paste so while it’s loading let’s just get back to our Eclipse as in the program apart from giving the link and find element we I also have used something called set property here as in I’m telling the program to automatically open the web browser for that I am using a chrome driver here so that’s all about it now here under annotation I have something called Data provider is equal to test data what I actually mean by that is here I’m giving username password and login from where does is all this data coming from from I’m saying extract the data from the method data provider so obviously I should have another method which is called Data provider right here we go I have another annotation which says data provider and the name is test data here under this annotation I have an object called config which is of type read Excel file read Excel file is nothing but another class or another file which I have created to read external data so like going back to that function this is where Apache POI comes into picture like I said web driver directly cannot read from the external data for that I’ll be using an Apache POI libraries one is workbook and another one is sheet so in this read Excel file class I have a method well it’s not a method it’s a Constructor because it St starts with the same name as that of method right so yeah it’s a Constructor and the Constructor I’m giving a link to my Excel part for this for you guys to understand this let’s just go back so here we go we calling the config method as in the config object of type read Excel file dot Excel file right so here I’m giving the link as in the path where I’ve stored my credentials or the external data file so whenever you call this object the control goes here as an object of type read Excel file is created so Excel path is the input which is taken here as you can see this is the input which I am calling the object with so this will be stored in the Excel path and a new sheet will be created as in the new sheet will be accessed so getting back I have some other functions here sort of farther functions before that let’s go back here as you can see I’ve have placed my entire code in a try catch exception block well if and everything works well it shouldn’t throw an exception well if it does then it’s caught here and the error is handed so these are just this is just the basic before we actually start with the main function in this read Excel file so the main function here is one is to get the string data as in the get data and the one is to get the row count now you might be wondering why do you need row count here we have automated the test and we want the application login functionality to be checked for different values for multiple values right so we need for how many login and the details or the username password pair do we want the application to be checked the number of times you want to check your application for that we need a function called get basically what it is doing is that it’s taking the index of a sheet here as an input for example if I take you back to the sheet it says here sheet one right so one is the index of the sheet so that’s taking the index of that sheet it goes to that sheet and there it’s calling WB which we just defined in the upper part web page this WB already knows the path of where the sheet is so using that using the get sheet at it’ll receive the sheet and it will get the last last rows number suppose for example in this sheet I have four rows so the last number should be three because if you remember the index starts from zero right so the value of row becomes three but again three is not right value because there are four rows for us to understand so I’m adding one more to the row so it becomes four now the value of row becomes four basically what I’m Shing is go go to the sheet and count the number of values or the number of username and password pays that are so we have counted and the row value is now four now here other method is get data so basically what we’re doing in this get data is going back to our main function here I have a demo project method which is taking data from this data provider and that data provider is calling for a get function as you can see here it’s calling the get data function here so I’m creat creating an object called credentials which has countable number of rows but two columns as you can see we have two columns which is log in username and password but the number of rows actually depends on how much data there is as for here we have four rows so I hope now we understand why we actually counted the number of rows here right so here we called the rows and we have called the row count method which will be four so this will be four and two so I’ve created an object of type array here which we have two values so it’s two dimensional array so now to get the data I’m calling get data method and I’m passing three parameters as you can see the first one is going back to the method the first is a sheet number then you have the row and the column so as soon as this method gets the parameter which is sheet number row and column first of all using sheet number it goes to that particular sheet using WB and once it is gone to that sheet it goes to that particular row particular column and gets the value and stores that value in the data and I’m returning this data back to the method which called this method which will be in my main function so the value is which is extracted by this method or which is written by this method is stored in this credential similarly here again so this way we fetching data and once the data is stored I’m saying written credentials which will go back to this demo project because in annotations I have said extract data from this method which is data provider so from data provider all the data which we just extracted will go here and will be assigned in the username password once data is extracted it’ll be clicked on login so I hope you’ve understood right I hope it’s not confusing let me just summarize quickly so if you have not understood you will understand it at least this time so basically I have a chrome driver which is defined outside because I do not want it to be included in the annotations which have different different other functions so the first method I have is demo project here I’m defining a set property as in I’m saying open the browser by default here and I’m giving the link as to which application needs to be checked and I am giving two inputs which is username and password and click on login I also have a method which checks if the login was successful or not if it’s uh how am I doing that I’m using assert function here it checks if the title is fly in the flight merury doors if after logging in if it’s the title if it finds it means that a login was successful otherwise it’ll just print you invalid credentials so I have another annotation called after method this is basically executed after all the methods in this program are executed so basically in the end it quits or it ends the program and then I have a method called Data provider as you can see in the annotations I have a data provider do how do you how does the data goes in to this demo project from this data provider method in data provider method I have an object config which is of type read Excel file which is another file of mine where I’ve created a class called read Excel file under that I have a function which is placed in between try and catch exception where it takes to the Excel path now getting back to main function we need to extract the input and put it in the username password here for that I’m counting number of rows because I have to repeat the testing of application for different inputs for that I need to know how many inputs are actually there so for that I’ve called a get row count here that method basically what it does it takes the sheet index it goes to that particular sheet and it gets the last rows number once it does that I’m adding one more because in human language the index doesn’t start from zero it starts from one after that I’m rning the value which literally goes back here in rows so the row value in this demo will be four and four will be stored here now based on that I’m creating another object of type array two dimensional array and then I’m calling get data method to fetch the details one for the password and one for the username how am I doing that I’m calling a get data method where I’m passing parameters sheet number row and the column here we go once the function is called it goes to that particular sheet number by using the path which is stored in WB after that it goes to that particular row particular column and stores the value and returns back the value which will be stored here similarly here so this way login ID or the username and the password are fetched then I’m returning this credential back to My Demo project using username and password your strings which will be stored in this username and password and the application will be checked for that particular value so guys I hope you’ve understood the functionality of the program right now let’s just run and check if it’s working so I’m going to click on this run function here run Button as you can see it has started running so basically as you can see I have four values in my Excel Shield right so it will check if the application is logging in properly or not for all the four values so it has checked for the first value it says login successful because I created an account for that credentials and it’s checking for the next which is company and the password is also company it’s going to take a while so guys it the login was successful the second value as well and it’s checking for the third value which is admin it says it didn’t work so it’s going for the next value here we go again it’s entering the username and the password and again the login was unsuccessful because the two users in my Excel sheet are not registered users so it it’s days the test was run four times and two times it filed because only two were the actual registered users and it skipped zero values so that’s how you do it guys so now you know how to actually create a data driven framework using selenium go ahead and explore for other functionalities try to create hybrid framework which is combination of keyword or any other mixture of any other Frameworks I have categorized interview questions into basic intermediate and advanced level so let’s begin with the basic questions so here goes our first question what do you mean by term automation testing well we’ve already discussed this anyway automation focuses on replacing manual human activity with systems or devices that enhance the efficiency of a work the process of using special software tools or some sort of scripts to per perform testing tasks such as entering data or it could be executing the test steps or comparing the results with the expected results is known as automation testing so basically in automation testing you’re trying to replace the human who is performing the testing moving on to our next question what are different types of automation testing guys automation testing is basically divided into four to five categories but the most popular ones are unit test graphical user interface test and functional test so unit test these are usually done at the development phase and they help reduce the buck in the initial stage of development of software itself then we have graphical user interface test these tests are usually done at testing level and these tests are mainly written to focus if the test interface or the interface of an application or the software that you’re testing on is working properly under certain conditions or not then we have functional test just like graphical us user interface test these are also done at testing level this simulate the functional scenarios to test if the application works properly or not for the provided input at different conditions so basically here we are checking the functionality of an application or software or any item that you’re performing testing on apart from these three we also have something called Web Service testing web service testing is testing of web services and its protocols like s soap protocol dress protocol and all that so automation testing is divided into about four to five categories but the most important ones are unit test graphical user interface test and functional test so guys now moving on to our third question what is an automated test script an automated test script is basically a short program which is actually written in some sort of programming language to perform a set of instructions on the software or the application that you’re testing on so when you run this program it gives the test results at has pass or fail depending on if the application is working as per your expectations or not so basically whatever test you want to perform on the application of the software you’re writing it as a program or in form of program in the test script and that’s what we call automated test script next question what are good coding practices that you should follow while writing test cases for automation so guys before you actually go ahead and write code for your testing you need to follow certain coding standards for examp example you need to use commments at regular Paces you need to maintain separate file if you have functions that you want to reuse and there are certain coding conventions that you have to follow like colon and all that and most importantly you should regularly run your scripts to make sure that you do not make any error or there no box in the code that you’ve written so these are certain coding practices that you need to follow when you’re writing code for your automation this way you’ll be sure that if you get an error it’s not because of your code it’ll be because of the bugs which are in the application next question guys this is most frequently Asked question every interview every test automation interview this is a must or definite question guys which is what is a test automation framework a test automation framework is a set of guidelines used to produce beneficial results of automation testing activity so basically in simple terms it’s set of guidelines or rules that every test of follows universally the framework brings together function libraries test data sources object details and other usable modules functions and methods so once you’ve adopted any kind of test framework you can even extend the framework for example the guidelines which are set in any framework would be rules for writing test cases coding guidelines for creating test handlers or it could be input test data templates or object repository management log configuration test result and Reporting usage all of these are the guidelines which are wristed in any framework so make sure you get to know more about automation framework before you attend any testing interview next question why use automated Frameworks what are the benefits that they offer first of all guys they established a universal standard for testers to achieve the specific goals of automated tests they maintain consistency of testing so basically these are the rules which are followed by every tester all around the world this way they maintain consistency of testing you are also provided with commonly used methods this way it improves the efficiency of automated task in framework and even with the limited knowledge of how the test case is set up a tester can easily depend on the framework to refer to simple statements and implement the test cases you can easily reuse the test scripts for future purposes so with a proper framework the code is easier to maintain and often reusable so technically automation framework when designed and implemented correctly they deliver frequent and stable automated test code so basically in simple terms this automation Frameworks make the life of a tester much more easier guys one more question about automation framework what are different types of automation Frameworks that are available right now so first we have linear scripting framework linear scripting framework is basic level test automation framework which is basically in the form of record and Playback in a linear fashion this framework is is also known as record and Playback framework this type of framework is used to test Smalls size applications in this type creation and execution of test script are done individually for every test case so this is the basic level test automation framework then there is data driven framework data driven test automation framework is focused on separating your test scripts that you’ve written from the test data that you want to test on so it allows us to create test automation scripts by passing different set of data types the test data set is kept in external files or resources such as Excel sheets or it could be access tables or SQL database or XML files Etc then you have keyword driven framework this keyword driven framework is also known as table driven or action word based testing in keyword driven testing we use a table format to Define some sort of keyword or action word for each method that you could execute in your code now based on the keywords or action words which which are specified in the Excel sheet test scripting is done and tests are executed by using this framework since we are using keyword and action words programmer need not know much about the scripting language here then we have modular testing framework here tester divides the application into multiple modules and creates test scripts individually for each module these individual test scripts which are written for each module are then combined to make larger test scripts by using a master script this master script is used to invoke the individual modules to run end to endend test scenarios so basically you divide applications into multiple modules then for each module you write down a test case and then combine this test case according to your requirements using a Master Test script and the last one is hybrid testing framework hybrid test automation framework is literally a combination of two or more Frameworks that we just discussed it attempts to leverage the strength and benefit of other framework for particular test environment it can manage apart from these you also have others but these five are the most popular ones next question what are prerequisites to start automation testing so guys before you actually start automation you need to be aware of certain things for example you should make sure that the build for your framework is stable you should make sure to filter the test cases which you need to automate as in you should be sure as to which test cases you want to automate and which not you need to separate the functions which you will use repeatedly and if you have certain functions which you want to use repeatedly make sure you’re storing in separate files make sure you have your application modules in such a way that their requirements do not change frequently in such cases automation becomes difficult and the most important one make sure you have skilled and experienced resources this makes your automation much more easier so these are certain points that you should keep in mind before you actually start automation moving on to next question what are the factors that determine the effectiveness of automation testing there are certain key factors which help you decide if your automation was successful or not first of all obviously the amount of time saved then you have the number of defects or bucks found after automation the test coverage as in literally one test covers how much data or how many cases like that then you have maintenance time that you’ve spent on maintaining the automation software then the installment cost the amount of money that you spent before actually starting your automation then the test case reability as an easier test cases us able or the just not reusable as such and lastly the quality of the software that you’re actually performing test on this determine if your automation was successful or not and here we go the most common question what are the main differences between automation testing and manual testing so when you begin testing one of the primary decisions that you’ll have to make is when you’re going to test manually or use automated testing so you have to be aware of distinct differences between manual testing and automation testing the first point is obviously reliability for a testing phase which is very long let’s say it’s very long there are high chances of an undetected error when testing is performed manually so when you perform testing manually you have to do test repeatedly again and again the task becomes boring and it’s quite possible that you might Overlook some arrows so in such cases reliability is really less whereas in automated testing you use different kind of tools and scripting to perform the test and find the Box so there’s no chance of making any errors so the reliability in automation testing is literally high and again in manual testing it’s humans who are performing the testing and obviously humans are a little slower when compared to machines right so the processing time is more in manual testing while compare to automation testing and the important point is you cannot use manual testing and automation testing everywhere there are certain cases where manual testing is suitable and there are certain cases where automation testing is suitable for example manual testing is suitable for onetime task or exploratory or usability and had hog testing whereas automated testing is suited if you want to perform test repeatedly for long run or for regression testing or performance testing Etc apart from that initial investment cost in manual testing is low but the written of investment as in the amount you get as written after you perform your automation is also less than manual testing but when it comes to automation testing initial investment cost is high and the RM of invest m is also high in longer run so these are some basic differences between automation testing and manual testing let’s move on to our next question so is it possible to achieve 100% automation 100% automation is definitely not possible guys there are certain test cases that cannot easily be automated for example checking the background color of an window or a deog box well why would you do that right it’s a very simple task why do you need to automate or use machines here to perform the task right it’s a waste of time and effort just like that while we were discussing the differences we also discuss certain cases where you actually cannot use automation testing so 100% automation is definitely not possible next question what are some conditions where we cannot consider automation testing so just before discussing this question we discussed a question where I said 100% automation is not a possible thing it means that there are certain cases where you cannot apply automation so what are those so if you have a situation where the requirements of your software or an application keeps changing in such cases automation becomes difficult because every time requirement change you need to change your test scripts as well right so it becomes difficult in such cases it’s suggested not to use automation testing similarly if you have exhaustive documentation or if you have a requirement where you can apply only continuous integration or continuous delivery concept then it’s slightly difficult to apply automation testing the another case is when you have onetime test cases as in you need to test these test cases only once so what is the point of using automation because it doesn’t require much effort to test a test case only once right in such cases manual testing is much more preferred apart from that we also have ad hoc testing exploratory testing and user interface testing so don’t worry about them for now we’ll discuss what those three are as we progress there’s another question based on that so for off I’m just going to list them and leave them like that here we go our next question how many text cases can you actually automate in a day guys it totally depends on test case scenario complexity and the design and the length so generally speaking given the standard complexity of test cases it’s usually possible to automate a minimum of six test cases in a single day well this is for me so when I perform testing I realize that I could test six test cases in a day depending on their complexity but again it depends on you it depends on individual if you are asked this question you just have to talk based on your experience and the next question what are some Modern applications of automation testing so guys like I said in the beginning automation is literally everywhere every company is implementing Automation in one or the other way for example Amazon is testing delivery drones that pick up Warehouse orders which are sorted by robots whereas Google is testing self-driving cars then you have Starbucks which is testing Casher free stores dedicated to mobile ordering and payment and Facebook is the in a brain computer interface that may one day translate your thoughts into digital text well these are some mundane versions of automation technology apart from this there are other innovative ideas that are coming up regarding automation fascinating right so let’s move on to our next question is documentation actually necessary in automation testing because documentation plays a critical role in test automation so whatever the practices that you follow while automation should be documented so that that they are repeatable as in you can refer to them later on if they are documented somewhere like specifications designs configuration code changes automation plan test cases bug reports user manuals all should be documented so that later on you have somewhere where you can refer to if you have forgotten or if you have made any mistake this way documentation plays a very important role in automation testing so here goes one more tricky question that you might be asked guys can automation testing replace manual testing well according to me automation testing isn’t a replacement for manual testing it’s just a continuation of manual testing so no matter how great automated tests are you cannot automate everything right we even discussed the cases where you cannot apply automation manual test play important role in software development and come in handy whenever you cannot automated test cases automated and manual testing each of them have their strength and weaknesses manual testing helps us understand the entire problem and explore other angles of test with more flexibility when compared to automation but automation testing helps save time in long run by accomplishing a large number of surface level test in very short period of time so what I want to stress here is that automation testing is actually not replacing manual testing moving on to a next question what are some popular automation testing tools that are used worldwide so in the definition itself we have automation testing is process where it uses assistance of tools and script to perform testing so obviously there are whole lot of tools that can be used in automation for different purposes some of the most popular ones include selenium it’s a popular testing framework to perform web application testing across multiple browsers and platforms like Windows Mac Linux you name it then you have water which is pronounced as water it’s an open- Source testing tool made up of Ruby libraries to automate web application testing while don’t get confused with the spelling it’s w a t r but still it’s pronounced as water then you have ranorex it is flexible all-in-one GUI testing tool which you can execute automated test flawlessly throughout all environments and devices then you also have APM it’s an open-source mobile testing automation software it’s free and it supported highly active community of developers and experts well these are just this scrape or I can say very few of the tools which I’ve listed here there are multiple other tools that are popular for different purposes our next question when should you prefer manual testing over automation testing well earlier we discussed when you cannot use automation testing now let’s discuss when can you actually prefer manual testing over automation testing first of all when you have short-term projects even the automated tests are aimed at saving lot of time and resources it still takes lot of time and resources to design and maintain an automation test case or any such automation so in some cases such as building a small promotional website it can be much more efficient to rely on manual testing rather than automation testing it saves a lot of effort and time on your part other one is user testing this is an area in which you need to measure how userfriendly efficient and convenient the software or the product is for your end users so basically here you’re representing an end user well it’s not possible by machines right human observation is the most important factor so manual approach is much preferable in that such cases then you have ad hoc testing in this scenario there’s no specific approach it’s totally unplanned method of testing where the understanding in the inside of the tester is the important factor so again manual testing is much more preferable in ad hoc testing apart from that we also have exploratory test this type of testing requires test as knowledge experience analytical logical skills creativity and intuition and all that which is definitely not POS by machine so yeah even here manual testing is preferred so we are done with the first set of questions which are the basic questions that you might come across in the interviews now let’s move on to next level of questions which I call it intermediate level here we go so when is automation testing usful which test cases to automate so guys like I said earlier it’s impossible to automate all testing so it’s important to determine which test cases should you actually automate when it comes to figuring out where to start automation there are some top candidates like first of all repetitive task are primary candidates for automation because if you’re implementing manual testing here it takes a lot of time and and the task becomes boring because when you do the same task again and again it definitely becomes boring and you will make mistakes so in repetitive task automation is much better then you have certain cases where you might have to capture results and share it with other people so rather than manually exporting your data crunching the numbers and making such pretty complex graphs you can invest in a tool or automation strategy that will do this task for you you can also use Automation in the tasks that require multiple data sets so rather than manually typing an information into forms or Fields or automate this process to read an information from a data source and automatically type into the respective forms this way your time is saved then you have certain cases where you have to screen the response as in how the interface is performing or such cases you do not have to just sit and stare at the screen as in how the interface is behaving you can just automate and look for the Box later another example where you can apply automation is your non-functional testing types for example load testing suppose let’s say you’re testing a software and you are testing it for some 10 cases then manually it’s preferable but suppose if you have to test for 10,000 cases then it’s better you use Automation and you can also use automations for the test cases that run on several different Hardware or software platforms and configurations so Guys these are certain test cases that you should consider for automation another important question guys how do you actually Implement Automation and what would be the steps that you you need to follow first of all you should Define your goal for automation testing and Define which types of test cases are you going to automate so once you’re sure of what kind of test are you actually performing you need to select the right appropriate tool according to your requirements next you define the scope of automation as in you decide which test cases to automate which not to automate separate repetitive functions and all that so after determining your goal defining the scope of Automation and selecting the type of tool according to your requirements you should start planning designing and development as in you should start writing your test scripts so you create your test scripts and develop test suits to hold your test scripts next step is execution you can execute the tests that you have written using an automation tool directly or through test management tool which will in turn evoke the automation tool so this way you can execute the test cases which you have written the other important thing is once you have done with your autom the case doesn’t end there as you keep adding new features to your application or software automation scripts also need to be added reviewed and maintained for each rele cycle so maintenance also plays a very important role it becomes necessary to improve the effectiveness of your automation scripts so these are the basic steps that you follow while implementing automation so you need to know why you’re actually performing automation then you select the right tool then you decide on which test cases to actually automate based on all this requirement tools and which test cases you need to develop a test script once your script is ready you need to execute the test scripts note down the results and as soon as your application keeps changing you can keep updating your automation scripts as well so these are the steps that you follow so guys here’s another important question what are different approaches that you can take to test automation you have something called code driven approach here the focus is mainly on test case execution to find out if various sections of the code that you’ve written are performing as per EXP expectations under different conditions or not so basically here you’re checking if the application or the code that you’ve written to test the application is performing right or not under different conditions then you have graphical user interface testing or GUI testing as we call it so applications that have graphical user interface may be tested using this approach it allows the testers to record user actions and analyze them any number of times for example let’s say you want to test a website you can use framework like selenium that provides you with a record and Playback tool using which you can authorize your test without having any knowledge of scripting language so test cases here and graphical testing can be written in number of programming languages like cop Java Pearl Python and many others and then you have test automation framework we already discussed this but anyway framework is set of guidelines which are used to produce beneficial results of automated testing activity the framework brings together function libraries test data sources object details and other reusable modules basically it sets up a universal standard that all testers can actually follow moving on to next question what are the points that are covered in the planning phase of automation so earlier we discussed different set of steps that you need to follow while performing automation right and there’s one phase called planning phase and the points that you have to keep track of in this phase include deciding on the right automation tool deciding if you want to actually use automation framework as the approach to automation or not defining the scope of your automation configuring your test environment details developing test cases developing test suits and identifying test deliverables so all these are the points that you should consider in the planning phase of automation the next question how to decide the tool that one should use for automation testing in their projects so guys the first step in automation testing is to select a proper tool that suits your requirements but how do you actually go ahead and select a tool based on what criteria first you need to understand your project requirements thoroughly and then you need to identify the testing scenarios that you actually want to automate based on these requirements you make a list of tools once youve made the list for each tool identify the budget and select the tools which are within your budget after that compare the tools which are remaining in the list using some criteria like is it easy to develop and maintain the script for that tool or not does it work on platforms like web mobile desktop and other platforms is it based on on your project requirements does the tool have a test reporting functionality how many different testing types can this tool support how many other languages does the tool support So once you’ve compared different tools based on these criterias select the tool which is within your budget and supports your project requirements and gives you more Advantage based on your key requirements so that’s how actually you select a tool which suits your requirement guys now what are the primary features of a good automation tool first thing you need to consider is if or not the tool is easy to use because if you choose a tool which is difficult to use then there’s no point in using automation automation is implemented to make our task much easy so that we don’t spend much effort on our part right so you need to select tool which is easy to use and understand and you need to check if the tool is compatible with platforms and technology that you’re using it should also include features like implementing checkpoints to verify values databases or key functionalities of your application at definite points and also check if the tool does have a record and Playback support apart from these it can also check if the tool has good debugging facility robust object identification object and image testing and all that one more point you can also see if the tool that you’re using supports automation framework or not so these are certain features that very good automation tool has moving on to next question on what basis you can map the success of automation so on what basis can you actually decide if the automation is successful or not we did discuss few points earlier but let me just repeat them the main points are the defect detection ratio or you can say the number of defects that you have found out after your automation second the amount of time that you’ve taken to execute the Automation and finally the amount of reduction in the labor cost these are the three key points or strategies or criterias that you should consider while evaluating the success of your automation now what are the scripting standards that you should follow while performing automation testing just like you have certain coding standards that you should follow there are something called scripting standard that you should follow while writing your scripts for example you need to maintain uniformity naming convention commenting the functionality whenever and wherever it’s necessary adequate indentation indentation is really very important concept it changes the meaning of your code entirely if you’ve done it in the wrong way robust eror handling an ability to recover use of Frameworks and all this what are the differences between open- Source tools vendor tools and in-house Tools in automation testing very simple guys open-source tools are free to use Frameworks and applications engineers build these tools and have the source code available for free on the internet for other Engineers to use so such tools we call them open source tools then we have vendor tools these are developed by companies that come with licens to use so they cost money very often and because they’re developed by an outside Source technically techical support is often available if you have employed the tool better examples for vendor tools include V Runner silk test rational robot QA director qtp rpt and many others and as for in-house tool it is a tool that a company builds for their own use rather than purchasing vendor tools or using open- Source tools a company builds a tool for its own purpose those tools we called inhouse tools so open source tools are free and available on internet you can go ahead and use the source code as for when tools you need to have license to use and you often have to pay a lot of money then you have in-house tools where companies build those tools for themselves for their use moving on to next question what are the advantages of using an automation framework so here we go guys another important question about automation Frameworks so what are the advantages of using framework first of all they save you a lot of time you can reuse the code any number of times and they offer you maximum test case coverage automation framework they come with a proper recovery scenario and debugging facilities and obviously minimal manual intervention as well and they also provide you with easy reporting features as in once you’re done with automation you can easily create reports and share it with other people in your company so these are some advantages of using automation framework next question what are the important modules of test automation framework every test automation framework has some important modules for example you have test assertion tool this tool will provide assert statements for testing the expected values in application which is under test an example for test assertion tool you have test NG junit and many others then you have something called Data setup so whenever you’ve written a test script the test script works on some sort of data right and you need to actually take the data or you need to have a source of data so each test case needs to take the user data either from the database or from a file or embedded in a test script to manage all this we have a module called Data setup then comes build management tool using this tool you can actually manage how to build your framework according to your requirement this way you can easily write your test scripts and manage them then you have continuous integration tool or cicd tool these tools are required for integrating and deploying the changes which are done in framework at every iteration then you have reporting tool a reporting tool is required to generate readable report after the test cases are executed this way you get better view of the steps results and the failures of your Automation and lastly we have something called logging tool the logging tool and framework actually helps in better debugging of error and bugs so if you have the log of whatever You’ have done throughout the course of your automation it’ll be easier for you to find out the bugs and debug them here comes our next question what are some popular automation testing Frameworks available so let me list out few popular framework testing Frameworks well to name the most important ones I have Apache gter selenium apum Google or gray apart from this you also have test ngy cucumber water Robo framework and many others make sure you go ahead and refer to other list on internet so that you will remember many names as possible so guys what I’m meant to say is there are other popular Frameworks as well apart from the just ones which I just listed now moving on to our next question what do you think are the use cases where implementing automation is actually not suggested well we already discussed this but let’s go a little deeper one of the key testing principles is that 100% test automation is definitely not possible we discuss this as well so manual testing is still necessary let’s see which test cases cannot be automated or I could say would take too much effort to actually automate we did discuss about test cases which you need to execute only once when you have exhaustive level of documentation and all that apart from this I listed out three other cases if you remember which is ad hoc exploratory and user interface testing let me explain these three concepts to you guys so first of all you have ad hoc testing here testing is done without actual preparation and you do not have any written test cases so during ad hoc testing a specialist randomly tests the functionality of system basically his goal or his aim is to be creative and break the system and discover floss which might be not possible when you’re actually using a machine I mean in case of Auto automation so in such cases it’s better to use manual testing rather than automation testing then we have something called exploratory testing during exploratory testing a specialist or a tester tests a product like an Explorer as in he relays on his personal experience after getting the full picture of products functionality he designs test cases which he seems right so in exploratory testing you have to rely on your personal experience and design test cases so it’s definitely not suggested you to use automation testing here then comes user interface testing one problem with user interfaces is that the requirements for user interface keep changing well like I said earlier it’s not suggested to use automation when the user requirements keep changing because you might have to change your automation script again and again which will be a hard task so although we could automate basically everything manual testing still provides an effective and quality check of bugs and and disadvantages of using automation testing well after listening so much about automation testing I’m sure you guys can list it out so automation test they simplify the test case execution they save lot of time and money on you part they improve the accuracy and reliability of your software test they increase the amount of test coverage also the speed of test execution as well they reduce the maintenance cost and they give you high return of invest in case of long run talking about disadvantages maintaining developing test cases is a little difficult initial investment is high you need to have skilled resources this way they can actually make proper use of the automation tool that you’re implementing your environment setup is a little complex while automation debugging test scrips is also an issue sometimes so these are certain advantages and the disadvantages of using automation testing so guys here we’re done with the intermediate level questions and then we have advanced level questions when when I say advaned doesn’t mean they have very long answer or something like that it’s just that they’re a little tricky and you need to have proper knowledge to answer these questions or in-depth knowledge to answer these questions so let’s continue so the first question in advanced level is is automation testing a black box testing or a white box testing before I go ahead and answer this question let me explain you what blackbox testing is and white box testing is first about blackbox testing here in blackbox testing internal structure design implementation of any software product or an application or user interface that you’re testing on the user will not know any of these details prior to testing in blackbox testing but when it comes to white box testing details like structure design implementation and all this the user will know about so basically blackbox testing you are actually performing test without any prior knowledge whereas in white box testing you do have certain idea of what actually you’re performing tests on so now is automation testing a blackbox or a white box testing guys automation testing is mostly a blackbox testing as we just program the steps that a manual tester usually does without any prior knowledge of application but sometimes automated test scripts need access to database details as well which are used in the application in that case it again becomes a white box testing so automation testing can be both blackbox or white box depending on the scenarios in which automation is actually performed moving on to our next question What are the attributes of a good test automation framework a test automation framework which is considered to be good should be modular as in it should be adaptable to change tester should be able to modify the script as per the requirements next it should be reusable suppose if you have any methods or functions which you want to reuse make sure you put them in a separate file so that you can access them later and your framework should support this feature next important feature is it should be consistent the suit that you’re developing for your framework should be written in a consistent format by following all the coding practices and the scripting practices which we discussed earlier then obviously independent the test script should be written in such a way that they are independent of each other so in case of one test fails it should not hold back the remaining test cases then you have a loging feature as in your automation framework should have a login and Reporting feature like I said earlier logging feature helps you to find the bugs in the earlier stage itself and easily debug those bus for example let’s say if the script fails at any point of time having the log file will help you detect the location along with the type of error that you’re actually encountering here similarly it should also have a reporting feature it’s good to have a reporting feature so once the scripting is done we can have the results and reports sent via email lastly it should also support integration automation framework should be such a way that it’s easy to integrate with other applications like cicd so these are some features that a good test automation framework must and should have moving on to next question what are test automation framework development challenges obviously while developing a framework you will come across certain challenges first of all setting the scope of automation might be a difficult task that is you need to know properly which test cases to actually automate and where to use automation framework if or not you should use your automation framework for such test cases so deciding on that part is a little difficult then identifying the requirements of your test case is also a difficult part because since your application or software keeps changing you need to be aware of your requirements lastly selecting the tool there are plethora of tools out there so choosing a tool out of them which suits your requirement will be difficult so in such cases you can follow the rules which we discussed earlier or the steps to select a proper appropriate tool which suits your requirement moving on to next question what is datadriven testing if you remember this is a type of automation framework which we discussed so major use of automation testing is to simplify the testing process which involves complex and huge data sets by documenting the same details as in data driven test is used when you have large or huge amount of data sets that you have to deal with while testing so in data driven testing framework the test data includes input files output files and the result field and these fields are included in files like CSV Excel sheets XML files Etc so once you have all the test data in these files these files are fed to an automation tool for execution which in turn compares the expected and the actual data then it documents the result of each test data into the resulting field in those files so that’s what data driving testing is all about as you can see you have a data file and you have an expected output which is compared to actual output but before that you have test data and all your input and all that that’s fed into your driver script or the automation script which you write and the script is implemented on your application this way you get the results and then you compare the expected output with your actual output this is how data Dent testing is done next question what is test ngy let’s list out some of its prominent features so guys if you remember while listing out some of the most important test Frameworks I listed test NG as well so basically test NG is an open- Source automation testing framework where NG actually means Next Generation it is inspired by another kind of framework called junit and N unit it is designed to be better than junit actually especially when it comes to testing with integrated classes the creator of test ngy is Cedric Bo test ngy gives the developer the ability to write test more flexibly and more powerfully and some of the most prominent features of test ngy include it supports annotations annotations play a very important role it also supports Java and oops Concepts it supports testing integrated classes for example by default you do not have to create a new test class instance for every test method that you use it also has flexible runtime configuration it introduces a concept called test groups so once you have compiled your test you can just ask test NG to run your front end test or fast or slow or database test based on the way you have listed them it also supports dependent test methods P testing load testing and partial failure apart from this it offers plug-in API and supports multi-threading as well cool right has lot of features so what are the features or the advantages test NG has over junit first of all the most important feature is annotation annotation and test NG are very easier to understand they are just lines of code that can control how the method below them will be executed for example as you can see I have a image there on the screen you can see I have two annotations here first one is with priority zero and next one is Priority One so basically using these annotations and priorities I’m saying that execute this method before you actually go ahead and execute other method apart from annotations other features include test groups can be grouped very easily like I said you can just go ahead and ask test NG to run your frontend test fast or slow or database test based on the way you have listed them and it supports pilot testing which is not there in junit moving on to next question in what conditions we cannot use automation testing for aile method guys the titans of Information Technology like Google Amazon Facebook the develop software at very rapid phase so to meet the demand for their products and services they mostly use agile practices test automation is fundamental part of a Gile but there are certain times where automation testing in a Gile is useless for example when you have exhaustive level of documentation when the requirements of your application of the

    software you’re testing keeps changing in such cases automation is definitely not suggested also if you have onetime task and exploratory test edge cases automation should not be implemented so these are certain cases where automation testing becomes useless in agile methods our next question what are some best practices that you should follow while automation testing so guys to actually get maximum return of investment you need to keep track of certain points while actually performing automation testing for example the scope of automation needs to be determined in detail before the start of automation so this way you actually know what you’re actually automating and what you’re expecting from the automation next off you should select the appropriate tool that meets your requirement a tool must not be selected solely based on its popularity you need to select this only because it fits your requirement you need to decide if you want to use framework in your automation or not so apart from selecting framework tool and defining the scope of automation you need to follow certain scripting standards standards have to be followed while writing the scripts for automation we discuss them earlier the standards like regularly including commands proper indentation adequate exceptional handing Etc next you need to check if the automation that you performed is successful or not to check that you can use criteria like the number of defects found the number of time taken to actually perform the Automation and the time required for automation testing for each and every release cycle customer satisfaction index productivity Improvement all the features you can consider so these are certain points that you should keep in mind when you actually performing automation so the last question what are the risk associated in automation testing so guys just like manual testing automation testing also involves risk first of all you need to ask yourself if or not you have skilled resources automation testing demands Resources with some proper knowledge about programming so if the people that you’re actually automating or writing test script doesn’t have any knowledge of programming then definitely there will be some sort of error in your test cases right so you need to make sure that you have skilled resources when you’re actually starting your Automation and you should also ask yourself are the resources which you wired capable to adapt easily to new technologies or not and the second risk is the initial cost for automation is literally High because you have to buy a lot of tools and lot of other things so make sure that the amount of money you spend compensates the testing results and it’s suggested not to use automation if you are using it for user interface because like I said earlier when you are testing an user interface the requirements keep changing and it’s difficult to keep updating your automation scripts based on the changes so if your UI is not fixed do not use Automation and next make sure that the application you’re testing is stable enough else you might encount a lot of Errors while automation testing and it will take a lot of time and effort to debug those errors and lastly stop automating the test which run only once because it does not worth the time and the effort on your part because you’re running those tests only for once so what is the point of applying automation here so avoid automating such test modules so these are certain risk which you might encounter when you performing Automation and with this we come to an end with this automation testing full course if you enjoyed listening to this full course please be kind enough to like it and you can comment on any of your doubts and queries we will reply to them ear the earliest do look up for more videos and playlist And subscribe to the edas YouTube channel to learn more thank you for watching and happy learning.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog