What is the difference of smoke testing and black-box testing?

Main theme of my question is about the differences of Smoke Testing and other types of software testing specially Black-box testing but also I’m very curoius to know what is the purpose of this naming? how smoke testing is related to Smoke (or perhaps smoking)?

P.S:
my question is a bit more specific than this question

1

These two types of testing are not directly related.

A smoke test is a quick system test with the purpose of finding major flaws in a software artifact. For example, a test might deploy a web app to a test server, validate that it deploys and starts up, and the server can service simple requests. This would validate that the application file (e.g. WAR file in Java) was built correctly and is not missing anything important.

The expectation here is that QA will need to perform much more in-depth testing to validate the system. But if a build process breaks and the delivery artifact is unusable, why waste anyone’s time testing if the application will not even start?

Black box testing is really a category of testing, not a specific type of test. It is any test that assumes no knowledge about the inner workings of a module of code.

One good real-world example of black box testing was many years ago when IBM dominated the PC market. Other manufacturers wanted to break into the (then) lucrative hardware market. The issue was IBM’s BIOS was locked down and they would not license their chips to competitors. Several competitors performed black box testing to figure out the inner workings of the BIOS, and made their own clones.

Unit tests are also ideally a form of black box testing. A good unit test is written to the interface of a class or method, not the implementation. This helps developers avoid “coddling” their code, i.e. avoiding input values that might break it. Good unit tests are black box tests because they are impartial and try to break the code in any way possible.

1

Basically, in smoke testing you turn on the system, especially for the first time ever, and see whether it starts to emit smoke… which would be a sign that something is very wrong with it. It doesn’t tell you anything beyond that, but it can still be valuable to avoid further effort on something that is obviously not going to work at all.

According to Wikipedia, the words “smoke test” originated from plumbing, where smoke was forced through pipes to find leaks. Electronics engineers began using the term to identify a basic power-on test; if the equipment didn’t smoke, it passed the test. Software engineers use the term to identify tests that confirm basic functions of the software. The term is meant to be somewhat humorous.

Black-box testing is simply testing something from the outside, via its API, with no information (or while pretending not to have any information) about the implementation. The two terms are not related in any way; “black box testing” refers only to software. Compare White Box testing, which tests internal structures or workings of an application, as opposed to its functionality.

3

The term “smoke testing” can be thought of as a sanity check. These are quick tests to get a quick, overall view of whether or not the system seems to be working. It isn’t careful, methodical testing. For example, smoke testing might catch things like obvious freezes or obvious integration problems.

Black box testing is a completely different category. Black box testing means that the testers should have no idea of the implementation of the application, and should be using it from the point of view of an end-user. Now, that could encompass smoke testing — it would be like an end-user’s sanity check of the system. Or, black box testing could be a software testing methodically trying to stress the system through use to find where its operation may break down.

What would be an example of something you would not do with black box testing? You would not, for example, manually enter bad data in a back end database to see how the system handles such data. That is not testing from the point of view of an end-user: meaning, via the application’s interface. If you could somehow get bad data into the database by entering it via the interface, that would be black box testing.

White Box Testing

Is a verification technique software engineers can use to examine if their code works as expected.

There are six basic types of testing: unit, integration, function/system, acceptance, regression, and beta. White-box testing is used for three of these six types:

Unit testing: Unit testing is important for ensuring the code is solid before it is integrated with other code.
Integration testing: Test cases are written which explicitly examine the interfaces between the various units. These test cases can be black box test cases, whereby the tester understands that a test case requires multiple program units to interact. Alternatively, white-box test cases are written which explicitly exercise the interfaces that are known to the tester.
Regression testing: As with integration testing, regression testing can be done via black-box test cases, white-box test cases, or a combination of the two. White-box unit and integration test cases can be saved and rerun as part of regression testing.
Black Box Testing

Is a software testing technique in which functionality of the software is tested without looking at the internal code structure. Also known as (Behavioral Testing).

This method is named so because the software program, in the eyes of the tester, is like a black box; inside which one cannot see.

This method attempts to find errors in the following categories:

Incorrect or missing functions
Interface errors
Errors in data structures or external database access
Behavior or performance errors
Initialization and termination errors
It can be done on the basis of the software requirements and specifications. Applying different inputs and comparing the output with the expected result.

Black Box Testing Techniques:

Equivalence Partitioning- Here we consider which cases are valid/invalid into a feature.

Boundary Value Analysis- Here we consider the primary case of each partitioning.

Decision Table Testing- Different conditions for a feature. With help of a table with rules(test cases) and actions(inputs).

Failure (“Dirty”) Test Cases- Evil evil evil 🙂

Smoke Testing

Is preliminary testing to reveal simple failures severe enough to reject a prospective software release. A subset of test cases that cover the most important functionality of a component or system is selected and run, to ascertain if crucial functions of a program correctly work Important here: The Functionality

When? Before a sprint release

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật