What is meant by software Testing? And Software Quality?

Software testing is a matured process of verification or validation of software against the features, requirements or specifications, which are both functional as well as non-functional. It involves creating test plans, test specifications, test code development, execution of tests and checking the documentation. Also making sure that the product code changes doesn’t cause the regressions, which means failure of earlier working features.

Software quality means the expected level of meeting the specifications or requirements, which are both functional as well as non-functional. The different levels of low, medium and high represent overall quality. In general, high-quality products will have higher customer satisfaction and recognition in the same line of low-level products. Software testing contributes to determining or assess the product quality.

What is use case? And user story?

The use case is the sequence/flow of actions and events performed by an actor to achieve a business goal. The actor could be an end-user using the system or the system or device itself interacting with some other system. There will be many use cases for a given product under development.

The user story, the term used in the agile SDLC process and is a simple description of a software requirement in the end user’s perspective and his/her business job function. It should be scoped for an iteration and should provide a business value or add the value to the overall product once implemented.

[Visit www.everydayon.com or (India)www.everydayon.in]

What is SDLC? How testing is related to it?

SDLC stands for Software Development Life Cycle. It is the process of developing any software. There are many processes around from a traditional “Waterfall model” to the latest “Agile” processes. There are many types in Agile itself such as XP (eXtreme Programming), Scrum, TDD (Test Driven Development), etc.

Testing is the part of the SDLC and understanding it will help effective testing of a software product. The testing is the process that comes as verification phase in Waterfall model and in testing part of agile Scrum.

Who are the Software Project Stakeholders? Responsibilities?

In general, below are the Project stakeholders in a product development organization.

Product Manager

  • Acts as a bridge between product and customers
  • Responsible to create PRD (Product Requirement Document) or BRD (Business Requirement Document).

 

Project Manager/Dev Manager/Dev Director

  • Owner of the product execution (who creates and executes the Project Plan)
  • Acts as a driver for successful project release.

Program Manager

  • Coordinates with all stakeholders during the project execution and helps project driver.
  • Conducts release meetings

Architects

  • Responsible for performing product architecture considering the big and strategic goals like scaling, availability, performance, security, technology, etc.
  • Creates architectural diagrams and documents.
  • Work closely with the design/development teams for making the implementation successful.

Designers

  • Responsible for the product design and work closely with Architects and developers.
  • Creates FSD/FS (Functional Specification Document)
  • Please note that sometimes Architects can act as designers or senior developers can be designers.

Developers

  • Responsible for implementation (coding) as per FS.
  • Do bug fixes
  • Conducts unit testing

QA/QE

  • Responsible for Testing ( tasks like write test code, execute tests, file bugs, create Test Plan and Test Specification).
  • Review documents – release notes, manuals/guides

Doc writers

  • Responsible for all sorts of documentation like user guides/manuals/help content.

Release Engineers (RE)/Devops

  • Responsible for doing the integration of modules and creating the builds.
  • The DevOps would host and monitor the stage and production sites.

Support Engineers/Front-end support (customer facing)

  • This team would triage the customer issue and pass on to backend support if needed.

Support Engineers/Backend support

  • They would triage and fix the customer issues escalated by front-end support engineers.

What is the release criteria? What it includes?

The Release criteria are the minimum checklist or list of goals to be achieved to release the product. This effort is driven by RE team, and all the project stakeholders would contribute to making this release to happen.

Below is a sample release criteria/checklist and can be taken as a template if none is available.

  • Bugs criteria
    • No P1, P2, P3 open bugs
  • Quality criteria
    • 100% feature coverage and test development
    • 100% test execution
    • 95-100% pass rate
    • >90% automation for regressions
  • Stress/Load/Concurrency criteria
    • 100 users/sec
  • Performance criteria
    • Minimum throughput numbers related to the product.
    • Comparison to other competitive products
  • Code coverage
    • >90% class level
    • >50% method level
    • >40% instruction/statement level
  • Internationalization (I18N) & Localization (L10N)
    • Internationalization support
    • Specific languages to translate
    • NOTE: I18N is short form as there are 18 characters between I and N in the “InternationalizatioN”. Similarly, L10N is short form as there are 10 characters between L and N in the “LocalizatioN”.
  • Documentation (books/online)
    • Release notes
    • User Manuals
      • Installation Guide, Admin Guide, Developer Guide, Troubleshooting guide, etc.
    • License and license text
  • Support/Maintenance plan

What is refactoring?

Refactoring is the general software engineering process in coding and is to make code changes in such a way that it can improve readability, structure, and optimization while keeping the use case/behavior intact.

