Blog Archive

Monday, 30 July 2018

A Picture that Demystifies Smoke Testing, Sanity Testing and Regression Testing


Click the image to view in larger size.

This picture explains what are Smoke Testing and Sanity Testing, and also illustrates the relationship among those plus Regression Testing.

*This original image is on Guru99.com

Common Interview Questions for Test Analysts


1. What is the difference between a use case and test case?

They are both instances of using the product. But they differ in terms of perspective and scope. A use case is describing a user achieving a general goal, and a test case is listing the particular steps to test a function which could be part of the general goal. For example, users to sign up at Facebook could be a use case, and the corresponding test cases could be testing signup button, testing personal information text boxes...



2. Which phase of SDLC does the tester begin to write test cases?

Ideally, the early the better which makes it the planning phase. This is mainly because of early tests prevents errors in the later stage.


3. What is the difference between functional documents and business documents?

Functional documents include the technical details of the software developed and usually maintained by the developers' team. Whereas business documents are kept by the product owners to keep track of the business requirements.


4. Who are the different stakeholders involved in different phases of SDLC?

Requirements– Business Analyst
Design – System Architect
Coding – Software Developer
Testing – Tester
Implementation – Operational Team
Maintenance – Production Support Team


5. Why do we need a separate environment for the developers and testers?
Because end users may not use the same environment as the developers, so testers have to make sure the product works properly in the users' environment, not the developers'.


6. What is the role of a Business Analyst in different phases of SDLC?
Requirements– Requirements gathering and analysis
Design – Document changes to the requirements
Coding – Keep in touch with the developers
Testing – Judging for user acceptance testing
Implementation – Forward beta version to users


7. What is the role of a Developer in different phases of SDLC?
Requirements– Offering technical suggestions
Design – Generating development strategy
Coding – Coding
Testing – Work with testers to fix bugs
Implementation – Fix bugs found in beta version


8. What is the role of a Test Analyst in different phases of SDLC?
Requirements– Offering technical suggestions
Design – Generating test strategy
Coding – Understanding codes
Testing – Testing
Implementation – Helping beta version


9. What is the role of a Customer in different phases of SDLC?
Requirements– Express their needs
Design –
Coding –
Testing – Helping with user acceptance testing
Implementation – Helping with beta version testing


10. What is the testing process followed in a company ideally?
Requirements analysis > Test planning > Test case development > Environment setup > Test execution > Test cycle closure


11. What are the activities performed in test design and test execution?

In test design, test conditions and test cases are specified according to the testing strategy.
During test execution, testers will run the test cases and report bugs or defects found. They will also follow up the bug fixing and retest. In this stage, testers have to work closely with developers and product owners.


12. Explain the difference between an SDLC and STLC?

SDLC is the whole picture of developing a software with multiple parties involved. STLC is actually part of SDLC that mainly focus on work related to testing.


13. What is test scenario, test condition and test case?

Test scenario and test condition are almost the same by describing the overall objective of a series of test cases. Test case is the detailed step by step instruction of verifying a particular situation.


14. What is the process to write a manual test case?

Understand the requirement > try it out manually > define the test condition > describe step by step execution > provide expected results and other criteria


15. What is a test cycle and why it is important to carry out testing in cycles?

It is a framework to carry out a structured series of testing including smoke testing, sanity testing, regression testing, system testing, integration testing, and end to end testing. The advantage of using such framework is to guarantee quality, uniformity, and efficiency.  


16. Explain Requirement Traceability Matrix (RTM) in simple terms.

It is a document that maps and traces user requirement with test cases.

Monday, 9 July 2018

OOPS Concepts in C#

Object-Oriented Programming Concepts in C#


1. Class

A class is an abstraction of a group of similar entities. It serves as a customizable template that helps programmers to create their own collection of variables and methods.

2. Object

An instance of a class. A runtime entity that is instantiated using the class template.

3. Inheritance

For reusablity purpose, child classes inherit properties from the parent classes.

4. Polymorphism

It allows you to invoke methods of a derived class through base class reference during runtime. In polymorphism, we will declare methods with same name and different parameters in same class or methods with same name and same parameters in different classes.

5. Abstraction

An abstraction is an act of representing essential features without including background details. It is the process of creating classes OOP.

6. Encapsulation

The variables of a class are always hidden from other classes, so that the external access to this class is under control. Good for safety, brevity, and dependency.

Thursday, 5 July 2018

The Fundamentals of Testing

The Fundamentals of Testing [1]


Testing a software is like the inspection of buying a used car. You need to read through the advertisement (project documents), have a look at its appearance (UI), sitting in the driver's seat and try things out (usability), test drive (run test cases), find out it's performance (performance), talk with the sales person (developers), and finally make a decision (report).

So, the first question is: why do we need testing?
1. For example, nowadays, many companies are developing auto navigation systems. Without testing, the vehicle can hardly guarantee the safety of its passengers. So when coming across safety-critical and money-related areas, testing is especially necessary because it can prevent most of the product malfunction.
2. Testing can identify errors, defects, faults, and failures. An error (or mistake) leads to a defect, which can cause an observed failure.
3. Software failures can lead to: loss of time, money, reputation and even health and life.
4. Therefore, when the cost of testing is less than the cost of potential software failure, testing is the right thing to do.

What is testing?
Testing is a systematic exploration of a product with the main aim of finding and reporting defects.

Difference between testing and debugging?
Debugging is to identify the cause of bugs or defects in code and undertake corrections. Usually developers debug, whereas testers do the testing.

Static testing and dynamic testing
Static testing does not exercise the code, e.g. going through the specification documents. Dynamic testing exercises the program.

General testing principles

  • Testing shows the presence of bugs
  • Exhaustive testing is impossible
  • Early testing 
  • Defect clustering
  • The pesticide paradox
  • Testing is content dependant
  • Absence of errors fallacy 

Fundamental test process

  1. Planning and control (what we do when the activities do not match up with the plans).
  2. Analysis and design.
  3. Implementation and execution.
  4. Evaluating completing criteria and reporting.
  5. Closure activities 










[1]. Hambling, B., Thompson, G., Williams, P., Samaroo, A., & Morgan, P. (2015). Software testing: an ISTQB-BCS certified tester foundation guide. BCS Learning & Development.

Wednesday, 4 July 2018

ISTQB Info

ISTQB


It's short for International Software Testing Qualifications Board. As a software testing qualification and certification, it is recognized internationally. [1] Currently, about 470,000 people hold this certificate.

Current ISTQB product portfolio follows a Matrix approach characterized by
  • Levels, that identify progressively increasing learning objectives
    • Foundation
    • Advanced
    • Expert
  • Streams, that identify clusters of certification modules:
    • Core
    • Agile
    • Specialist
For Foundation and Advanced level holders, the certificate is life-long. However, Expert level expires in five years time.
The board in Australia and New Zealand is operated by ANZTB, They provide both paper-based exams and eExams at the price ranging among $200-$300-$350-$795. eExam is more flexible in terms of rescheduling your exam date.

[1] https://en.wikipedia.org/wiki/International_Software_Testing_Qualifications_Board

Software Testing Tools

There are various software testing tools available for QAs to increase efficiency, visibility, accuracy, and ability of their work. The tool...