Skip to main content
Skip to main content

Introduction to software testing concepts & techniques

About This Course

The proper testing of software can save an organization time, effort and money. In this course, student will gain thorough knowledge of testing approaches that can be integrated into the software life cycle. Through hands-on exercises, you learn how to build testing methods into your work process to correctly design products that are functionable and maintainable.

Course Objectives

After Completing this Course Learner will be able to :

  • Build testing methods into your work process to correctly design products that are functionable and maintainable.
  • Requirements

    Basic Knowledge of Software Development Life Cycle

    Course Staff

    Course Staff Image #1

    Amany Shousha, Software Testing and Quality Assurance Dept.Head at ITI

    Amany has about 16 years of experince in S/W Testing and Quality Assurance Amany finished her Master degree in Computer Software Engineering, 2007 - 2010 She has Diploma in Computer Science and Operational Research, Computer Science, 2005 - 2007 She joined ITI 9 Month Program Diploma in System Development (SD), 2000 – 2001 Amany currently is Software Testing and Quality Assurance Dept.Head at Information Technology Institute (ITI) from 2010 Amany has a lot of Certificate in Qualty assurance and Software Testing such as

    • ISTQB-CTFL certificate International Software Testing Qualification Board
    • ISTQB Agile Tester Extension
    • ISTQB - International Software Testing Qualifications Board May 2016
    • Certified Associate in Software Quality (CASQ)
    • QAI Global Institute
    Amany participated in different projects such as :
    • Africa Build Portal-March 2012 to 2015 PHP,mysql web developer
    • CMMI Level 2 for services-iTi March 2011 to May 2011
    • ATM Helping iTi to be certified CMMI for services
    • EDU Egypt October 2009 to January 2010

    Frequently Asked Questions

    What is 'Software Quality Assurance'?

    Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon processes, standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.

    What is 'Software Testing'?

    Testing involves operation of a system or application under controlled conditions and evaluating the results (e.g., 'if the user is in interface A of the application while using hardware B, and does C, then D should happen'). The controlled conditions should include both normal and abnormal conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don't happen when they should. It is oriented to 'detection'.

    What web browser should I use?

    Uteena platform works best with current versions of Chrome, Firefox or Safari, or with Internet Explorer version 9 and above.

    What are some recent major computer system failures caused by software bugs?

    • Several major airlines suffered various significant computer system problems during the period July-October 2016, resulting in thousands of flight delays or cancellations worldwide. Among other impacts, this led to a U.S. Congressional inquiry as to why airline computer systems had become so prone to failure.
    • The European Space Agency's ExoMars Schiaparelli spacecraft crash landed on Mars in October 2016 as a result of problems in handling small amount of bad sensor data in the spacecraft's computer systems. It is believed that a software fix rather than a more difficult hardware fix will resolve the problem for future missions.
    • A September 2016 update of a major smartphone OS resulted in many users' loss of use of their smartphones. A series of bug-fix releases over the succeeding months resolved many issues, but sometimes introduced additional issues.
    • Bugs in the computer system of a major urban police department were reported to have compromised potentially thousands of criminal cases over a period of years. News reports of March 2015 indicated that an extensive review of past criminal cases was under way to determine which cases had been affected.
    • In February of 2015 it was reported that an entire nation's air traffic control system crashed due to a bug in a single line of code (among the millions of lines of code in the air traffic control systems). The system was safely fixed within an hour, however thousands of travelers were left grounded and had flights delayed.
    • It was reported that software problems in an automated highway toll charging system caused erroneous charges to thousands of customers in a short period of time in December 2011.
    • A U.S. county found that their state's computer software assigned thousands of voters to invalid voting locations in November 2011 for an upcoming election due to the system's problems accepting new voting district boundary information.
    • In August 2011, a major North American retailer initiated its own online e-commerce website, after contracting it out for many years. It was reported that within the first few months the site crashed six times, home page links were found not to work, gift registries were reported not working properly, and the online division's president left the company.
    • Does every software project need testers?

      While all projects will benefit from testing, some projects may not require independent test staff to succeed.

      Which projects may not need independent test staff? The answer depends on the size and context of the project, the risks, the development methodology, the skill and experience of the developers, and other factors. For instance, if the project is a short-term, small, low risk project, with highly experienced programmers utilizing thorough unit testing or test-first development, then test engineers may not be required for the project to succeed.

      In some cases an IT organization may be too small or new to have a testing staff even if the situation calls for it. In these circumstances it may be appropriate to instead use contractors or outsourcing, or adjust the project management and development approach (by switching to more senior developers and test-first development, for example). Inexperienced managers sometimes gamble on the success of a project by skipping thorough testing or having programmers do post-development functional testing of their own work, a decidedly high risk gamble.

      Why does software have bugs?

    • miscommunication or no communication - as to specifics of what an application should or shouldn't do (the application's requirements).
    • software complexity - the complexity of current software applications can be difficult to comprehend for anyone without experience in modern-day software development. Multi-tier distributed systems, applications utilizing multiple local and remote web services, use of cloud infrastructure, data communications, enormous/distributed datastores, security complexities, and sheer size of applications have all contributed to the exponential growth in software/system complexity.
    • programming errors - programmers, like anyone else, can make mistakes.
    • dependencies among code modules, services, systems, other projects, etc may not be well understood, and may cause unexpected problems.
    • in some fast-changing business environments, continuously changing specifications may be a fact of life, thus introducing significant added risk. Agile software development approaches - if effectively implemented - can help mitigate this. See more about 'agile' approaches in Part 2 of the FAQ.
    • time pressures - scheduling of software projects is difficult at best, often requiring a lot of guesswork. When deadlines loom and the crunch comes, mistakes will be made.