This refactoring process is very typical in the software programming and also especially in the agile process as it is iterative because getting the perfect code is not possible with all optimizations at a time.

The Software is everywhere. What is it?

The Software or Computer Software is a set of programs and data that process information and controls underlying hardware. It includes programs, libraries, and non-executable data.

Some of the examples include the following.

  • Operating Systems such as Windows, MacOS, Linux, Solaris, etc.
  • Browser software such as Firefox, Chrome, Internet Explorer, Safari, etc.
  • Office software such as Microsoft Office, Star Office, etc.
  • IDE software such as Eclipse, NetBeans, IntelliJ, etc.
  • Any other programs that operate on devices and data.

The main purpose of software is to have the flexibility to control a general purpose solution, business solution or devices such as mobile, desktop or large computers.

The software is everywhere in the Today’s evolving technologies. Understanding and gaining of software skills would help in professional advanced technology careers.

Does the Automation a necessary thing?

Yes. In general, applying the core engineering principles such as measurement consistency, repeatability, reliability, and correctness during the application of testing techniques is essential.

It is difficult to do the above principles merely with the manual approach because of limitations such as human errors in producing consistent actions & output, testing coverage with quick, agile product development cycles and making sure each build is verified for regressions. Working on individual manual work, one can’t scale to handle massive work!

The Quality Automation is one of the important things to address this continuous regression testing. The automation effort needs programming skills in the same software domain and relevant skills to achieve the high automation, which saves time and test coverage.

Any mundane activities (setups/installs/monitoring/operations etc.) should be automated and let the devices such as computers do this kind of work once we code it. You can get and invest more time in learning and creation of the new and interesting things!

 

Are you ready for Java and QA Engineer?

Good!  See if you have the below core skills. If not, try to review the basic concepts and prepare for the Interviews.

1. Software Development Life Cycle (SDLC): The SDLC is to understand the core methodology of the software development process. This process is one of the essential concepts for Dev/QA individual and the teams to collaborate effectively in the creation of the software products or IT services.

2. Software Quality Concepts: The quality concepts are the fundamental knowledge on the testing part of SDLC process that must be possessed by every QA and Dev team for the delivery of a high-quality software product.

3. OOPS: The majority of the software products development has been done with Object-oriented languages such as Java, C++, and other OO high-level languages. OOP concept is very much essential for any Java/C++ programmer to maintain or develop new software in Java.

4. XML: Most of the existing dynamic content, e-commerce sites and many software configurations have been done using XML file format. It is essential to understand this universal XML file format to survive in the Software dev and QA profession.

5. XPath: As long XML is there, the XPath also plays a key role in performing the navigation, extraction of XML, and transformation of the content to various other forms (HTML/text). So better to acquire this skill by developers and QA professionals.

6. JSON: The JSON file format is a newly evolving and modern universal file format. JSON format is being used widely in REST WS, Internet/Web applications, Social sites, etc. Having hands-on with JSON files is crucial for all developers and QA automation professionals.

7. SCM/SCCS(SVN/GIT): The source code is one of the major intellectual property of any software organization. It is essential to collaborate with the developing teams using a source code control system such as SVN or GIT. It is important to understand the SCM concepts and working knowledge on SVN and recently popular GIT software for both developers and QA automation engineers.

8. Unix/Linux: In Today’s World, most of the enterprise software, website hosting, and any Internet-hosted software or applications are on the Linux/Unix platform. Having hands-on experience with this platform is fundamental for everyone.

9. Java & JDBC: Most of the existing or new, whether small or larger software projects are still written in Java language. The Java should be at the heart of every software professional and thereby essential to have this language to survive in the software development and QA automation profession.

10. ANT: The ANT is a build framework. Once it was popular and still is being used as Java build framework for both product code and test code in most of bigger software organizations. Having an understanding and hands-on experience for both developers and QA is good.

11. Maven: The Maven is a build framework used everywhere in the recent Java projects. It addresses some of the dependency resolution problems with Java project build process that was a burden with ANT. Maven makes the build process simple by using conventions. Thereby Maven is a significant survival skill for both developers and QA automation engineers.

12. JUnit: The unit testing should be one of core tasks for any Software developer. The JUnit is an old but simple and popular framework for Java projects. This test framework is still being used in many organizations and lot of IDEs support the automatic test code generation and execution. Having JUnit experience is an essential skill for developers.

13. TestNG: The TestNG is one of the common framework used across the unit testing and functional testing. TestNG is being used in most of the recent projects and specifically in Selenium based test projects. Having hands-on with this skill is essential for both developers and QA automation professionals.

