Subject
|
Software Testing Class (link)
|
Place
|
Fast Campus Main Building 4th Fl.
|
Time
|
10:00 ~ 17:00 on August 25, 2015
|
Speaker
|
최준현 (Lindberg Choi)
|
Host
|
N/A (paid lecture: 150,000 KRW)
|
Focus
|
QA basics, testing secret
|
- Lesson
- origin of software bug
- origin: vacuum tube
- term definition based on IEEE610.12-90
- Mistake: A human action that produces an incorrect result.
- Error: A difference...between a computed result and the correct result
- Fault/Defect/Bug: An incorrect step, process, or data definition in a computer program
- Failure: The [incorrect] result of a fault
- reasons for defect:
- engineers not complying with spec requirements
- product manager making mistakes in writing spec requirements
- engineers developing on their own due to absence of spec requirements
- engineers’ contrived interpretation in architecturing
- ...
- key principle:
- defect + regulatory violation => disabled service
- what is test process
- process: method to effectively increase task productivity
- software testing process: spec requirement analysis -> plan test plan -> create test case -> conduct test -> report result
- relationship between planning and testing
- deliverables of “planner”
- SRS (software requirement specification), IA (information architecture), business process, wireframe, SB (story board)
- quality management method for “planner” and product manager
- testing internal users
- reviewing proposal and development doc
- writing structured doc
- creating test case in the perspective of “planner”
- black-box testing method
- definition: Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. <source: Wikipedia>
- example
- equivalence partitioning
- BVA (boundary value analysis)
- state transition testing
- decision table testing
- use case testing
- pairwise testing
- bug finding type per testing step
- understanding test cycle
- standard cycle: BAT -> main test -> ad-hoc test -> confirmation test -> regression test
- multiple test cycle: 1st (BAT -> main test -> ad-hoc test) -> 2nd (confirmation test -> main test -> ad-hoc test) -> 3rd (confirmation test -> main test -> ad-hoc test -> confirmation test -> regression test)
- bug finding type per testing step
- BAT (build/binary acceptance test): e.g. label differs per organizations: e.g. BAT at Samsung Electronics, dev to QA; dev review; hurdle at Nexon
- main test: conduct TC, finding function related bug
- ad-hoc test: exception test, negative action test (c.f. random: range is pre-determined; ad-hoc: testing under given time; monkey test)
- confirmation test: confirming bug fix, finding new bug due to unblocked functions
- regression test: testing previous feature due to bug fix; typically, new fix brings more bugs on previous feature
- bug finding principle
- principle of defect clustering
- Testing shows presence of defects
- Exhaustive testing is impossible
- Early testing
- Defect clustering
- Pesticide paradox
- Testing is context depending
- Absence-of-error fallacy
- most bug frequent area: upgraded/updated feature (e.g. At Google, engineers check file fix frequency in unit testing)
- magic of test data
- example: multimedia data by size and file types, member information, actual database data (e.g. 1234567890; 12345678901234567890, 일이삼사오육칠팔구십; ~!@#$%^&^&*((), null, 123456789 0, foreign language text, negative test case), physical data (e.g. OTP, credit card)
- targeting weak point
- reason: e.g. lack of connection feature to other modules; proposal issue; lack of state update test; batch function issue; incorrect data issue from admin and back office? (c.f. translation issue; number inconsistency issue)
- exception management
- targeting per product quality level
- many bugs at early development stage: focus on test case
- multiple test cycles: focus on unblocked feature
- stable quality: focus on UI/UX, compare similar feature from competitor, ask for testings to external user
- mindset of developer and tester
- tester secret
- Personal Takeaway
- types of bug: reliability, security, compatibility, usability, functionality, performance, language
- read
- “Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing” by Elizabeth Hendrickson
- UML (unified modeling language): ?
- app testing trends: e.g. testing with oscilloscope to check currents not to drain battery
- magic of test data
- secret: e.g. testing backdoor (e.g. CGV, Olleh, Auction sites for ticketing), leave the session
- establishing QA process at startups by StyleShare (link)