14. Jenkins/Hudson (CI): In the Continuous Integration (CI) category, Jenkins/Hudson play a vital role with automated jobs for creating the product builds/bundles and also end-to-end regression test cycles. The Hudon/Jenkins functionality is extendable with plugins, and many of the plugins are already available. It is a widely used tool. Thereby having this skill by both developers and QA engineers gives a real strength.

15. Web Applications Testing – Selenium: The Selenium is a browser-based website testing automation framework. Many of the organizations need this skill to create automated test suites going through the browser. This framework acts as a remote to the browser. The selenium automation hands-on experience is a must for QA automation engineers.

16. Web Services (SOAP&REST API) Testing and SoapUI: The Web Services are loosely coupled and distributed technology that is widely used. The WS are being used in Service Oriented Architecture (using SOAP-based web services), or with the Internet resources addressed as RESTful WS or REST API or REST endpoints. Nowadays, the REST is very popular and is everywhere. It is essential to understand and test these REST APIs. This skill is a must for both developers and QA engineers to survive in the development of current software and IT services.

Hands-on/Getting started: Once joined the job, many times it will be a confusion where and how to get started the day-to-day work. This section helps to understand those basic expectations from your new company/team and walks through the flow.

Java samples code: Learning by an example is a quick way to learn new things. The Java sample code helps developers and QA engineers to get comfortable in Java programming.

Selenium samples code: The Selenium sample code helps QA engineers in learning the browser-based website test automation using Selenium. Having examples is a good way to quickly getting into coding.

Sharing my new book that covers all of the above 16 skills and also as this is helpful for QA & Automation professionals. Product Details Software Quality and Java Automation Engineer Survival Guide: Basic Concepts, Self Review, Interview Preparation (500+ Questions & Answers)Nov 16, 2016 by Jagadesh Babu Munta (More buying options such as iBookStore/Lulu/eBay can be found at http://www.everydayon.com ). Also the paper book is available in India at http://www.everydayon.in

There are about 500+ questions and answers in the above 16 skills to ease on understanding the concepts and review purpose.

Software Quality and Java Automation Engineer Survival Guide

The book is all about Software Quality & Java automation skills with basic concepts, self-review and interviews preparation related to the Java based projects in a practical sense with questions-answers. It is hard to survive without having the fundamentals and automation skills in software development and quality as a QA or dev engineer. There are about 500+ questions and answers to ease on understanding the concepts and for review purpose.

Software Quality and Java Automation Engineer Survival Guide: Basic Concepts, Self Review, Interview Preparation (500+ Questions & Answers) Paperback – November 16, 2016 by Jagadesh Babu Munta (Author)

The below are 16 core skills covered in this book along with hands-on/getting started on a new job. At a high level, this book starts with the areas such as processes (SDLC/Quality/OOPS), data (XML/XPath/JSON), code repositories (SVN/GIT), and operating systems (Unix/Linux). Then enters into programming (Java&JDBC), and later build frameworks/tools (ANT/Maven). After that, it covers more on unit testing frameworks/tools (Junit/TestNG) and continuous integration tools (Jenkins/Hudson). Next, it includes the functional testing of web applications and web services with frameworks/tools (TestNG/Selenium/SoapUI) covered. Finally, included samples code (for Java/Selenium) to reference offline, and also added hands-on/getting started in the job.

The preview of the book is available at  https://drive.google.com/open?id=0BxzQzD6oofWmWjlVM0VsUTVpOU0

Please buy a full book at any of the below sites.

(Search for “Software Quality and Java Automation” in amazon.com or in google.com).

Buy Paperback in USA:

  1. Amazon: http://www.amazon.com/Software-Quality-Automation-Engineer-Survival/dp/1635720001/
  2. Create Space: https://www.createspace.com/6647429
  3. eBay: https://t.co/7EUT8rwl71

Buy Digital:

  1. Amazon kindle (mobi) : http://www.amazon.com/Software-Quality-Automation-Engineer-Survival/dp/1635720001/
  2. Apple’s iBookstore (ePub):  http://itunes.apple.com/us/book/id1180399694
  3. Lulu (ePub): http://www.lulu.com/content/e-book/software-quality-and-java-automation-engineer-survival-guide-basic-concepts-self-review-interview-preparation-%28500+-questions-answers%29/19975685

Buy Paperback in India:

http://www.everydayon.in

 

Visit the below sites for latest information:

www.everydayon.com or (India) www.everydayon.in.